sample() update existing samples to 6.0.0

This commit is contained in:
Kamil Myśliwiec
2019-01-15 00:02:34 +01:00
parent 4f767080bf
commit b0de7ce6f3
183 changed files with 3592 additions and 95716 deletions

View File

@@ -1,9 +1,14 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const core_1 = require('@nestjs/core');
const fastify_platform_1 = require('@nestjs/platform-fastify');
const app_module_1 = require('./nest/app.module');
core_1.NestFactory.create(app_module_1.AppModule, new core_1.FastifyAdapter(), {
logger: false,
bodyParser: false,
}).then(app => app.listen(3000));
core_1.NestFactory.create(
app_module_1.AppModule,
new fastify_platform_1.FastifyAdapter(),
{
logger: false,
bodyParser: false,
},
).then(app => app.listen(3000));
//# sourceMappingURL=main.js.map

View File

@@ -7,8 +7,8 @@ var __decorate =
c < 3
? target
: desc === null
? (desc = Object.getOwnPropertyDescriptor(target, key))
: desc,
? (desc = Object.getOwnPropertyDescriptor(target, key))
: desc,
d;
if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
r = Reflect.decorate(decorators, target, key, desc);
@@ -42,9 +42,6 @@ __decorate(
'root',
null,
);
AppController = __decorate(
[common_1.Controller({ scope: common_1.Scope.REQUEST })],
AppController,
);
AppController = __decorate([common_1.Controller()], AppController);
exports.AppController = AppController;
//# sourceMappingURL=app.controller.js.map

View File

