From 2d46b21a00c086015a42006230dfb1219f27bc29 Mon Sep 17 00:00:00 2001 From: Diluka Date: Thu, 30 May 2019 10:13:10 +0800 Subject: [PATCH 01/10] Update repository-service.class.ts change `buildQuery`'s access modifier to `protected`, so it can be used in derived classes. --- src/typeorm/repository-service.class.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/typeorm/repository-service.class.ts b/src/typeorm/repository-service.class.ts index 36e2fa63..f72c2881 100644 --- a/src/typeorm/repository-service.class.ts +++ b/src/typeorm/repository-service.class.ts @@ -195,7 +195,7 @@ export class RepositoryService extends RestfulService { * @param options * @param many */ - private async buildQuery( + protected async buildQuery( query: RequestParamsParsed, options: RestfulOptions = {}, many = true, From f5325486546a43af28e99be19cb2a66c8319ad0e Mon Sep 17 00:00:00 2001 From: huguihai Date: Tue, 4 Jun 2019 20:27:14 +0800 Subject: [PATCH 02/10] fix ReflectMetadata -> SetMetadata --- dist/decorators/feature-action.decorator.js | 4 ++-- dist/decorators/feature-action.decorator.js.map | 2 +- src/decorators/feature-action.decorator.ts | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dist/decorators/feature-action.decorator.js b/dist/decorators/feature-action.decorator.js index 83279b6b..d49db61a 100644 --- a/dist/decorators/feature-action.decorator.js +++ b/dist/decorators/feature-action.decorator.js @@ -2,8 +2,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const common_1 = require("@nestjs/common"); const constants_1 = require("../constants"); -exports.Feature = (name) => common_1.ReflectMetadata(constants_1.FEAUTURE_NAME_METADATA, name); -exports.Action = (name) => common_1.ReflectMetadata(constants_1.ACTION_NAME_METADATA, name); +exports.Feature = (name) => common_1.SetMetadata(constants_1.FEAUTURE_NAME_METADATA, name); +exports.Action = (name) => common_1.SetMetadata(constants_1.ACTION_NAME_METADATA, name); exports.getFeature = (target) => Reflect.getMetadata(constants_1.FEAUTURE_NAME_METADATA, target); exports.getAction = (target) => Reflect.getMetadata(constants_1.ACTION_NAME_METADATA, target); //# sourceMappingURL=feature-action.decorator.js.map \ No newline at end of file diff --git a/dist/decorators/feature-action.decorator.js.map b/dist/decorators/feature-action.decorator.js.map index f9e56dda..89d5dc49 100644 --- a/dist/decorators/feature-action.decorator.js.map +++ b/dist/decorators/feature-action.decorator.js.map @@ -1 +1 @@ -{"version":3,"file":"feature-action.decorator.js","sourceRoot":"","sources":["../../src/decorators/feature-action.decorator.ts"],"names":[],"mappings":";;AAAA,2CAAuD;AAEvD,4CAA4E;AAE/D,QAAA,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,wBAAe,CAAC,kCAAsB,EAAE,IAAI,CAAC,CAAC;AAC1E,QAAA,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,wBAAe,CAAC,gCAAoB,EAAE,IAAI,CAAC,CAAC;AACvE,QAAA,UAAU,GAAG,CAAU,MAAe,EAAE,EAAE,CACrD,OAAO,CAAC,WAAW,CAAC,kCAAsB,EAAE,MAAM,CAAC,CAAC;AACzC,QAAA,SAAS,GAAG,CAAC,MAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"feature-action.decorator.js","sourceRoot":"","sources":["../../src/decorators/feature-action.decorator.ts"],"names":[],"mappings":";;AAAA,2CAAmD;AAEnD,4CAA4E;AAE/D,QAAA,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAW,CAAC,kCAAsB,EAAE,IAAI,CAAC,CAAC;AACtE,QAAA,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAW,CAAC,gCAAoB,EAAE,IAAI,CAAC,CAAC;AACnE,QAAA,UAAU,GAAG,CAAU,MAAe,EAAE,EAAE,CACrD,OAAO,CAAC,WAAW,CAAC,kCAAsB,EAAE,MAAM,CAAC,CAAC;AACzC,QAAA,SAAS,GAAG,CAAC,MAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,CAAC"} \ No newline at end of file diff --git a/src/decorators/feature-action.decorator.ts b/src/decorators/feature-action.decorator.ts index 70564ec5..b6af1bea 100644 --- a/src/decorators/feature-action.decorator.ts +++ b/src/decorators/feature-action.decorator.ts @@ -1,9 +1,9 @@ -import { ReflectMetadata, Type } from '@nestjs/common'; +import { SetMetadata, Type } from '@nestjs/common'; import { FEAUTURE_NAME_METADATA, ACTION_NAME_METADATA } from '../constants'; -export const Feature = (name: string) => ReflectMetadata(FEAUTURE_NAME_METADATA, name); -export const Action = (name: string) => ReflectMetadata(ACTION_NAME_METADATA, name); +export const Feature = (name: string) => SetMetadata(FEAUTURE_NAME_METADATA, name); +export const Action = (name: string) => SetMetadata(ACTION_NAME_METADATA, name); export const getFeature = (target: Type) => Reflect.getMetadata(FEAUTURE_NAME_METADATA, target); export const getAction = (target: Function) => Reflect.getMetadata(ACTION_NAME_METADATA, target); From 0d05f3ca7eb0c43ed15537e70d6dd97fa407bafc Mon Sep 17 00:00:00 2001 From: Eduard Nikolenko Date: Wed, 5 Jun 2019 00:17:31 +0300 Subject: [PATCH 03/10] fix: always persist only defined primary keys --- src/typeorm/repository-service.class.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/typeorm/repository-service.class.ts b/src/typeorm/repository-service.class.ts index 36e2fa63..e77d2076 100644 --- a/src/typeorm/repository-service.class.ts +++ b/src/typeorm/repository-service.class.ts @@ -341,6 +341,9 @@ export class RepositoryService extends RestfulService { this.entityColumnsHash[prop.propertyName] = true; return prop.propertyName; }); + this.entityPrimaryColumns = this.repo.metadata.columns + .filter((prop) => prop.isPrimary) + .map((prop) => prop.propertyName); } private onInitMapRelations() { @@ -523,7 +526,7 @@ export class RepositoryService extends RestfulService { const select = [ ...(options.persist && options.persist.length ? options.persist : []), ...columns, - 'id', // always persist ids + ...this.entityPrimaryColumns, // always persist primary keys ].map((col) => `${this.alias}.${col}`); return select; From eef53c54d9e29258d2120adc56e0f5de118a4a87 Mon Sep 17 00:00:00 2001 From: Eduard Nikolenko Date: Wed, 5 Jun 2019 00:28:26 +0300 Subject: [PATCH 04/10] fix: define entityPrimaryColumns --- src/typeorm/repository-service.class.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/typeorm/repository-service.class.ts b/src/typeorm/repository-service.class.ts index e77d2076..4f197fa3 100644 --- a/src/typeorm/repository-service.class.ts +++ b/src/typeorm/repository-service.class.ts @@ -22,6 +22,7 @@ export class RepositoryService extends RestfulService { protected options: RestfulOptions = {}; private entityColumns: string[]; + private entityPrimaryColumns: string[]; private entityColumnsHash: ObjectLiteral = {}; private entityRelationsHash: ObjectLiteral = {}; From 2ab0e86ca5be2c376ac74769191b82f7dbbe43e2 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 8 Jun 2019 11:05:54 +0000 Subject: [PATCH 05/10] chore: add Greenkeeper config file --- greenkeeper.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 greenkeeper.json diff --git a/greenkeeper.json b/greenkeeper.json new file mode 100644 index 00000000..ddf6236c --- /dev/null +++ b/greenkeeper.json @@ -0,0 +1,11 @@ +{ + "groups": { + "default": { + "packages": [ + "dist/package.json", + "integration/typeorm/package.json", + "package.json" + ] + } + } +} From fb65f2dd4f34efef77f05d471a62507ee144a11a Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 8 Jun 2019 11:05:59 +0000 Subject: [PATCH 06/10] chore(package): update dependencies --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 034f6304..de74384e 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "devDependencies": { "@types/chai": "^4.1.7", "@types/jest": "^24.0.11", - "@types/node": "^11.11.4", + "@types/node": "^12.0.7", "@types/supertest": "^2.0.7", "chai": "^4.2.0", "coveralls": "^3.0.3", From bbf26c53343b184bb6cacc72476c62cc791a4365 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 8 Jun 2019 11:06:04 +0000 Subject: [PATCH 07/10] chore(package): update dependencies --- integration/typeorm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration/typeorm/package.json b/integration/typeorm/package.json index 021de595..a656bf4c 100644 --- a/integration/typeorm/package.json +++ b/integration/typeorm/package.json @@ -30,7 +30,7 @@ "typeorm": "^0.2.9" }, "devDependencies": { - "@types/node": "^11.11.4", + "@types/node": "^12.0.7", "nodemon": "^1.18.7", "ts-node": "^8.0.3", "tsconfig-paths": "^3.7.0", From a9c87e68560176d9a2fcb2d631a4c943aefe501e Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 8 Jun 2019 11:06:08 +0000 Subject: [PATCH 08/10] docs(readme): add Greenkeeper badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7fa76a7f..35701a8f 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ # NestJs CRUD for RESTful APIs +[![Greenkeeper badge](https://badges.greenkeeper.io/nestjsx/crud.svg)](https://greenkeeper.io/) + `@nestjsx/crud` has been designed for creating CRUD controllers and services for RESTful applications built with NestJs. It can be used with TypeORM repositories for now, but Mongoose functionality perhaps will be available in the future. ## Features and merits From 7d29f2c5d0afc1f20f57d108e20455e0434fccc8 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 8 Jun 2019 11:06:13 +0000 Subject: [PATCH 09/10] chore(package): update lockfile integration/typeorm/package-lock.json --- integration/typeorm/package-lock.json | 47 +++++++++++++++++++-------- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/integration/typeorm/package-lock.json b/integration/typeorm/package-lock.json index 0e2c72f1..da6f8108 100644 --- a/integration/typeorm/package-lock.json +++ b/integration/typeorm/package-lock.json @@ -92,9 +92,9 @@ "dev": true }, "@types/node": { - "version": "11.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.5.tgz", - "integrity": "sha512-pz6wNe/XwyesgfVX7P6B0hY3TnTAYXk6KSTLdpQfbuq3be+hnMoCuFzE+yLTskPdBwmNiGRL2TAsnF09aRugvQ==", + "version": "12.0.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz", + "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A==", "dev": true }, "abbrev": { @@ -1317,7 +1317,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -1338,12 +1339,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1358,17 +1361,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -1485,7 +1491,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -1497,6 +1504,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -1511,6 +1519,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -1518,12 +1527,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -1542,6 +1553,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -1622,7 +1634,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -1634,6 +1647,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -1719,7 +1733,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -1755,6 +1770,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -1774,6 +1790,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -1817,12 +1834,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, From c1cdac0face4bb5369e53b051df569fc7b6ab36a Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sat, 8 Jun 2019 11:06:16 +0000 Subject: [PATCH 10/10] chore(package): update lockfile package-lock.json --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 134c8b1f..7bd745fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@nestjsx/crud", - "version": "3.1.0", + "version": "3.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -532,9 +532,9 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, "@types/node": { - "version": "11.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.5.tgz", - "integrity": "sha512-pz6wNe/XwyesgfVX7P6B0hY3TnTAYXk6KSTLdpQfbuq3be+hnMoCuFzE+yLTskPdBwmNiGRL2TAsnF09aRugvQ==", + "version": "12.0.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz", + "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A==", "dev": true }, "@types/stack-utils": {