@metapic/nestjs-utils 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,25 @@
1
1
  # nestjs-utils
2
2
 
3
- Utilities and helpers for [Nest.js](https://nestjs.com/) + [TypeORM](https://typeorm.io/).
3
+ Utility helpers for [Nest.js](https://nestjs.com/) projects. Comes with opinionated defaults for [TypeORM](https://typeorm.io/), [Swagger](https://docs.nestjs.com/openapi/introduction) and serialisation:
4
+
5
+ - Symbols (e.g. DTO property names) always **camelCase**.
6
+ - API JSON payload property names always **snake_case**.
7
+ - Database column names always **snake_case**.
8
+
9
+ See the [example app](./example) for a fully wired showcase of all features.
10
+
11
+ **Important**: Serialisation uses [class-transformer](https://github.com/typestack/class-transformer)/[class-validator](https://github.com/typestack/class-validator) (see [Nest.js docs](https://docs.nestjs.com/techniques/serialization)). You can use the following helpers for easy setup (see also [`example/src/app.module.ts`](./example/src/app.module.ts))
12
+
13
+ ```ts
14
+ import { Module } from '@nestjs/common'
15
+ import { SERIALIZATION_INTERCEPTOR, VALIDATION_PIPE } from '@metapic/nestjs-utils'
16
+
17
+ @Module({
18
+ providers: [SERIALIZATION_INTERCEPTOR, VALIDATION_PIPE],
19
+ })
20
+ export class AppModule {}
21
+ ```
4
22
 
5
23
  ## Testing
6
24
 
7
- All testing is done via [the e2e tests in the example project](./example/test).
25
+ All testing runs through the example app’s e2e suite: [example/test](example/test).
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export * from './nestjs.js';
1
2
  export * from './pagination.js';
2
3
  export * from './serialization.js';
4
+ export * from './swagger.js';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA"}
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ export * from './nestjs.js';
1
2
  export * from './pagination.js';
2
3
  export * from './serialization.js';
4
+ export * from './swagger.js';
3
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { ClassSerializerInterceptor, ValidationPipe } from '@nestjs/common';
2
+ export declare const SERIALIZATION_INTERCEPTOR: {
3
+ provide: string;
4
+ useClass: typeof ClassSerializerInterceptor;
5
+ };
6
+ export declare const VALIDATION_PIPE: {
7
+ provide: string;
8
+ useValue: ValidationPipe;
9
+ };
10
+ //# sourceMappingURL=nestjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestjs.d.ts","sourceRoot":"","sources":["../src/nestjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGvF,eAAO,MAAM,yBAAyB;;;CAGrC,CAAA;AAED,eAAO,MAAM,eAAe;;;CAO3B,CAAA"}
package/dist/nestjs.js ADDED
@@ -0,0 +1,15 @@
1
+ import { ClassSerializerInterceptor, HttpStatus, ValidationPipe } from '@nestjs/common';
2
+ import { APP_INTERCEPTOR, APP_PIPE } from '@nestjs/core';
3
+ export const SERIALIZATION_INTERCEPTOR = {
4
+ provide: APP_INTERCEPTOR,
5
+ useClass: ClassSerializerInterceptor,
6
+ };
7
+ export const VALIDATION_PIPE = {
8
+ provide: APP_PIPE,
9
+ useValue: new ValidationPipe({
10
+ transform: true,
11
+ transformOptions: { enableImplicitConversion: true },
12
+ errorHttpStatusCode: HttpStatus.UNPROCESSABLE_ENTITY,
13
+ }),
14
+ };
15
+ //# sourceMappingURL=nestjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../src/nestjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACvF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAExD,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,0BAA0B;CACrC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,IAAI,cAAc,CAAC;QAC3B,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE;QACpD,mBAAmB,EAAE,UAAU,CAAC,oBAAoB;KACrD,CAAC;CACH,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAIL,0BAA0B,EAE3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,mBAAmB,CAAA;AAE1E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAGvB,UAAU,EACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,aAAa,EAClB,UAAU,EACV,KAAK,kBAAkB,EACxB,MAAM,SAAS,CAAA;AAIhB,wBAAsB,6BAA6B,CAAC,GAAG,EAAE,UAAU,SAAS,aAAa,EACvF,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACxC,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,GAAG,EACvC,YAAY,EAAE,kBAAkB,CAAC,UAAU,CAAC,EAC5C,iBAAiB,EAAE,kBAAkB,GACpC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAUzB;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,SAAS,aAAa,EACzE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,EAC/B,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACxC,iBAAiB,EAAE,kBAAkB,GACpC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAE1B,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,SAAS,aAAa,EACzE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,EAC/B,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,iBAAiB,EAAE,kBAAkB,EACrC,aAAa,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GACjE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAuB1B,eAAO,MAAM,oBAAoB,GAC/B,SAAS,0BAA0B,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,KAC5D,iBAsBF,CAAA;AAED,qBAAa,cAAe,YAAW,eAAe;IAIpD,SAAS,EAAE,MAAM,CAAI;IAKrB,UAAU,CAAC,EAAE,MAAM,CAAA;IAKnB,YAAY,EAAE,MAAM,CAAI;IAKxB,UAAU,CAAC,EAAE,MAAM,CAAA;IAKnB,WAAW,EAAE,MAAM,CAAI;CACxB;AAED,qBAAa,eAAgB,YAAW,gBAAgB;IAGtD,KAAK,CAAC,EAAE,MAAM,CAAA;IAId,QAAQ,CAAC,EAAE,MAAM,CAAA;IAIjB,IAAI,CAAC,EAAE,MAAM,CAAA;IAIb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC;IAC7D,SACiB,KAAK,EAAE,CAAC,EAAE,CAAA;IAE3B,SACiB,IAAI,EAAE,cAAc,CAAA;IAErC,SACiB,KAAK,CAAC,EAAE,eAAe,CAAA;CACzC;AAED,qBAAa,eAAe;IAI1B,IAAI,EAAE,MAAM,CAAI;IAMhB,KAAK,EAAE,MAAM,CAAK;CACnB"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAIL,0BAA0B,EAE3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,mBAAmB,CAAA;AAE1E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAGvB,UAAU,EACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,aAAa,EAClB,UAAU,EACV,KAAK,kBAAkB,EACxB,MAAM,SAAS,CAAA;AAIhB,wBAAsB,6BAA6B,CAAC,GAAG,EAAE,UAAU,SAAS,aAAa,EACvF,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACxC,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,GAAG,EACvC,YAAY,EAAE,kBAAkB,CAAC,UAAU,CAAC,EAC5C,iBAAiB,EAAE,kBAAkB,GACpC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAUzB;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,SAAS,aAAa,EACzE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,EAC/B,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACxC,iBAAiB,EAAE,kBAAkB,GACpC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAE1B,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,SAAS,aAAa,EACzE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,EAC/B,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,iBAAiB,EAAE,kBAAkB,EACrC,aAAa,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GACjE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAuB1B,eAAO,MAAM,oBAAoB,GAC/B,SAAS,0BAA0B,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,KAC5D,iBAoBF,CAAA;AAED,qBAAa,cAAe,YAAW,eAAe;IAIpD,SAAS,EAAE,MAAM,CAAI;IAKrB,UAAU,CAAC,EAAE,MAAM,CAAA;IAKnB,YAAY,EAAE,MAAM,CAAI;IAKxB,UAAU,CAAC,EAAE,MAAM,CAAA;IAKnB,WAAW,EAAE,MAAM,CAAI;CACxB;AAED,qBAAa,eAAgB,YAAW,gBAAgB;IAGtD,KAAK,CAAC,EAAE,MAAM,CAAA;IAId,QAAQ,CAAC,EAAE,MAAM,CAAA;IAIjB,IAAI,CAAC,EAAE,MAAM,CAAA;IAIb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC;IAC7D,SACiB,KAAK,EAAE,CAAC,EAAE,CAAA;IAE3B,SACiB,IAAI,EAAE,cAAc,CAAA;IAErC,SACiB,KAAK,CAAC,EAAE,eAAe,CAAA;CACzC;AAED,qBAAa,eAAe;IAI1B,IAAI,EAAE,MAAM,CAAI;IAMhB,KAAK,EAAE,MAAM,CAAK;CACnB"}
@@ -58,17 +58,15 @@ export function toPaginatedResponse(mapper, queryBuilderOrRepository, pagination
58
58
  export const ApiPaginatedResponse = (options) => {
59
59
  const { type } = options, restOptions = __rest(options, ["type"]);
60
60
  return applyDecorators(ApiExtraModels(Paginated, type), ApiResponse(Object.assign(Object.assign({ status: 200 }, restOptions), { schema: {
61
- allOf: [
62
- { $ref: getSchemaPath(Paginated) },
63
- {
64
- properties: {
65
- items: {
66
- type: 'array',
67
- items: { $ref: getSchemaPath(type) },
68
- },
69
- },
61
+ required: ['items', 'meta', 'links'],
62
+ properties: {
63
+ items: {
64
+ type: 'array',
65
+ items: { $ref: getSchemaPath(type) },
70
66
  },
71
- ],
67
+ meta: { $ref: getSchemaPath(PaginationMeta) },
68
+ links: { $ref: getSchemaPath(PaginationLinks) },
69
+ },
72
70
  } })));
73
71
  };
74
72
  export class PaginationMeta {
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}