@@ -1,20 +1,20 @@
import {
FastifyAdapter,
INestFastifyApplication,
NestFastifyApplication,
} from '@nestjs/platform-fastify';
import { Test } from '@nestjs/testing';
import { expect } from 'chai';
import { ApplicationModule } from '../src/app.module';
describe('Hello world (fastify adapter)', () => {
let app: INestFastifyApplication;
let app: NestFastifyApplication;
beforeEach(async () => {
const module = await Test.createTestingModule({
imports: [ApplicationModule],
}).compile();
app = module.createNestApplication<INestFastifyApplication>(
app = module.createNestApplication<NestFastifyApplication>(
new FastifyAdapter(),
);
await app.init();

View File

@@ -20,7 +20,7 @@ export interface ApplicationHost<T extends HttpServer = any> {
export class CacheInterceptor implements NestInterceptor {
@Optional()
@Inject(APPLICATION_REFERENCE_HOST)
protected readonly applicationRefHost: ApplicationHost;
protected readonly applicationHost: ApplicationHost;
constructor(
@Inject(CACHE_MANAGER) protected readonly cacheManager: any,
@@ -49,7 +49,7 @@ export class CacheInterceptor implements NestInterceptor {
}
trackBy(context: ExecutionContext): string | undefined {
const httpServer = this.applicationRefHost.applicationRef;
const httpServer = this.applicationHost.applicationRef;
const isHttpApp = httpServer && !!httpServer.getRequestMethod;
if (!isHttpApp) {

View File

@@ -1,10 +1,11 @@
import { Type } from './../type.interface';
import { Paramtype } from './paramtype.interface';
export type Transform<T = any> = (value: T, metadata: ArgumentMetadata) => any;
export interface ArgumentMetadata {
readonly type: Paramtype;
readonly metatype?: new (...args: any[]) => any | undefined;
readonly metatype?: Type<any> | undefined;
readonly data?: string | undefined;
}

View File

@@ -28,6 +28,7 @@ export class ClassSerializerInterceptor implements NestInterceptor {
const loadPkg = (pkg: any) =>
loadPackage(pkg, 'ClassSerializerInterceptor');
classTransformer = loadPkg('class-transformer');
require('class-transformer');
}
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {

View File

@@ -62,7 +62,7 @@ export const INVALID_MODULE_MESSAGE = (
text: TemplateStringsArray,
scope: string,
) =>
`Nest cannot create the module instance. Often, this is because of a circular dependency between modules. Use forwardRef() to avoid it. (Read more https://docs.nestjs.com/advanced/circular-dependency.) Scope [${scope}]`;
`Nest cannot create the module instance. Often, this is because of a circular dependency between modules. Use forwardRef() to avoid it. (Read more: https://docs.nestjs.com/fundamentals/circular-dependency.) Scope [${scope}]`;
export const UNKNOWN_EXPORT_MESSAGE = (
text: TemplateStringsArray,

View File

@@ -4,6 +4,7 @@ import { Injectable } from '@nestjs/common/interfaces/injectable.interface';
import { MODULE_INIT_MESSAGE } from '../helpers/messages';
import { NestContainer } from './container';
import { Injector } from './injector';
import { InternalCoreModule } from './internal-core-module';
import { Module } from './module';
export class InstanceLoader {
@@ -35,7 +36,8 @@ export class InstanceLoader {
await this.createInstancesOfControllers(module);
const { name } = module.metatype;
this.logger.log(MODULE_INIT_MESSAGE`${name}`);
this.isModuleWhitelisted(name) &&
this.logger.log(MODULE_INIT_MESSAGE`${name}`);
}),
);
}
@@ -87,4 +89,8 @@ export class InstanceLoader {
),
);
}
private isModuleWhitelisted(name: string): boolean {
return name !== InternalCoreModule.name;
}
}

View File

@@ -18,7 +18,6 @@ import iterate from 'iterare';
import * as optional from 'optional';
import { ApplicationConfig } from './application-config';
import { MESSAGES } from './constants';
import { loadAdapter } from './helpers/load-adapter';
import { NestContainer } from './injector/container';
import { Injector } from './injector/injector';
import { MiddlewareContainer } from './middleware/container';
@@ -72,10 +71,6 @@ export class NestApplication extends NestApplicationContext
public registerHttpServer() {
this.httpServer = this.createServer();
const { IoAdapter } = optional('@nestjs/platform-socket.io') || ({} as any);
const ioAdapter = IoAdapter ? new IoAdapter(this.httpServer) : null;
this.config.setIoAdapter(ioAdapter);
}
public getUnderlyingHttpServer<T>(): T {
@@ -117,11 +112,7 @@ export class NestApplication extends NestApplicationContext
if (!this.socketModule) {
return;
}
const adapter = this.config.getIoAdapter();
if (!adapter) {
return loadAdapter('@nestjs/platform-socket.io', 'WebSockets');
}
this.socketModule.register(this.container, this.config);
this.socketModule.register(this.container, this.config, this.httpServer);
}
public async init(): Promise<this> {

View File

@@ -40,18 +40,11 @@ export class NestMicroservice extends NestApplicationContext
) {
super(container);
this.registerWsAdapter();
this.microservicesModule.register(container, this.applicationConfig);
this.createServer(config);
this.selectContextModule();
}
public registerWsAdapter() {
const { IoAdapter } = optional('@nestjs/platform-socket.io') || ({} as any);
const ioAdapter = IoAdapter ? new IoAdapter() : null;
this.applicationConfig.setIoAdapter(ioAdapter);
}
public createServer(config: MicroserviceOptions) {
try {
this.microserviceConfig = {

View File

@@ -1,7 +1,7 @@
import { INestApplication } from '@nestjs/common';
import { ServeStaticOptions } from './serve-static-options.interface';
export interface INestExpressApplication extends INestApplication {
export interface NestExpressApplication extends INestApplication {
/**
* A wrapper function around native `express.set()` method.
* Example `app.set('trust proxy', 'loopback')`

View File

@@ -1,7 +1,7 @@
import { INestApplication } from '@nestjs/common';
import { HTTPInjectOptions, HTTPInjectResponse } from 'fastify';
export interface INestFastifyApplication extends INestApplication {
export interface NestFastifyApplication extends INestApplication {
/**
* A wrapper function around native `fastify.register()` method.
* Example `app.register(require('fastify-formbody'))`

View File

@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common/interfaces/injectable.interface';
import { ApplicationConfig } from '@nestjs/core/application-config';
import { GuardsConsumer } from '@nestjs/core/guards/guards-consumer';
import { GuardsContextCreator } from '@nestjs/core/guards/guards-context-creator';
import { loadAdapter } from '@nestjs/core/helpers/load-adapter';
import { NestContainer } from '@nestjs/core/injector/container';
import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
import { InterceptorsConsumer } from '@nestjs/core/interceptors/interceptors-consumer';
@@ -18,18 +19,26 @@ import { NestGateway } from './interfaces/nest-gateway.interface';
import { SocketServerProvider } from './socket-server-provider';
import { WebSocketsController } from './web-sockets-controller';
export class SocketModule {
export class SocketModule<HttpServer = any> {
private readonly socketsContainer = new SocketsContainer();
private applicationConfig: ApplicationConfig;
private webSocketsController: WebSocketsController;
private isAdapterInitialized: boolean;
private httpServer: HttpServer | undefined;
public register(container: NestContainer, config: ApplicationConfig) {
public register(
container: NestContainer,
config: ApplicationConfig,
httpServer?: HttpServer,
) {
this.applicationConfig = config;
this.httpServer = httpServer;
const contextCreator = this.getContextCreator(container);
const serverProvider = new SocketServerProvider(
this.socketsContainer,
config,
);
const contextCreator = this.getContextCreator(container);
this.webSocketsController = new WebSocketsController(
serverProvider,
config,
@@ -37,31 +46,31 @@ export class SocketModule {
);
const modules = container.getModules();
modules.forEach(({ providers }, moduleName: string) =>
this.mergeAllGateways(providers, moduleName),
this.combineAllGateways(providers, moduleName),
);
}
public mergeAllGateways(
public combineAllGateways(
providers: Map<string, InstanceWrapper<Injectable>>,
moduleName: string,
) {
providers.forEach(wrapper =>
this.mergeGatewayAndServer(wrapper, moduleName),
);
[...providers.values()]
.filter(wrapper => wrapper && !wrapper.isNotMetatype)
.forEach(wrapper => this.combineGatewayAndServer(wrapper, moduleName));
}
public mergeGatewayAndServer(
public combineGatewayAndServer(
wrapper: InstanceWrapper<Injectable>,
moduleName: string,
) {
const { instance, metatype, isNotMetatype } = wrapper;
if (isNotMetatype) {
return;
}
const { instance, metatype } = wrapper;
const metadataKeys = Reflect.getMetadataKeys(metatype);
if (!metadataKeys.includes(GATEWAY_METADATA)) {
return;
}
if (!this.isAdapterInitialized) {
this.initializeAdapter();
}
this.webSocketsController.mergeGatewayAndServer(
instance as NestGateway,
metatype,
@@ -71,18 +80,37 @@ export class SocketModule {
public async close(): Promise<any> {
if (!this.applicationConfig) {
return undefined;
return;
}
const adapter = this.applicationConfig.getIoAdapter();
if (!adapter) {
return;
}
const servers = this.socketsContainer.getAllServers();
await Promise.all(
iterate(servers.values()).map(
async ({ server }) => server && adapter.close(server),
),
iterate(servers.values())
.filter(({ server }) => server)
.map(async ({ server }) => adapter.close(server)),
);
this.socketsContainer.clear();
}
private initializeAdapter() {
const adapter = this.applicationConfig.getIoAdapter();
if (adapter) {
this.isAdapterInitialized = true;
return;
}
const { IoAdapter } = loadAdapter(
'@nestjs/platform-socket.io',
'WebSockets',
);
const ioAdapter = new IoAdapter(this.httpServer);
this.applicationConfig.setIoAdapter(ioAdapter);
this.isAdapterInitialized = true;
}
private getContextCreator(container: NestContainer): WsContextCreator {
return new WsContextCreator(
new WsProxy(),

View File

@@ -9,9 +9,6 @@
# misc
npm-debug.log
# example
/quick-start
# tests
/test
/coverage

View File

@@ -1,12 +1,13 @@
import * as request from 'supertest';
import { INestApplication } from '@nestjs/common';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { CatsModule } from '../../src/cats/cats.module';
import { CatsService } from '../../src/cats/cats.service';
import { INestApplication } from '@nestjs/common';
describe('Cats', () => {
const catsService = { findAll: () => ['test'] };
let app: INestApplication;
let catsService = { findAll: () => ['test'] };
beforeAll(async () => {
const module = await Test.createTestingModule({

File diff suppressed because it is too large Load Diff

View File

@@ -4,35 +4,35 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main.ts",
"prestart:prod": "tsc",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js",
"test": "jest --config=jest.json",
"test:watch": "jest --watch --config=jest.json",
"test:coverage":
"jest --config=jest.json --coverage --coverageDirectory=coverage",
"test:coverage": "jest --config=jest.json --coverage --coverageDirectory=coverage",
"e2e": "jest --config=e2e/jest-e2e.json --forceExit",
"e2e:watch": "jest --watch --config=e2e/jest-e2e.json"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/microservices": "^5.3.0",
"@nestjs/testing": "^5.3.0",
"@nestjs/websockets": "^5.3.0",
"class-transformer": "^0.1.7",
"class-validator": "^0.8.1",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"@nestjs/testing": "^6.0.0",
"@nestjs/websockets": "^6.0.0",
"class-transformer": "^0.2.0",
"class-validator": "^0.9.1",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/jest": "^20.0.8",
"@types/node": "^7.0.41",
"jest": "^20.0.4",
"supertest": "^3.0.0",
"ts-jest": "^20.0.14",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/jest": "^23.3.11",
"@types/node": "^10.12.18",
"jest": "^23.6.0",
"supertest": "^3.3.0",
"ts-jest": "^23.10.5",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -1,9 +1,12 @@
import { IsString, IsInt } from 'class-validator';
import { IsInt, IsString } from 'class-validator';
export class CreateCatDto {
@IsString() readonly name: string;
@IsString()
readonly name: string;
@IsInt() readonly age: number;
@IsInt()
readonly age: number;
@IsString() readonly breed: string;
@IsString()
readonly breed: string;
}

View File

@@ -5,8 +5,8 @@ import {
HttpException,
} from '@nestjs/common';
@Catch()
export class HttpExceptionFilter implements ExceptionFilter {
@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter<HttpException> {
catch(exception: HttpException, host: ArgumentsHost) {
const ctx = host.switchToHttp();
const response = ctx.getResponse();

View File

@@ -14,6 +14,7 @@ export class RolesGuard implements CanActivate {
const user = request.user;
const hasRole = () =>
user.roles.some(role => !!roles.find(item => item === role));
return user && user.roles && hasRole();
}
}

View File

@@ -1,15 +1,16 @@
import { BadRequestException } from '@nestjs/common';
import {
PipeTransform,
Injectable,
ArgumentMetadata,
BadRequestException,
Injectable,
PipeTransform,
Type,
} from '@nestjs/common';
import { validate } from 'class-validator';
import { plainToClass } from 'class-transformer';
import { validate } from 'class-validator';
@Injectable()
export class ValidationPipe implements PipeTransform<any> {
async transform(value, metadata: ArgumentMetadata) {
async transform(value: any, metadata: ArgumentMetadata) {
const { metatype } = metadata;
if (!metatype || !this.toValidate(metatype)) {
return value;
@@ -22,7 +23,7 @@ export class ValidationPipe implements PipeTransform<any> {
return value;
}
private toValidate(metatype): boolean {
private toValidate(metatype: Type<any>): boolean {
const types = [String, Boolean, Number, Array, Object];
return !types.find(type => metatype === type);
}

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,53 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,27 +1,27 @@
<html>
<head>
<head>
<script src="socket.io.js"></script>
<script>
const socket = io('http://localhost:3000');
socket.on('connect', function () {
console.log('Connected');
const socket = io('http://localhost:3000');
socket.on('connect', function() {
console.log('Connected');
socket.emit('events', { test: 'test' });
socket.emit('identity', 0, (response) => console.log('Identity:', response));
});
socket.on('events', function (data) {
console.log('event', data);
});
socket.on('exception', function (data) {
console.log('event', data);
});
socket.on('disconnect', function () {
console.log('Disconnected');
});
socket.emit('events', { test: 'test' });
socket.emit('identity', 0, response =>
console.log('Identity:', response),
);
});
socket.on('events', function(data) {
console.log('event', data);
});
socket.on('exception', function(data) {
console.log('event', data);
});
socket.on('disconnect', function() {
console.log('Disconnected');
});
</script>
</head>
<body></body>
</head>
<body></body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -4,27 +4,29 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main.ts",
"prestart:prod": "tsc",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/microservices": "^5.3.0",
"@nestjs/testing": "^5.3.0",
"@nestjs/websockets": "^5.3.0",
"class-transformer": "^0.1.7",
"class-validator": "^0.8.1",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"@nestjs/platform-socket.io": "^6.0.0",
"@nestjs/testing": "^6.0.0",
"@nestjs/websockets": "^6.0.0",
"class-transformer": "^0.2.0",
"class-validator": "^0.9.1",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"typescript": "^3.1.0",
"ws": "^3.1.0"
"rxjs": "^6.3.3",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/node": "^7.0.41",
"@types/ws": "^3.0.2",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/node": "^10.12.18",
"@types/socket.io": "^2.1.2",
"@types/ws": "^6.0.1",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -1,10 +1,11 @@
import { IoAdapter } from '@nestjs/websockets';
import { IoAdapter } from '@nestjs/platform-socket.io';
import { ServerOptions } from 'socket.io';
import * as redisIoAdapter from 'socket.io-redis';
const redisAdapter = redisIoAdapter({ host: 'localhost', port: 6379 });
export class RedisIoAdapter extends IoAdapter {
createIOServer(port: number, options?: any): any {
createIOServer(port: number, options?: ServerOptions): any {
const server = super.createIOServer(port, options);
server.adapter(redisAdapter);
return server;

View File

@@ -6,18 +6,20 @@ import {
} from '@nestjs/websockets';
import { from, Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { Client, Server } from 'socket.io';
@WebSocketGateway()
export class EventsGateway {
@WebSocketServer() server;
@WebSocketServer()
server: Server;
@SubscribeMessage('events')
findAll(client, data): Observable<WsResponse<number>> {
findAll(client: Client, data: any): Observable<WsResponse<number>> {
return from([1, 2, 3]).pipe(map(item => ({ event: 'events', data: item })));
}
@SubscribeMessage('identity')
async identity(client, data: number): Promise<number> {
async identity(client: Client, data: number): Promise<number> {
return data;
}
}

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,54 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"indent": false,
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

View File

@@ -1,351 +0,0 @@
{
"name": "nest-typescript-starter",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@types/amqplib": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.5.7.tgz",
"integrity": "sha512-1PIJiT+6yRq8eJG3F5bqilBtwihv9b0+FRNaWq4br+RrxVogHRJoWpkh+DTYtLVN+q+WgSN98L97Yk4DEjINWA==",
"dev": true,
"requires": {
"@types/bluebird": "3.5.20",
"@types/events": "1.2.0",
"@types/node": "7.0.57"
}
},
"@types/bluebird": {
"version": "3.5.20",
"resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.20.tgz",
"integrity": "sha512-Wk41MVdF+cHBfVXj/ufUHJeO3BlIQr1McbHZANErMykaCWeDSZbH5erGjNBw2/3UlRdSxZbLfSuQTzFmPOYFsA==",
"dev": true
},
"@types/events": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz",
"integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==",
"dev": true
},
"@types/node": {
"version": "7.0.57",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.57.tgz",
"integrity": "sha512-Iikf0IAus1OX++3Jrc1R2bsZggO+m22G5ee56JccYKejx5GNT3nHhY8v6J4OXId1hXXlb0n45hcaVwZwQcZZ6w==",
"dev": true
},
"amqplib": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.5.2.tgz",
"integrity": "sha512-l9mCs6LbydtHqRniRwYkKdqxVa6XMz3Vw1fh+2gJaaVgTM6Jk3o8RccAKWKtlhT1US5sWrFh+KKxsVUALURSIA==",
"requires": {
"bitsyntax": "0.0.4",
"bluebird": "3.5.1",
"buffer-more-ints": "0.0.2",
"readable-stream": "1.1.14",
"safe-buffer": "5.1.1"
}
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "1.9.1"
}
},
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
"dev": true
},
"bitsyntax": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.0.4.tgz",
"integrity": "sha1-6xDMb4K4xJDj6FaY8H6D1G4MuoI=",
"requires": {
"buffer-more-ints": "0.0.2"
}
},
"bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
},
"buffer-more-ints": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz",
"integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw="
},
"chalk": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
"integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
"dev": true,
"requires": {
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.3.0"
}
},
"class-transformer": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.1.9.tgz",
"integrity": "sha512-KV0IteiRl95OZ9UzbuPj8RhckuHA4JTC+Q+ZbKTYPsmvB0GgPRG7JBEXiVhBq/U050OVRku4N5t0rSMHw8vDWw=="
},
"class-validator": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.7.3.tgz",
"integrity": "sha512-aRRlS1WlQ+52aHlmDCDX5dLwtpbg9is7i9yYhzQosTAVs86nX0Um8hb7ChTwMn7jfpyxxjAZpBrlrAc2tqNpYA==",
"requires": {
"validator": "7.2.0"
}
},
"color-convert": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
"double-ended-queue": {
"version": "2.1.0-0",
"resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
"integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"homedir-polyfill": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
"integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
"dev": true,
"requires": {
"parse-passwd": "1.0.0"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"make-error": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
"integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==",
"dev": true
},
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
}
}
},
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
"readable-stream": {
"version": "1.1.14",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "0.0.1",
"string_decoder": "0.10.31"
}
},
"redis": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz",
"integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==",
"requires": {
"double-ended-queue": "2.1.0-0",
"redis-commands": "1.3.5",
"redis-parser": "2.6.0"
}
},
"redis-commands": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz",
"integrity": "sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA=="
},
"redis-parser": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
"integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs="
},
"reflect-metadata": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz",
"integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A=="
},
"rxjs": {
"version": "5.5.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz",
"integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==",
"requires": {
"symbol-observable": "1.0.1"
}
},
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
"source-map-support": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
"requires": {
"source-map": "0.5.7"
}
},
"string_decoder": {
"version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
},
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
},
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
"supports-color": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
"integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
"dev": true,
"requires": {
"has-flag": "3.0.0"
}
},
"symbol-observable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
"integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
},
"ts-node": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.3.0.tgz",
"integrity": "sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k=",
"dev": true,
"requires": {
"arrify": "1.0.1",
"chalk": "2.3.2",
"diff": "3.5.0",
"make-error": "1.3.4",
"minimist": "1.2.0",
"mkdirp": "0.5.1",
"source-map-support": "0.4.18",
"tsconfig": "6.0.0",
"v8flags": "3.0.2",
"yn": "2.0.0"
}
},
"tsconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz",
"integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=",
"dev": true,
"requires": {
"strip-bom": "3.0.0",
"strip-json-comments": "2.0.1"
}
},
"typescript": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
"integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw=="
},
"v8flags": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.2.tgz",
"integrity": "sha512-6sgSKoFw1UpUPd3cFdF7QGnrH6tDeBgW1F3v9gy8gLY0mlbiBXq8soy8aQpY6xeeCjH5K+JvC62Acp7gtl7wWA==",
"dev": true,
"requires": {
"homedir-polyfill": "1.0.1"
}
},
"validator": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-7.2.0.tgz",
"integrity": "sha512-c8NGTUYeBEcUIGeMppmNVKHE7wwfm3mYbNZxV+c5mlv9fDHI7Ad3p07qfNrn/CvpdkK2k61fOLRO2sTEhgQXmg=="
},
"yn": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
"integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
"dev": true
}
}
}

View File

@@ -4,27 +4,27 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main.ts",
"prestart:prod": "tsc",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/microservices": "^5.3.0",
"@nestjs/testing": "^5.3.0",
"@nestjs/websockets": "^5.3.0",
"amqplib": "^0.5.1",
"class-transformer": "^0.1.7",
"class-validator": "^0.7.2",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/microservices": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"@nestjs/testing": "^6.0.0",
"class-transformer": "^0.2.0",
"class-validator": "^0.9.1",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/amqplib": "^0.5.4",
"@types/node": "^7.0.41",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/amqplib": "^0.5.9",
"@types/node": "^10.12.18",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -9,8 +9,9 @@ export interface NatsSubscriber {
}
export class NatsStrategy extends ServerNats {
bindEvents(client) {
const handlers = Object.keys(this.messageHandlers).map(item => ({
bindEvents(client: any) {
const patterns = [...this.messageHandlers.keys()];
const handlers = patterns.map(item => ({
key: item,
value: JSON.parse(item),
})) as NatsSubscriber[];

View File

@@ -13,7 +13,7 @@ async function bootstrap() {
* });
* await app.listenAsync();
*
*/
*/
const app = await NestFactory.create(ApplicationModule);
app.connectMicroservice({
transport: Transport.TCP,

View File

@@ -1,9 +1,9 @@
import { Controller, Get } from '@nestjs/common';
import {
ClientProxy,
Client,
Transport,
ClientProxy,
MessagePattern,
Transport,
} from '@nestjs/microservices';
import { Observable } from 'rxjs';
@@ -13,7 +13,7 @@ export class MathController {
client: ClientProxy;
@Get()
call(): Observable<number> {
execute(): Observable<number> {
const pattern = { cmd: 'sum' };
const data = [1, 2, 3, 4, 5];
return this.client.send<number>(pattern, data);

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,53 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

View File

@@ -4,27 +4,27 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main.ts",
"prestart:prod": "tsc",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@grpc/proto-loader": "^0.3.0",
"@nestjs/common": "^5.3.7",
"@nestjs/core": "^5.3.7",
"@nestjs/microservices": "^5.3.7",
"@nestjs/testing": "^5.3.7",
"@nestjs/websockets": "^5.3.7",
"class-transformer": "^0.1.7",
"class-validator": "^0.7.2",
"grpc": "^1.10.0",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/microservices": "^6.0.0",
"@nestjs/testing": "^6.0.0",
"class-transformer": "^0.2.0",
"class-validator": "^0.9.1",
"grpc": "^1.17.0",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.1.0",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/node": "^7.0.41",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/node": "^10.12.18",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -1,9 +1,5 @@
import { Get, OnModuleInit, Controller } from '@nestjs/common';
import {
Client,
GrpcMethod,
ClientGrpc,
} from '@nestjs/microservices';
import { Controller, Get, OnModuleInit } from '@nestjs/common';
import { Client, ClientGrpc, GrpcMethod } from '@nestjs/microservices';
import { Observable } from 'rxjs';
import { grpcClientOptions } from '../grpc-client.options';
import { HeroById } from './interfaces/hero-by-id.interface';
@@ -15,7 +11,9 @@ interface HeroService {
@Controller()
export class HeroController implements OnModuleInit {
@Client(grpcClientOptions) private readonly client: ClientGrpc;
@Client(grpcClientOptions)
private readonly client: ClientGrpc;
private heroService: HeroService;
onModuleInit() {
@@ -23,7 +21,7 @@ export class HeroController implements OnModuleInit {
}
@Get()
call(): Observable<any> {
execute(): Observable<any> {
return this.heroService.findOne({ id: 1 });
}

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,53 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

View File

@@ -4,23 +4,25 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main",
"prestart:prod": "tsc",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"@nestjs/typeorm": "^5.2.0",
"mysql": "^2.15.0",
"mysql": "^2.16.0",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"typeorm": "^0.1.16",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"typeorm": "^0.2.11",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/node": "^7.0.41",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/node": "^10.12.18",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -1,17 +1,22 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Photo {
@PrimaryGeneratedColumn() id: number;
@PrimaryGeneratedColumn()
id: number;
@Column({ length: 500 })
name: string;
@Column('text') description: string;
@Column('text')
description: string;
@Column() filename: string;
@Column()
filename: string;
@Column('int') views: number;
@Column('int')
views: number;
@Column() isPublished: boolean;
@Column()
isPublished: boolean;
}

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,55 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"ban-types": false,
"indent": false,
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

View File

@@ -4,23 +4,25 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main",
"prestart:prod": "tsc",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"@nestjs/mongoose": "^5.2.2",
"mongoose": "^5.2.15",
"mongoose": "^5.4.2",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/mongoose": "^4.7.23",
"@types/node": "^7.0.41",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/mongoose": "^5.3.7",
"@types/node": "^10.12.18",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,54 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"ban-types": false,
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

View File

@@ -1,703 +0,0 @@
{
"name": "nest-typescript-starter",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@types/bluebird": {
"version": "3.5.18",
"resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.18.tgz",
"integrity": "sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w=="
},
"@types/continuation-local-storage": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/@types/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz",
"integrity": "sha1-oz4N+dzptCTRyY/E/evYV43O7H4=",
"requires": {
"@types/node": "9.6.0"
},
"dependencies": {
"@types/node": {
"version": "9.6.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.0.tgz",
"integrity": "sha512-h3YZbOq2+ZoDFI1z8Zx0Ck/xRWkOESVaLdgLdd/c25mMQ1Y2CAkILu9ny5A15S5f32gGcQdaUIZ2jzYr8D7IFg=="
}
}
},
"@types/geojson": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-1.0.6.tgz",
"integrity": "sha512-Xqg/lIZMrUd0VRmSRbCAewtwGZiAk3mEUDvV4op1tGl+LvyPcb/MIOSxTl9z+9+J+R4/vpjiCAT4xeKzH9ji1w=="
},
"@types/lodash": {
"version": "4.14.106",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.106.tgz",
"integrity": "sha512-tOSvCVrvSqFZ4A/qrqqm6p37GZoawsZtoR0SJhlF7EonNZUgrn8FfT+RNQ11h+NUpMt6QVe36033f3qEKBwfWA=="
},
"@types/node": {
"version": "7.0.57",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.57.tgz",
"integrity": "sha512-Iikf0IAus1OX++3Jrc1R2bsZggO+m22G5ee56JccYKejx5GNT3nHhY8v6J4OXId1hXXlb0n45hcaVwZwQcZZ6w==",
"dev": true
},
"@types/reflect-metadata": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/@types/reflect-metadata/-/reflect-metadata-0.0.4.tgz",
"integrity": "sha1-tkd8qal+UmXyrGf56nBOrl4Or00="
},
"@types/sequelize": {
"version": "4.27.5",
"resolved": "https://registry.npmjs.org/@types/sequelize/-/sequelize-4.27.5.tgz",
"integrity": "sha512-K2xXW0IYWZj2VX4DxyHQERxrWHNyZuSOERyo+wcZOgWUHzjICwrwcusvSnO4aIiCXqPA2NDjqbb0o0GrVzIqVA==",
"requires": {
"@types/bluebird": "3.5.18",
"@types/continuation-local-storage": "3.2.1",
"@types/lodash": "4.14.106",
"@types/validator": "9.4.0"
}
},
"@types/validator": {
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-9.4.0.tgz",
"integrity": "sha512-SxPH9AKnmr9I2V4CnPgG9BEUEJ6wUUoEZt4hVcCKUM143qMHQgU8ewLQO5WKSjgQqVyTmVufmouY1z0cKaOFhQ=="
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "1.9.1"
}
},
"ansicolors": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz",
"integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8="
},
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
"dev": true
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
"cardinal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz",
"integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=",
"requires": {
"ansicolors": "0.2.1",
"redeyed": "1.0.1"
}
},
"chalk": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
"integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
"dev": true,
"requires": {
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.3.0"
}
},
"cls-bluebird": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cls-bluebird/-/cls-bluebird-2.1.0.tgz",
"integrity": "sha1-N+8eCAqP+1XC9BZPU28ZGeeWiu4=",
"requires": {
"is-bluebird": "1.0.2",
"shimmer": "1.2.0"
}
},
"color-convert": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"denque": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/denque/-/denque-1.2.3.tgz",
"integrity": "sha512-BOjyD1zPf7gqgXlXBCnCsz84cbRNfqpQNvWOUiw3Onu9s7a2afW2LyHzctoie/2KELfUoZkNHTnW02C3hCU20w=="
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
"dottie": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.0.tgz",
"integrity": "sha1-2hkZgci41xPKARXViYzzl8Lw3dA="
},
"es6-shim": {
"version": "0.35.3",
"resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.3.tgz",
"integrity": "sha1-m/tzY/7//4emzbbNk+QF7DxLbyY="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"esprima": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz",
"integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k="
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"generate-function": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
"integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
},
"generic-pool": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.4.2.tgz",
"integrity": "sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag=="
},
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"homedir-polyfill": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
"integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
"dev": true,
"requires": {
"parse-passwd": "1.0.0"
}
},
"iconv-lite": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"inflection": {
"version": "1.12.0",
"resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz",
"integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY="
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"is-bluebird": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-bluebird/-/is-bluebird-1.0.2.tgz",
"integrity": "sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI="
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"lodash": {
"version": "4.17.5",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
"integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
},
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
"lru-cache": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
"integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
"requires": {
"pseudomap": "1.0.2",
"yallist": "2.1.2"
}
},
"make-error": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
"integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==",
"dev": true
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "1.1.11"
}
},
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
}
}
},
"moment": {
"version": "2.21.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz",
"integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ=="
},
"moment-timezone": {
"version": "0.5.14",
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.14.tgz",
"integrity": "sha1-TrOP+VOLgBCLpGekWPPtQmjM/LE=",
"requires": {
"moment": "2.21.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"mysql2": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/mysql2/-/mysql2-1.5.3.tgz",
"integrity": "sha512-Oov36YQSeciNP9SeqE7je4eWgeGADOorXLmsqhtxOJmPGUOJSNJT0s6/eq1Byy4nhXTRQUvlMHsI4Q/eMEs88Q==",
"requires": {
"cardinal": "1.0.0",
"denque": "1.2.3",
"generate-function": "2.0.0",
"iconv-lite": "0.4.19",
"long": "4.0.0",
"lru-cache": "4.1.1",
"named-placeholders": "1.1.1",
"object-assign": "4.1.1",
"readable-stream": "2.3.5",
"safe-buffer": "5.1.1",
"seq-queue": "0.0.5",
"sqlstring": "2.3.1"
}
},
"named-placeholders": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.1.tgz",
"integrity": "sha1-O3oNJiA910s6nfTJz7gnsvuQfmQ=",
"requires": {
"lru-cache": "2.5.0"
},
"dependencies": {
"lru-cache": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz",
"integrity": "sha1-2COIrpyWC+y+oMc7uet5tsbOmus="
}
}
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1.0.2"
}
},
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"process-nextick-args": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
},
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
},
"readable-stream": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
"requires": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "1.0.0",
"process-nextick-args": "2.0.0",
"safe-buffer": "5.1.1",
"string_decoder": "1.0.3",
"util-deprecate": "1.0.2"
}
},
"redeyed": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz",
"integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=",
"requires": {
"esprima": "3.0.0"
}
},
"reflect-metadata": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz",
"integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A=="
},
"retry-as-promised": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-2.3.2.tgz",
"integrity": "sha1-zZdO5P2bX+A8vzGHHuSCIcB3N7c=",
"requires": {
"bluebird": "3.5.1",
"debug": "2.6.9"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
}
}
},
"rxjs": {
"version": "5.5.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz",
"integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==",
"requires": {
"symbol-observable": "1.0.1"
}
},
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
"semver": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
"integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
},
"seq-queue": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
"integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4="
},
"sequelize": {
"version": "4.37.4",
"resolved": "https://registry.npmjs.org/sequelize/-/sequelize-4.37.4.tgz",
"integrity": "sha512-J29isFm2UJL3cSBaa6Mlfs5Grwjx+7if4ucnCfPa2KBKsuIoxHLmcCzf9Z5c+KD+I/7wSblEskCcuzu3Hfr3RA==",
"requires": {
"bluebird": "3.5.1",
"cls-bluebird": "2.1.0",
"debug": "3.1.0",
"depd": "1.1.2",
"dottie": "2.0.0",
"generic-pool": "3.4.2",
"inflection": "1.12.0",
"lodash": "4.17.5",
"moment": "2.21.0",
"moment-timezone": "0.5.14",
"retry-as-promised": "2.3.2",
"semver": "5.5.0",
"terraformer-wkt-parser": "1.1.2",
"toposort-class": "1.0.1",
"uuid": "3.2.1",
"validator": "9.4.1",
"wkx": "0.4.4"
}
},
"sequelize-typescript": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/sequelize-typescript/-/sequelize-typescript-0.6.3.tgz",
"integrity": "sha512-Mj+/g8QPqWJ+0h7IsmHUzJziu8vINKPZFhBBkClF066gPOHOz3xay+iQudVkdVdMEjMRqwfp2YoPARSqr+r5Fw==",
"requires": {
"@types/bluebird": "3.5.18",
"@types/node": "6.0.41",
"@types/reflect-metadata": "0.0.4",
"@types/sequelize": "4.27.5",
"es6-shim": "0.35.3",
"glob": "7.1.2"
},
"dependencies": {
"@types/node": {
"version": "6.0.41",
"resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.41.tgz",
"integrity": "sha1-V4z1Oq7GWIe8rxZ5L4ciky6P+Oo="
}
}
},
"shimmer": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.0.tgz",
"integrity": "sha512-xTCx2vohXC2EWWDqY/zb4+5Mu28D+HYNSOuFzsyRDRvI/e1ICb69afwaUwfjr+25ZXldbOLyp+iDUZHq8UnTag=="
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
"source-map-support": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
"requires": {
"source-map": "0.5.7"
}
},
"sqlstring": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
"integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A="
},
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"requires": {
"safe-buffer": "5.1.1"
}
},
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
},
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
"supports-color": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
"integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
"dev": true,
"requires": {
"has-flag": "3.0.0"
}
},
"symbol-observable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
"integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
},
"terraformer": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/terraformer/-/terraformer-1.0.8.tgz",
"integrity": "sha1-UeCtiXRvzyFh3G9lqnDkI3fItZM=",
"requires": {
"@types/geojson": "1.0.6"
}
},
"terraformer-wkt-parser": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/terraformer-wkt-parser/-/terraformer-wkt-parser-1.1.2.tgz",
"integrity": "sha1-M2oMj8gglKWv+DKI9prt7NNpvww=",
"requires": {
"terraformer": "1.0.8"
}
},
"toposort-class": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz",
"integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg="
},
"ts-node": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.3.0.tgz",
"integrity": "sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k=",
"dev": true,
"requires": {
"arrify": "1.0.1",
"chalk": "2.3.2",
"diff": "3.5.0",
"make-error": "1.3.4",
"minimist": "1.2.0",
"mkdirp": "0.5.1",
"source-map-support": "0.4.18",
"tsconfig": "6.0.0",
"v8flags": "3.0.2",
"yn": "2.0.0"
}
},
"tsconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz",
"integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=",
"dev": true,
"requires": {
"strip-bom": "3.0.0",
"strip-json-comments": "2.0.1"
}
},
"typescript": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
"integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw=="
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"uuid": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
"integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
},
"v8flags": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.2.tgz",
"integrity": "sha512-6sgSKoFw1UpUPd3cFdF7QGnrH6tDeBgW1F3v9gy8gLY0mlbiBXq8soy8aQpY6xeeCjH5K+JvC62Acp7gtl7wWA==",
"dev": true,
"requires": {
"homedir-polyfill": "1.0.1"
}
},
"validator": {
"version": "9.4.1",
"resolved": "https://registry.npmjs.org/validator/-/validator-9.4.1.tgz",
"integrity": "sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA=="
},
"wkx": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/wkx/-/wkx-0.4.4.tgz",
"integrity": "sha512-eVVHka2jRaAp9QanKhLpxWs3AGDV0b8cijlavxBnn4ryXzq5N/3Xe3nkQsI0XMRA16RURwviCWuOCj4mXCmrxw==",
"requires": {
"@types/node": "9.6.0"
},
"dependencies": {
"@types/node": {
"version": "9.6.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.0.tgz",
"integrity": "sha512-h3YZbOq2+ZoDFI1z8Zx0Ck/xRWkOESVaLdgLdd/c25mMQ1Y2CAkILu9ny5A15S5f32gGcQdaUIZ2jzYr8D7IFg=="
}
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
},
"yn": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
"integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
"dev": true
}
}
}

View File

@@ -4,27 +4,26 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main",
"prestart:prod": "tsc",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/microservices": "^5.3.0",
"@nestjs/testing": "^5.3.0",
"@nestjs/websockets": "^5.3.0",
"mysql2": "^1.4.2",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"mysql2": "^1.6.4",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"sequelize": "^4.28.0",
"sequelize-typescript": "^0.6.1",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"sequelize": "^4.42.0",
"sequelize-typescript": "^0.6.6",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/node": "^7.0.41",
"@types/sequelize": "^4.0.75",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/node": "^10.12.18",
"@types/sequelize": "^4.27.33",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -1,10 +1,13 @@
import { Table, Column, Model } from 'sequelize-typescript';
import { Column, Model, Table } from 'sequelize-typescript';
@Table
export class Cat extends Model<Cat> {
@Column name: string;
@Column
name: string;
@Column age: number;
@Column
age: number;
@Column breed: string;
@Column
breed: string;
}

View File

@@ -2,7 +2,7 @@ import { Cat } from './cat.entity';
export const catsProviders = [
{
provide: 'CatsRepository',
provide: 'CATS_REPOSITORY',
useValue: Cat,
},
];

View File

@@ -1,11 +1,11 @@
import { Injectable, Inject } from '@nestjs/common';
import { CreateCatDto } from './dto/create-cat.dto';
import { Inject, Injectable } from '@nestjs/common';
import { Cat } from './cat.entity';
import { CreateCatDto } from './dto/create-cat.dto';
@Injectable()
export class CatsService {
constructor(
@Inject('CatsRepository') private readonly catsRepository: typeof Cat,
@Inject('CATS_REPOSITORY') private readonly catsRepository: typeof Cat,
) {}
async create(createCatDto: CreateCatDto): Promise<Cat> {

View File

@@ -3,7 +3,7 @@ import { Cat } from '../cats/cat.entity';
export const databaseProviders = [
{
provide: 'SequelizeToken',
provide: 'SEQUELIZE',
useFactory: async () => {
const sequelize = new Sequelize({
operatorsAliases: false,

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,53 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

View File

@@ -8,22 +8,20 @@
"webpack": "webpack --config webpack.config.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/microservices": "^5.3.0",
"@nestjs/testing": "^5.3.0",
"@nestjs/websockets": "^5.3.0",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/node": "^9.3.0",
"ts-loader": "^4.0.0",
"ts-node": "^6.0.0",
"tslint": "^5.9.1",
"webpack": "^4.0.0",
"webpack-cli": "^2.0.8",
"webpack-node-externals": "^1.6.0"
"@types/node": "^10.12.18",
"ts-loader": "^5.3.3",
"ts-node": "^7.0.1",
"tslint": "^5.12.0",
"webpack": "^4.28.3",
"webpack-cli": "^3.2.0",
"webpack-node-externals": "^1.7.2"
}
}

View File

@@ -1,4 +1,4 @@
import { Get, Controller } from '@nestjs/common';
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
@@ -6,7 +6,7 @@ export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
root(): string {
return this.appService.get();
getHello(): string {
return this.appService.getHello();
}
}

View File

@@ -2,7 +2,7 @@ import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
get() {
getHello() {
return 'Hello world!';
}
}

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,54 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"indent": false,
"member-access": [
false
],
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -9,21 +9,21 @@
"start": "node index.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/microservices": "^5.3.0",
"@nestjs/testing": "^5.3.0",
"@nestjs/websockets": "^5.3.0",
"babel-core": "^6.26.0",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/microservices": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"@nestjs/testing": "^6.0.0",
"@nestjs/websockets": "^6.0.0",
"babel-core": "^6.26.3",
"babel-polyfill": "^6.26.0",
"body-parser": "^1.17.2",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0"
"rxjs": "^6.3.3"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-env": "^1.6.0",
"babel-plugin-transform-decorators-legacy": "^1.3.5",
"babel-preset-env": "^1.7.0",
"babel-preset-stage-0": "^6.24.1"
}
}

View File

@@ -1,546 +0,0 @@
{
"name": "nest-typescript-starter",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@types/events": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz",
"integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA=="
},
"@types/node": {
"version": "7.0.57",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.57.tgz",
"integrity": "sha512-Iikf0IAus1OX++3Jrc1R2bsZggO+m22G5ee56JccYKejx5GNT3nHhY8v6J4OXId1hXXlb0n45hcaVwZwQcZZ6w==",
"dev": true
},
"@types/pino": {
"version": "4.7.1",
"resolved": "https://registry.npmjs.org/@types/pino/-/pino-4.7.1.tgz",
"integrity": "sha512-jatsMBAonuhTB1NhJsbDjvw7p71q3AvHii276OifMQ1RAE9NaX1EEmcG1lxONA1bQIYKjJbTJIj5UHicnYYDPA==",
"requires": {
"@types/events": "1.2.0",
"@types/node": "9.6.0"
},
"dependencies": {
"@types/node": {
"version": "9.6.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.0.tgz",
"integrity": "sha512-h3YZbOq2+ZoDFI1z8Zx0Ck/xRWkOESVaLdgLdd/c25mMQ1Y2CAkILu9ny5A15S5f32gGcQdaUIZ2jzYr8D7IFg=="
}
}
},
"abstract-logging": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-1.0.0.tgz",
"integrity": "sha1-i33q/TEFWbwo93ck3RuzAXcnjBs="
},
"ajv": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz",
"integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=",
"requires": {
"fast-deep-equal": "1.1.0",
"fast-json-stable-stringify": "2.0.0",
"json-schema-traverse": "0.3.1",
"uri-js": "3.0.2"
}
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "1.9.1"
}
},
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
"dev": true
},
"avvio": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/avvio/-/avvio-5.4.1.tgz",
"integrity": "sha512-pL6ePQvU+zraPWK8Lz1TInoAm4WMzxZBKPw8WlnAxu8iFRoFUg+B6KkElCt8YesE7ASiFmkVOwMcEsy7qwYbJw==",
"requires": {
"debug": "3.1.0",
"fastq": "1.5.0"
}
},
"chalk": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz",
"integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==",
"requires": {
"ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
"supports-color": "5.3.0"
}
},
"class-transformer": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.1.9.tgz",
"integrity": "sha512-KV0IteiRl95OZ9UzbuPj8RhckuHA4JTC+Q+ZbKTYPsmvB0GgPRG7JBEXiVhBq/U050OVRku4N5t0rSMHw8vDWw=="
},
"class-validator": {
"version": "0.8.5",
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.8.5.tgz",
"integrity": "sha512-84yezRo44aP4oGhvPmqj6obAFQF1NzUyfR0+f8jubzdAspO5pmjpHhBBlPf335epUskzXAFe5uo4Qf+c7SI+DA==",
"requires": {
"validator": "9.2.0"
}
},
"color-convert": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true
},
"end-of-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
"integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
"requires": {
"once": "1.4.0"
}
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"fast-decode-uri-component": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.0.tgz",
"integrity": "sha512-WQSYVKn6tDW/3htASeUkrx5LcnuTENQIZQPCVlwdnvIJ7bYtSpoJYq38MgUJnx1CQIR1gjZ8HJxAEcN4gqugBg=="
},
"fast-deep-equal": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
},
"fast-json-parse": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz",
"integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw=="
},
"fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
"fast-json-stringify": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-1.2.0.tgz",
"integrity": "sha512-l8Qp5GQabCk+mPPJLRlot0Qsc54TerLEbXG00vIWrH4ewd8o7/8Hj7aUCsTMfupgiURDpRlZzrztfGCBacjixw==",
"requires": {
"ajv": "6.4.0"
}
},
"fast-safe-stringify": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-1.2.3.tgz",
"integrity": "sha512-QJYT/i0QYoiZBQ71ivxdyTqkwKkQ0oxACXHYxH2zYHJEgzi2LsbjgvtzTbLi1SZcF190Db2YP7I7eTsU2egOlw=="
},
"fastify": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/fastify/-/fastify-1.1.1.tgz",
"integrity": "sha512-YsgzYGJCy0/Ocxp6AlAiaYW2UQ+w9KPmhuupptH0RgKqJu1DVgPq8I+mTv7bB1j9xFnMC6Fn1elg7gqkkp+Yuw==",
"requires": {
"@types/pino": "4.7.1",
"abstract-logging": "1.0.0",
"ajv": "6.4.0",
"avvio": "5.4.1",
"end-of-stream": "1.4.1",
"fast-json-stringify": "1.2.0",
"find-my-way": "1.11.1",
"flatstr": "1.0.5",
"light-my-request": "2.0.1",
"middie": "3.1.0",
"pino": "4.15.0",
"tiny-lru": "1.5.1"
}
},
"fastq": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.5.0.tgz",
"integrity": "sha1-BeMv+5mewtlF3aJ0Yb8IlBQ2RIs=",
"requires": {
"reusify": "1.0.4"
}
},
"find-my-way": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.11.1.tgz",
"integrity": "sha512-zoxshWkG1fSfinOqH0nsv9UQ1gGJ/8fsOTbkMDGwSOOVPOK3eStXYdYkngG01kMEPkbthO6g4F/1XXCfY5+Iqg==",
"requires": {
"fast-decode-uri-component": "1.0.0"
}
},
"flatstr": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.5.tgz",
"integrity": "sha1-W0UbCMvUji6sVKK74L9GFlqhS+M="
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
"homedir-polyfill": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
"integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
"dev": true,
"requires": {
"parse-passwd": "1.0.0"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"json-schema-traverse": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
},
"light-my-request": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-2.0.1.tgz",
"integrity": "sha512-dzUvlQEsh1zUhxv9262O9u8cDQavHt4YUXWQB0XuiYOVq7k+IRJ5VOWu1duFTP4ly/N2eMIiJLyiEOh1iZy0IQ==",
"requires": {
"ajv": "6.4.0",
"readable-stream": "2.3.5",
"safe-buffer": "5.1.1"
}
},
"make-error": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
"integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==",
"dev": true
},
"middie": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/middie/-/middie-3.1.0.tgz",
"integrity": "sha512-673tjCpr9xbI30cVqNbCvBe1hNS4pNs7Fi8Yp9wPiqX3qTpuRm87uD3aRtH9ji7Gt8SavbX7cwYMqY2muIPMJw==",
"requires": {
"path-to-regexp": "2.2.0",
"reusify": "1.0.4"
}
},
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": {
"minimist": "0.0.8"
},
"dependencies": {
"minimist": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
}
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
"wrappy": "1.0.2"
}
},
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
"dev": true
},
"path-to-regexp": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.0.tgz",
"integrity": "sha512-zJcOPeBsraLjWXwUzFMPzH3QO2CmO1yRggtADPJjOTyCF5csQxfUGJL+CbyyRvIS09wOipi4F/fgRhdmVGSwxQ=="
},
"pino": {
"version": "4.15.0",
"resolved": "https://registry.npmjs.org/pino/-/pino-4.15.0.tgz",
"integrity": "sha512-nFKZPdlEabjARJTkK9wKaqN1rCNXJr0YG7zExjWDYaRrZP4pu46rMg9tiCTwOYDcHr7U2I/tQ9rqFlIr3iXn9A==",
"requires": {
"chalk": "2.3.2",
"fast-json-parse": "1.0.3",
"fast-safe-stringify": "1.2.3",
"flatstr": "1.0.5",
"pino-std-serializers": "1.0.0",
"pump": "3.0.0",
"quick-format-unescaped": "1.1.2",
"split2": "2.2.0"
}
},
"pino-std-serializers": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-1.0.0.tgz",
"integrity": "sha512-VvrdU2+ixL4zYm1c4q5pdtI9chhV6T1keiVkbV6BVZC1ih8Fsp8pdOCiBXcPYcIMyyo83KxpRhjuX2B53O38iw=="
},
"process-nextick-args": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
},
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"requires": {
"end-of-stream": "1.4.1",
"once": "1.4.0"
}
},
"punycode": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
"integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0="
},
"quick-format-unescaped": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-1.1.2.tgz",
"integrity": "sha1-DKWB3jF0vs7yWsPC6JVjQjgdtpg=",
"requires": {
"fast-safe-stringify": "1.2.3"
}
},
"readable-stream": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
"integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
"requires": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "1.0.0",
"process-nextick-args": "2.0.0",
"safe-buffer": "5.1.1",
"string_decoder": "1.0.3",
"util-deprecate": "1.0.2"
}
},
"reflect-metadata": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz",
"integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A=="
},
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rxjs": {
"version": "5.5.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz",
"integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==",
"requires": {
"symbol-observable": "1.0.1"
}
},
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
"source-map-support": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
"requires": {
"source-map": "0.5.7"
}
},
"split2": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
"integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
"requires": {
"through2": "2.0.3"
}
},
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"requires": {
"safe-buffer": "5.1.1"
}
},
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
},
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
"supports-color": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz",
"integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==",
"requires": {
"has-flag": "3.0.0"
}
},
"symbol-observable": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
"integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
},
"through2": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
"requires": {
"readable-stream": "2.3.5",
"xtend": "4.0.1"
}
},
"tiny-lru": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-1.5.1.tgz",
"integrity": "sha512-MvGxWz6hTuVM2jdZtB5+QQJRl1rCqobke6Mnpxe2jKRnz1fIPELsI/iFwKsGWXB4Fyz4285lkDZFQWvDAYvU8A=="
},
"ts-node": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.3.0.tgz",
"integrity": "sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k=",
"dev": true,
"requires": {
"arrify": "1.0.1",
"chalk": "2.3.2",
"diff": "3.5.0",
"make-error": "1.3.4",
"minimist": "1.2.0",
"mkdirp": "0.5.1",
"source-map-support": "0.4.18",
"tsconfig": "6.0.0",
"v8flags": "3.0.2",
"yn": "2.0.0"
}
},
"tsconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz",
"integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=",
"dev": true,
"requires": {
"strip-bom": "3.0.0",
"strip-json-comments": "2.0.1"
}
},
"typescript": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
"integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw=="
},
"uri-js": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz",
"integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=",
"requires": {
"punycode": "2.1.0"
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"v8flags": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.2.tgz",
"integrity": "sha512-6sgSKoFw1UpUPd3cFdF7QGnrH6tDeBgW1F3v9gy8gLY0mlbiBXq8soy8aQpY6xeeCjH5K+JvC62Acp7gtl7wWA==",
"dev": true,
"requires": {
"homedir-polyfill": "1.0.1"
}
},
"validator": {
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-9.2.0.tgz",
"integrity": "sha512-6Ij4Eo0KM4LkR0d0IegOwluG5453uqT5QyF5SV5Ezvm8/zmkKI/L4eoraafZGlZPC9guLkwKzgypcw8VGWWnGA=="
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"xtend": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
},
"yn": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz",
"integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
"dev": true
}
}
}

View File

@@ -4,26 +4,24 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"start": "ts-node src/main.ts",
"prestart:prod": "tsc",
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/microservices": "^5.3.0",
"@nestjs/testing": "^5.3.0",
"@nestjs/websockets": "^5.3.0",
"class-transformer": "^0.1.7",
"class-validator": "^0.8.1",
"fastify": "^1.1.0",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/platform-fastify": "^6.0.0",
"class-transformer": "^0.2.0",
"class-validator": "^0.9.1",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/node": "^7.0.41",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/node": "^10.12.18",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -1,9 +1,12 @@
import { IsString, IsInt } from 'class-validator';
import { IsInt, IsString } from 'class-validator';
export class CreateCatDto {
@IsString() readonly name: string;
@IsString()
readonly name: string;
@IsInt() readonly age: number;
@IsInt()
readonly age: number;
@IsString() readonly breed: string;
@IsString()
readonly breed: string;
}

View File

@@ -1,4 +1,4 @@
import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
@Injectable()
@@ -14,6 +14,7 @@ export class RolesGuard implements CanActivate {
const user = request.user;
const hasRole = () =>
!!user.roles.find(role => !!roles.find(item => item === role));
return user && user.roles && hasRole();
}
}

View File

@@ -1,15 +1,16 @@
import { BadRequestException } from '@nestjs/common';
import {
PipeTransform,
Injectable,
ArgumentMetadata,
BadRequestException,
Injectable,
PipeTransform,
Type,
} from '@nestjs/common';
import { validate } from 'class-validator';
import { plainToClass } from 'class-transformer';
import { validate } from 'class-validator';
@Injectable()
export class ValidationPipe implements PipeTransform<any> {
async transform(value, metadata: ArgumentMetadata) {
async transform(value: any, metadata: ArgumentMetadata) {
const { metatype } = metadata;
if (!metatype || !this.toValidate(metatype)) {
return value;
@@ -22,7 +23,7 @@ export class ValidationPipe implements PipeTransform<any> {
return value;
}
private toValidate(metatype): boolean {
private toValidate(metatype: Type<any>): boolean {
const types = [String, Boolean, Number, Array, Object];
return !types.find(type => metatype === type);
}

View File

@@ -2,12 +2,12 @@ import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import {
FastifyAdapter,
INestFastifyApplication,
NestFastifyApplication,
} from '@nestjs/platform-fastify';
import { ApplicationModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create<INestFastifyApplication>(
const app = await NestFactory.create<NestFastifyApplication>(
ApplicationModule,
new FastifyAdapter(),
);

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,53 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,36 +4,26 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main",
"prestart:prod": "tsc",
"start:prod": "node dist/main.js",
"test": "jest --config=jest.json",
"test:watch": "jest --watch --config=jest.json",
"test:coverage":
"jest --config=jest.json --coverage --coverageDirectory=coverage",
"e2e": "jest --config=e2e/jest-e2e.json --forceExit",
"e2e:watch": "jest --watch --config=e2e/jest-e2e.json"
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "^5.3.0",
"@nestjs/core": "^5.3.0",
"@nestjs/microservices": "^5.3.0",
"@nestjs/swagger": "^2.4.4",
"@nestjs/testing": "^5.3.0",
"@nestjs/websockets": "^5.3.0",
"class-transformer": "^0.1.7",
"class-validator": "^0.7.2",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"@nestjs/swagger": "^2.5.1",
"class-transformer": "^0.2.0",
"class-validator": "^0.9.1",
"reflect-metadata": "^0.1.12",
"rxjs": "^6.0.0",
"typescript": "^3.1.0"
"rxjs": "^6.3.3",
"typescript": "^3.2.2"
},
"devDependencies": {
"@types/jest": "^20.0.8",
"@types/node": "^7.0.41",
"jest": "^20.0.4",
"supertest": "^3.0.0",
"ts-jest": "^20.0.14",
"ts-node": "^6.0.0",
"tslint": "^5.9.1"
"@types/node": "^10.12.18",
"supertest": "^3.3.0",
"ts-node": "^7.0.1",
"tslint": "^5.12.0"
}
}

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,54 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"indent": false,
"quotemark": [
true,
"single"
],
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

View File

@@ -4,26 +4,28 @@
"description": "Nest TypeScript starter repository",
"license": "MIT",
"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node src/main",
"prestart:prod": "tsc",
"prestart:prod": "npm run build",
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "^5.3.6",
"@nestjs/core": "^5.3.6",
"@nestjs/graphql": "^5.3.0",
"apollo-server-express": "2.0.4",
"class-transformer": "^0.1.9",
"@nestjs/common": "^6.0.0",
"@nestjs/core": "^6.0.0",
"@nestjs/graphql": "^6.0.0",
"@nestjs/platform-express": "^6.0.0",
"apollo-server-express": "2.3.1",
"class-transformer": "^0.2.0",
"class-validator": "^0.9.1",
"graphql": "0.13.2",
"graphql-subscriptions": "0.5.8",
"graphql": "14.0.2",
"graphql-subscriptions": "1.0.0",
"reflect-metadata": "0.1.12",
"rxjs": "6.3.1",
"typescript": "3.0.3"
"rxjs": "6.3.3",
"typescript": "3.2.2"
},
"devDependencies": {
"@types/node": "10.9.4",
"@types/node": "10.12.18",
"ts-node": "7.0.1",
"tslint": "5.11.0"
"tslint": "5.12.0"
}
}

View File

@@ -1,27 +1,32 @@
/** ------------------------------------------------------
* THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY)
* -------------------------------------------------------
*/
/* tslint:disable */
export class CreateCatInput {
name?: string;
age?: number;
name?: string;
age?: number;
}
export class Cat {
id?: number;
name?: string;
age?: number;
id?: number;
name?: string;
age?: number;
}
export abstract class IMutation {
abstract createCat(createCatInput?: CreateCatInput): Cat | Promise<Cat>;
abstract createCat(createCatInput?: CreateCatInput): Cat | Promise<Cat>;
}
export abstract class IQuery {
abstract getCats(): Cat[] | Promise<Cat[]>;
abstract getCats(): Cat[] | Promise<Cat[]>;
abstract cat(id: string): Cat | Promise<Cat>;
abstract cat(id: string): Cat | Promise<Cat>;
abstract temp__(): boolean | Promise<boolean>;
abstract temp__(): boolean | Promise<boolean>;
}
export abstract class ISubscription {
abstract catCreated(): Cat | Promise<Cat>;
abstract catCreated(): Cat | Promise<Cat>;
}

View File

@@ -0,0 +1,5 @@
{
"extends": "./tsconfig.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}

View File

@@ -1,22 +1,17 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": false,
"declaration": true,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"baseUrl": "./"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
"exclude": ["node_modules"]
}

View File

@@ -1,54 +1,19 @@
{
"defaultSeverity": "error",
"extends": [
"tslint:recommended"
],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"eofline": false,
"quotemark": [
true,
"single"
],
"indent": false,
"ordered-imports": [
false
],
"max-line-length": [
150
],
"member-ordering": [
false
],
"curly": false,
"interface-name": [
false
],
"array-type": [
false
],
"member-access": [
false
],
"no-empty-interface": false,
"no-empty": false,
"arrow-parens": false,
"object-literal-sort-keys": false,
"no-unused-expression": false,
"max-classes-per-file": [
false
],
"variable-name": [
false
],
"one-line": [
false
],
"one-variable-per-declaration": [
false
]
},
"rulesDirectory": []
"defaultSeverity": "error",
"extends": ["tslint:recommended"],
"jsRules": {
"no-unused-expression": true
},
"rules": {
"quotemark": [true, "single"],
"member-access": [false],
"ordered-imports": [false],
"max-line-length": [true, 150],
"member-ordering": [false],
"interface-name": [false],
"arrow-parens": false,
"no-console": false,
"object-literal-sort-keys": false
},
"rulesDirectory": []
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More