@nest-omni/core 2.0.1-9 → 3.1.1-9

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.
Files changed (205) hide show
  1. package/index.js +4 -0
  2. package/package.json +150 -46
  3. package/.hygen/new/crud/controller.ejs.t +0 -82
  4. package/.hygen/new/crud/create.dto.ejs.t +0 -12
  5. package/.hygen/new/crud/entity.ejs.t +0 -26
  6. package/.hygen/new/crud/get.dto.ejs.t +0 -19
  7. package/.hygen/new/crud/index-dto.ejs.t +0 -29
  8. package/.hygen/new/crud/index-response.dto.ejs.t +0 -18
  9. package/.hygen/new/crud/module.ejs.t +0 -32
  10. package/.hygen/new/crud/prompt.js +0 -89
  11. package/.hygen/new/crud/service.ejs.t +0 -76
  12. package/.hygen/new/crud/update.dto.ejs.t +0 -11
  13. package/.hygen/new/module/controller.ejs.t +0 -93
  14. package/.hygen/new/module/create-command.ejs.t +0 -90
  15. package/.hygen/new/module/create.dto.ejs.t +0 -11
  16. package/.hygen/new/module/dto.ejs.t +0 -24
  17. package/.hygen/new/module/entity.ejs.t +0 -33
  18. package/.hygen/new/module/get-query.ejs.t +0 -57
  19. package/.hygen/new/module/module.ejs.t +0 -44
  20. package/.hygen/new/module/not-found.exception.ejs.t +0 -18
  21. package/.hygen/new/module/page-options.dto.ejs.t +0 -12
  22. package/.hygen/new/module/prompt.js +0 -104
  23. package/.hygen/new/module/repository.ejs.t +0 -16
  24. package/.hygen/new/module/service.ejs.t +0 -139
  25. package/.hygen/new/module/translation-dto.ejs.t +0 -27
  26. package/.hygen/new/module/translation-entity.ejs.t +0 -40
  27. package/.hygen/new/module/translation-repository.ejs.t +0 -16
  28. package/.hygen/new/module/update.dto.ejs.t +0 -10
  29. package/.hygen.js +0 -116
  30. package/common/abstract-client.service.d.ts +0 -16
  31. package/common/abstract-client.service.js +0 -35
  32. package/common/abstract.entity.d.ts +0 -18
  33. package/common/abstract.entity.js +0 -78
  34. package/common/boilerplate.polyfill.d.ts +0 -39
  35. package/common/boilerplate.polyfill.js +0 -77
  36. package/common/dto/abstract.dto.d.ts +0 -13
  37. package/common/dto/abstract.dto.js +0 -59
  38. package/common/dto/bulk-id.dto.d.ts +0 -3
  39. package/common/dto/bulk-id.dto.js +0 -27
  40. package/common/dto/create-translation.dto.d.ts +0 -5
  41. package/common/dto/create-translation.dto.js +0 -25
  42. package/common/dto/index.d.ts +0 -6
  43. package/common/dto/index.js +0 -22
  44. package/common/dto/page-meta.dto.d.ts +0 -15
  45. package/common/dto/page-meta.dto.js +0 -48
  46. package/common/dto/page-options.dto.d.ts +0 -8
  47. package/common/dto/page-options.dto.js +0 -52
  48. package/common/dto/page.dto.d.ts +0 -11
  49. package/common/dto/page.dto.js +0 -53
  50. package/common/index.d.ts +0 -7
  51. package/common/index.js +0 -23
  52. package/common/snake-naming.strategy.d.ts +0 -11
  53. package/common/snake-naming.strategy.js +0 -37
  54. package/common/types.d.ts +0 -9
  55. package/common/types.js +0 -2
  56. package/common/utils.d.ts +0 -3
  57. package/common/utils.js +0 -24
  58. package/constants/index.d.ts +0 -2
  59. package/constants/index.js +0 -18
  60. package/constants/language-code.d.ts +0 -5
  61. package/constants/language-code.js +0 -9
  62. package/constants/order.d.ts +0 -4
  63. package/constants/order.js +0 -8
  64. package/decorators/api-page-ok-response.decorator.d.ts +0 -5
  65. package/decorators/api-page-ok-response.decorator.js +0 -24
  66. package/decorators/auth-user.decorator.d.ts +0 -1
  67. package/decorators/auth-user.decorator.js +0 -14
  68. package/decorators/controller.decorator.d.ts +0 -1
  69. package/decorators/controller.decorator.js +0 -10
  70. package/decorators/field.decorators.d.ts +0 -79
  71. package/decorators/field.decorators.js +0 -497
  72. package/decorators/http.decorators.d.ts +0 -3
  73. package/decorators/http.decorators.js +0 -7
  74. package/decorators/index.d.ts +0 -12
  75. package/decorators/index.js +0 -28
  76. package/decorators/operation.decorator.d.ts +0 -1
  77. package/decorators/operation.decorator.js +0 -6
  78. package/decorators/property.decorators.d.ts +0 -15
  79. package/decorators/property.decorators.js +0 -31
  80. package/decorators/public-route.decorator.d.ts +0 -3
  81. package/decorators/public-route.decorator.js +0 -7
  82. package/decorators/swagger.schema.d.ts +0 -5
  83. package/decorators/swagger.schema.js +0 -78
  84. package/decorators/timestamp-column.decorator.d.ts +0 -1
  85. package/decorators/timestamp-column.decorator.js +0 -27
  86. package/decorators/transform.decorators.d.ts +0 -8
  87. package/decorators/transform.decorators.js +0 -100
  88. package/decorators/translate.decorator.d.ts +0 -5
  89. package/decorators/translate.decorator.js +0 -17
  90. package/decorators/use-dto.decorator.d.ts +0 -4
  91. package/decorators/use-dto.decorator.js +0 -8
  92. package/decorators/user-check.decorator.d.ts +0 -6
  93. package/decorators/user-check.decorator.js +0 -21
  94. package/decorators/user.decorator.d.ts +0 -12
  95. package/decorators/user.decorator.js +0 -44
  96. package/decorators/user_auth.decorator.d.ts +0 -1
  97. package/decorators/user_auth.decorator.js +0 -15
  98. package/decorators/validator.decorators.d.ts +0 -11
  99. package/decorators/validator.decorators.js +0 -78
  100. package/exceptions/file-not-image.exception.d.ts +0 -4
  101. package/exceptions/file-not-image.exception.js +0 -10
  102. package/exceptions/index.d.ts +0 -2
  103. package/exceptions/index.js +0 -18
  104. package/exceptions/page-type.exception.d.ts +0 -4
  105. package/exceptions/page-type.exception.js +0 -10
  106. package/exceptions/user-not-found.exception.d.ts +0 -4
  107. package/exceptions/user-not-found.exception.js +0 -10
  108. package/filters/bad-request.filter.d.ts +0 -5
  109. package/filters/bad-request.filter.js +0 -71
  110. package/filters/constraint-errors.d.ts +0 -1
  111. package/filters/constraint-errors.js +0 -6
  112. package/filters/index.d.ts +0 -3
  113. package/filters/index.js +0 -19
  114. package/filters/query-failed.filter.d.ts +0 -10
  115. package/filters/query-failed.filter.js +0 -42
  116. package/health-checker/health-checker.controller.d.ts +0 -15
  117. package/health-checker/health-checker.controller.js +0 -72
  118. package/health-checker/health-checker.module.d.ts +0 -2
  119. package/health-checker/health-checker.module.js +0 -25
  120. package/health-checker/health-indicators/service.indicator.d.ts +0 -8
  121. package/health-checker/health-indicators/service.indicator.js +0 -66
  122. package/helpers/common.helper.d.ts +0 -3
  123. package/helpers/common.helper.js +0 -36
  124. package/helpers/date.helper.d.ts +0 -10
  125. package/helpers/date.helper.js +0 -57
  126. package/helpers/index.d.ts +0 -2
  127. package/helpers/index.js +0 -18
  128. package/i18n/en_US/validation.json +0 -41
  129. package/i18n/zh_CN/validation.json +0 -41
  130. package/index.d.ts +0 -11
  131. package/interceptors/index.d.ts +0 -2
  132. package/interceptors/index.js +0 -18
  133. package/interceptors/language-interceptor.service.d.ts +0 -6
  134. package/interceptors/language-interceptor.service.js +0 -29
  135. package/interceptors/translation-interceptor.service.d.ts +0 -5
  136. package/interceptors/translation-interceptor.service.js +0 -34
  137. package/interfaces/IApiFile.d.ts +0 -4
  138. package/interfaces/IApiFile.js +0 -2
  139. package/interfaces/IFile.d.ts +0 -8
  140. package/interfaces/IFile.js +0 -2
  141. package/interfaces/ITranslationDecoratorInterface.d.ts +0 -3
  142. package/interfaces/ITranslationDecoratorInterface.js +0 -2
  143. package/interfaces/index.d.ts +0 -3
  144. package/interfaces/index.js +0 -19
  145. package/interfaces/response.d.ts +0 -25
  146. package/interfaces/response.js +0 -2
  147. package/middlewares/index.d.ts +0 -4
  148. package/middlewares/index.js +0 -20
  149. package/middlewares/omni-auth.middleware.d.ts +0 -1
  150. package/middlewares/omni-auth.middleware.js +0 -13
  151. package/middlewares/powerby.middleware.d.ts +0 -1
  152. package/middlewares/powerby.middleware.js +0 -10
  153. package/middlewares/request-id.middleware.d.ts +0 -7
  154. package/middlewares/request-id.middleware.js +0 -22
  155. package/middlewares/xml.middleware.d.ts +0 -4
  156. package/middlewares/xml.middleware.js +0 -24
  157. package/providers/context.provider.d.ts +0 -34
  158. package/providers/context.provider.js +0 -80
  159. package/providers/generator.provider.d.ts +0 -9
  160. package/providers/generator.provider.js +0 -50
  161. package/providers/index.d.ts +0 -2
  162. package/providers/index.js +0 -18
  163. package/setup/bootstrap.setup.d.ts +0 -2
  164. package/setup/bootstrap.setup.js +0 -227
  165. package/setup/index.d.ts +0 -1
  166. package/setup/index.js +0 -17
  167. package/shared/index.d.ts +0 -2
  168. package/shared/index.js +0 -18
  169. package/shared/serviceRegistryModule.d.ts +0 -2
  170. package/shared/serviceRegistryModule.js +0 -111
  171. package/shared/services/api-config.service.d.ts +0 -58
  172. package/shared/services/api-config.service.js +0 -302
  173. package/shared/services/generator.service.d.ts +0 -4
  174. package/shared/services/generator.service.js +0 -23
  175. package/shared/services/index.d.ts +0 -4
  176. package/shared/services/index.js +0 -20
  177. package/shared/services/translation.service.d.ts +0 -9
  178. package/shared/services/translation.service.js +0 -70
  179. package/shared/services/validator.service.d.ts +0 -3
  180. package/shared/services/validator.service.js +0 -20
  181. package/tsconfig.tsbuildinfo +0 -1
  182. package/validator-json/decorators.d.ts +0 -6
  183. package/validator-json/decorators.js +0 -22
  184. package/validator-json/default.d.ts +0 -6
  185. package/validator-json/default.js +0 -130
  186. package/validator-json/defaultConverters.d.ts +0 -8
  187. package/validator-json/defaultConverters.js +0 -376
  188. package/validator-json/index.d.ts +0 -4
  189. package/validator-json/index.js +0 -20
  190. package/validator-json/options.d.ts +0 -11
  191. package/validator-json/options.js +0 -10
  192. package/validators/file-mimetype.validator.d.ts +0 -13
  193. package/validators/file-mimetype.validator.js +0 -21
  194. package/validators/index.d.ts +0 -6
  195. package/validators/index.js +0 -22
  196. package/validators/is-exists.validator.d.ts +0 -18
  197. package/validators/is-exists.validator.js +0 -62
  198. package/validators/is-unique.validator.d.ts +0 -17
  199. package/validators/is-unique.validator.js +0 -93
  200. package/validators/phone-country-code.validator.d.ts +0 -2
  201. package/validators/phone-country-code.validator.js +0 -29
  202. package/validators/same-as.validator.d.ts +0 -2
  203. package/validators/same-as.validator.js +0 -24
  204. package/validators/skip-empty.validator.d.ts +0 -1
  205. package/validators/skip-empty.validator.js +0 -17
@@ -1,40 +0,0 @@
1
- ---
2
- to: "src/modules/<%= h.fileName(name) %>/<%= h.translationEntityFileName(name) %>.ts"
3
- unless_exists: true
4
- skip_if: <%= !blocks.includes('TranslationEntity') %>
5
- ---
6
- <%
7
- ClassName = h.ClassName(name);
8
- fieldName = h.changeCase.camel(ClassName);
9
- DtoName = h.DtoName(name);
10
- dtoFileName = h.dtoFileName(name);
11
- translationDtoFileName = h.translationDtoFileName(name);
12
- translationEntityFileName = h.translationEntityFileName(name);
13
- DtoOptionName = h.DtoOptionName(name);
14
- var_name = h.inflection.dasherize(name);
15
- EntityName = h.EntityName(name);
16
- entityName = h.changeCase.camel(EntityName);
17
- TranslationEntityName = h.TranslationEntityName(name);
18
- TranslationDtoName = h.TranslationDtoName(name);
19
- translationEntityName = h.changeCase.camel(TranslationEntityName);
20
- %>import { Column, Entity, JoinColumn, ManyToOne } from 'typeorm';
21
-
22
- import { AbstractTranslationEntity } from '@nest-omni/core/common/abstract.entity';
23
- import { UseDto } from '@nest-omni/core/decorators';
24
- import { <%= TranslationDtoName %> } from './dtos/<%= translationDtoFileName %>';
25
- import { <%= EntityName %> } from './<%= entityFileName %>';
26
-
27
- @Entity({ name: '<%= var_name %>_translations' })
28
- @UseDto(<%= TranslationDtoName %>)
29
- export class <%= TranslationEntityName %> extends AbstractTranslationEntity<<%= TranslationDtoName %>> {
30
- @Column({ type: 'uuid' })
31
- <%= fieldName %>Id: Uuid;
32
-
33
- @ManyToOne(() => <%= EntityName %>, (<%= entityName %>) => <%= entityName %>.translations, {
34
- onDelete: 'CASCADE',
35
- onUpdate: 'CASCADE',
36
- })
37
- @JoinColumn({ name: '<%= var_name %>_id' })
38
- <%= fieldName %>: <%= EntityName %>;
39
- }
40
-
@@ -1,16 +0,0 @@
1
- ---
2
- to: "src/modules/<%= h.fileName(name) %>/<%= h.translationRepositoryFileName(name) %>.ts"
3
- unless_exists: true
4
- skip_if: <%= !blocks.includes('TranslationRepository') %>
5
- ---
6
- <%
7
- TranslationEntityName = h.TranslationEntityName(name);
8
- translationEntityFileName = h.translationEntityFileName(name);
9
-
10
- TranslationRepositoryName = h.TranslationRepositoryName(name);
11
- %>import { EntityRepository, Repository } from 'typeorm';
12
-
13
- import { <%= TranslationEntityName %> } from './<%= translationEntityFileName %>';
14
-
15
- @EntityRepository(<%= TranslationEntityName %>)
16
- export class <%= TranslationRepositoryName %> extends Repository<<%= TranslationEntityName %>> {}
@@ -1,10 +0,0 @@
1
- ---
2
- to: "src/modules/<%= h.fileName(name) %>/dtos/<%= h.updateDtoFileName(name) %>.ts"
3
- unless_exists: true
4
- skip_if: <%= !blocks.includes('UpdateDTO') %>
5
- ---
6
- <%
7
-
8
- UpdateDtoName = h.UpdateDtoName(name);
9
-
10
- %>export class <%= UpdateDtoName %> {}
package/.hygen.js DELETED
@@ -1,116 +0,0 @@
1
- module.exports = {
2
- templates: `${__dirname}/.hygen`,
3
- helpers: {
4
- ControllerName(name) {
5
- return `${this.ClassName(name)}Controller`;
6
- },
7
- ServiceName(name) {
8
- return `${this.ClassName(name)}Service`;
9
- },
10
- ModuleName(name) {
11
- return `${this.ClassName(name)}Module`;
12
- },
13
- DtoName(name) {
14
- return `${this.ClassName(name)}Dto`;
15
- },
16
- TranslationDtoName(name) {
17
- return `${this.ClassName(name)}TranslationDto`;
18
- },
19
- UpdateDtoName(name) {
20
- return `Update${this.DtoName(name)}`;
21
- },
22
- DtoOptionName(name) {
23
- return `I${this.DtoName(name)}Options`;
24
- },
25
- CreateDtoName(name) {
26
- return `Create${this.DtoName(name)}`;
27
- },
28
- EntityName(name) {
29
- return `${this.ClassName(name)}Entity`;
30
- },
31
- TranslationEntityName(name) {
32
- return `${this.ClassName(name)}TranslationEntity`;
33
- },
34
- CreateCommandName(name) {
35
- return `Create${this.ClassName(name)}Command`;
36
- },
37
- CreateHandlerName(name) {
38
- return `Create${this.ClassName(name)}Handler`;
39
- },
40
- GetHandlerName(name) {
41
- return `Get${this.ClassName(name)}Handler`;
42
- },
43
- GetQueryName(name) {
44
- return `Get${this.ClassName(name)}Query`;
45
- },
46
- PageOptionsDtoName(name) {
47
- return this.ClassName(name) + 'PageOptionsDto';
48
- },
49
- NotFoundExceptionName(name) {
50
- return this.ClassName(name) + 'NotFoundException';
51
- },
52
- entityFileName(name) {
53
- return `${this.fileName(name)}.entity`;
54
- },
55
- translationEntityFileName(name) {
56
- return `${this.fileName(name)}-translation.entity`;
57
- },
58
- translationDtoFileName(name) {
59
- return `${this.fileName(name)}-translation.dto`;
60
- },
61
- repositoryFileName(name) {
62
- return `${this.fileName(name)}.repository`;
63
- },
64
- translationRepositoryFileName(name) {
65
- return `${this.fileName(name)}-translation.repository`;
66
- },
67
- createCommandFileName(name) {
68
- return `create-${this.fileName(name)}.command`;
69
- },
70
- getQueryFileName(name) {
71
- return `get-${this.fileName(name)}.query`;
72
- },
73
- controllerFileName(name) {
74
- return `${this.fileName(name)}.controller`;
75
- },
76
- dtoFileName(name) {
77
- return `${this.fileName(name)}.dto`;
78
- },
79
- notFoundExceptionFileName(name) {
80
- return `${this.fileName(name)}-not-found.exception`;
81
- },
82
- createDtoFileName(name) {
83
- return `create-${this.fileName(name)}.dto`;
84
- },
85
- updateDtoFileName(name) {
86
- return `update-${this.fileName(name)}.dto`;
87
- },
88
- pageOptionsDtoFileName(name) {
89
- return `${this.fileName(name)}-page-options.dto`;
90
- },
91
- serviceFileName(name) {
92
- return `${this.fileName(name)}.service`;
93
- },
94
- moduleFileName(name) {
95
- return `${this.fileName(name)}.module`;
96
- },
97
- ClassName(name) {
98
- return this.changeCase.pascal(name);
99
- },
100
- TableName(name) {
101
- return this.inflection.underscore(this.ClassName(name));
102
- },
103
- RepositoryName(name) {
104
- return `${this.ClassName(name)}Repository`;
105
- },
106
- TranslationRepositoryName(name) {
107
- return `${this.ClassName(name)}TranslationRepository`;
108
- },
109
- moduleName(name) {
110
- return this.changeCase.camel(name);
111
- },
112
- fileName(name) {
113
- return this.inflection.dasherize(name).toLowerCase();
114
- },
115
- },
116
- }
@@ -1,16 +0,0 @@
1
- import type { ClientProxy } from '@nestjs/microservices';
2
- import type { Constructor } from './types';
3
- import type { PageDto } from './dto/page.dto';
4
- export declare class AbstractClientService<ActionType> {
5
- private client;
6
- constructor(client: ClientProxy);
7
- send(pattern: ActionType, data: unknown): Promise<void>;
8
- send<R>(pattern: ActionType, data: unknown, returnDataOptions: {
9
- class: Constructor<R>;
10
- isPage: true;
11
- }): Promise<PageDto<R>>;
12
- send<R>(pattern: ActionType, data: unknown, returnDataOptions?: {
13
- class: Constructor<R>;
14
- isPage?: false;
15
- }): Promise<R>;
16
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AbstractClientService = void 0;
13
- const class_transformer_1 = require("class-transformer");
14
- const rxjs_1 = require("rxjs");
15
- const page_type_exception_1 = require("../exceptions/page-type.exception");
16
- class AbstractClientService {
17
- constructor(client) {
18
- this.client = client;
19
- }
20
- send(pattern, data, returnDataOptions) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- const returnData = yield (0, rxjs_1.firstValueFrom)(this.client.send(pattern, data), {
23
- defaultValue: undefined,
24
- });
25
- if ((returnDataOptions === null || returnDataOptions === void 0 ? void 0 : returnDataOptions.isPage) && (!(returnData === null || returnData === void 0 ? void 0 : returnData.data) || !returnData.meta)) {
26
- throw new page_type_exception_1.PageTypeException();
27
- }
28
- if (!(returnDataOptions === null || returnDataOptions === void 0 ? void 0 : returnDataOptions.class) || returnDataOptions.isPage) {
29
- return returnData;
30
- }
31
- return (0, class_transformer_1.plainToInstance)(returnDataOptions.class, returnData);
32
- });
33
- }
34
- }
35
- exports.AbstractClientService = AbstractClientService;
@@ -1,18 +0,0 @@
1
- import type { AbstractDto, AbstractTranslationDto } from './dto/abstract.dto';
2
- import { LanguageCode } from '../constants';
3
- export declare abstract class AbstractBaseEntity<DTO, O> {
4
- createdAt: Date;
5
- updatedAt: Date;
6
- translations?: AbstractTranslationEntity[];
7
- toDto(options?: O): DTO;
8
- }
9
- export declare class AbstractEntity<DTO extends AbstractDto = AbstractDto, O = never> extends AbstractBaseEntity<DTO, O> {
10
- id: number;
11
- }
12
- export declare class AbstractTranslationEntity<DTO extends AbstractTranslationDto = AbstractTranslationDto, O = never> extends AbstractEntity<DTO, O> {
13
- languageCode: LanguageCode;
14
- }
15
- export declare class AbstractUuidPrimaryEntity<DTO extends AbstractDto = AbstractDto, O = never> extends AbstractBaseEntity<DTO, O> {
16
- id: string;
17
- generateId(): void;
18
- }
@@ -1,78 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AbstractUuidPrimaryEntity = exports.AbstractTranslationEntity = exports.AbstractEntity = exports.AbstractBaseEntity = void 0;
13
- const typeorm_1 = require("typeorm");
14
- const decorators_1 = require("../decorators");
15
- const constants_1 = require("../constants");
16
- const uuid_1 = require("uuid");
17
- class AbstractBaseEntity {
18
- toDto(options) {
19
- const dtoClass = Object.getPrototypeOf(this).dtoClass;
20
- if (!dtoClass) {
21
- throw new Error(`You need to use @UseDto on class (${this.constructor.name}) be able to call toDto function`);
22
- }
23
- return new dtoClass(this, options);
24
- }
25
- }
26
- exports.AbstractBaseEntity = AbstractBaseEntity;
27
- __decorate([
28
- (0, typeorm_1.CreateDateColumn)({
29
- type: 'timestamp',
30
- }),
31
- __metadata("design:type", Date)
32
- ], AbstractBaseEntity.prototype, "createdAt", void 0);
33
- __decorate([
34
- (0, typeorm_1.UpdateDateColumn)({
35
- type: 'timestamp',
36
- }),
37
- __metadata("design:type", Date)
38
- ], AbstractBaseEntity.prototype, "updatedAt", void 0);
39
- class AbstractEntity extends AbstractBaseEntity {
40
- }
41
- exports.AbstractEntity = AbstractEntity;
42
- __decorate([
43
- (0, typeorm_1.PrimaryGeneratedColumn)('increment'),
44
- (0, decorators_1.NumberFieldOptional)({ swagger: false }),
45
- __metadata("design:type", Number)
46
- ], AbstractEntity.prototype, "id", void 0);
47
- class AbstractTranslationEntity extends AbstractEntity {
48
- }
49
- exports.AbstractTranslationEntity = AbstractTranslationEntity;
50
- __decorate([
51
- (0, typeorm_1.Column)({ type: 'enum', enum: constants_1.LanguageCode }),
52
- __metadata("design:type", String)
53
- ], AbstractTranslationEntity.prototype, "languageCode", void 0);
54
- class AbstractUuidPrimaryEntity extends AbstractBaseEntity {
55
- generateId() {
56
- var _a;
57
- if (!this.id || ((_a = this.id) === null || _a === void 0 ? void 0 : _a.length) < 2) {
58
- this.id = (0, uuid_1.v4)();
59
- }
60
- }
61
- }
62
- exports.AbstractUuidPrimaryEntity = AbstractUuidPrimaryEntity;
63
- __decorate([
64
- (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
65
- (0, decorators_1.StringFieldOptional)({
66
- maxLength: 36,
67
- minLength: 2,
68
- example: '23247899-c237-4ab1-9639-3322029d2e1c',
69
- swagger: false,
70
- }),
71
- __metadata("design:type", String)
72
- ], AbstractUuidPrimaryEntity.prototype, "id", void 0);
73
- __decorate([
74
- (0, typeorm_1.BeforeInsert)(),
75
- __metadata("design:type", Function),
76
- __metadata("design:paramtypes", []),
77
- __metadata("design:returntype", void 0)
78
- ], AbstractUuidPrimaryEntity.prototype, "generateId", null);
@@ -1,39 +0,0 @@
1
- import 'source-map-support/register';
2
- import type { ObjectLiteral } from 'typeorm';
3
- import type { AbstractEntity } from './abstract.entity';
4
- import type { AbstractDto } from './dto/abstract.dto';
5
- import type { CreateTranslationDto } from './dto/create-translation.dto';
6
- import { PageDto } from './dto/page.dto';
7
- import { PageMetaDto } from './dto/page-meta.dto';
8
- import type { PageOptionsDto } from './dto/page-options.dto';
9
- import type { LanguageCode } from '../constants/language-code';
10
- import type { KeyOfType } from './types';
11
- declare global {
12
- export type Uuid = string & {
13
- _uuidBrand: undefined;
14
- };
15
- export type Todo = any & {
16
- _todoBrand: undefined;
17
- };
18
- interface Array<T> {
19
- toDtos<Dto extends AbstractDto>(this: T[], options?: unknown): Dto[];
20
- getByLanguage(this: CreateTranslationDto[], languageCode: LanguageCode): string;
21
- toPageDto<Dto extends AbstractDto>(this: T[], pageMetaDto: PageMetaDto, options?: unknown): PageDto<Dto>;
22
- }
23
- }
24
- declare module 'typeorm' {
25
- interface SelectQueryBuilder<Entity> {
26
- searchByString(q: string, columnNames: string[], options?: {
27
- formStart: boolean;
28
- }): this;
29
- withTenant(tenantId?: string | number, tenantFieldName?: string): this;
30
- paginate(this: SelectQueryBuilder<Entity>, pageOptionsDto: PageOptionsDto, options?: Partial<{
31
- takeAll: boolean;
32
- skipCount: boolean;
33
- }>): Promise<[Entity[], PageMetaDto]>;
34
- leftJoinAndSelect<AliasEntity extends AbstractEntity, A extends string>(this: SelectQueryBuilder<Entity>, property: `${A}.${Exclude<KeyOfType<AliasEntity, AbstractEntity>, symbol>}`, alias: string, condition?: string, parameters?: ObjectLiteral): this;
35
- leftJoin<AliasEntity extends AbstractEntity, A extends string>(this: SelectQueryBuilder<Entity>, property: `${A}.${Exclude<KeyOfType<AliasEntity, AbstractEntity>, symbol>}`, alias: string, condition?: string, parameters?: ObjectLiteral): this;
36
- innerJoinAndSelect<AliasEntity extends AbstractEntity, A extends string>(this: SelectQueryBuilder<Entity>, property: `${A}.${Exclude<KeyOfType<AliasEntity, AbstractEntity>, symbol>}`, alias: string, condition?: string, parameters?: ObjectLiteral): this;
37
- innerJoin<AliasEntity extends AbstractEntity, A extends string>(this: SelectQueryBuilder<Entity>, property: `${A}.${Exclude<KeyOfType<AliasEntity, AbstractEntity>, symbol>}`, alias: string, condition?: string, parameters?: ObjectLiteral): this;
38
- }
39
- }
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- require("source-map-support/register");
13
- const lodash_1 = require("lodash");
14
- const typeorm_1 = require("typeorm");
15
- const page_dto_1 = require("./dto/page.dto");
16
- const page_meta_dto_1 = require("./dto/page-meta.dto");
17
- const providers_1 = require("../providers");
18
- Array.prototype.toDtos = function (options) {
19
- return (0, lodash_1.compact)((0, lodash_1.map)(this, (item) => item.toDto(options)));
20
- };
21
- Array.prototype.getByLanguage = function (languageCode) {
22
- return this.find((translation) => languageCode === translation.languageCode)
23
- .text;
24
- };
25
- Array.prototype.toPageDto = function (pageMetaDto, options) {
26
- return new page_dto_1.PageDto(this.toDtos(options), pageMetaDto);
27
- };
28
- typeorm_1.SelectQueryBuilder.prototype.searchByString = function (q, columnNames, options) {
29
- if (!q) {
30
- return this;
31
- }
32
- this.andWhere(new typeorm_1.Brackets((qb) => {
33
- for (const item of columnNames) {
34
- qb.orWhere(`${item} ILIKE :q`);
35
- }
36
- }));
37
- if (options === null || options === void 0 ? void 0 : options.formStart) {
38
- this.setParameter('q', `${q}%`);
39
- }
40
- else {
41
- this.setParameter('q', `%${q}%`);
42
- }
43
- return this;
44
- };
45
- typeorm_1.SelectQueryBuilder.prototype.paginate = function (pageOptionsDto, options) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- if (!(options === null || options === void 0 ? void 0 : options.takeAll)) {
48
- this.skip(pageOptionsDto.skip).take(pageOptionsDto.pageSize);
49
- }
50
- const entities = yield this.getMany();
51
- let itemCount = -1;
52
- if (!(options === null || options === void 0 ? void 0 : options.skipCount)) {
53
- itemCount = yield this.getCount();
54
- }
55
- const pageMetaDto = new page_meta_dto_1.PageMetaDto({
56
- itemCount,
57
- pageOptionsDto,
58
- });
59
- return [entities, pageMetaDto];
60
- });
61
- };
62
- typeorm_1.SelectQueryBuilder.prototype.withTenant = function (tenantId, tenantFieldName = 'tenantId') {
63
- var _a;
64
- if (!tenantId) {
65
- tenantId = providers_1.ContextProvider.getTenantId();
66
- }
67
- if (this.expressionMap.mainAlias.hasMetadata) {
68
- const entityMetadata = this.expressionMap.mainAlias.metadata;
69
- const columnName = (_a = entityMetadata.columns.find((column) => column.propertyName === tenantFieldName)) === null || _a === void 0 ? void 0 : _a.databaseName;
70
- if (columnName) {
71
- return this.andWhere(`${this.alias}.${columnName} = :tenantId`, {
72
- tenantId,
73
- });
74
- }
75
- }
76
- return this;
77
- };
@@ -1,13 +0,0 @@
1
- import { AbstractEntity, AbstractUuidPrimaryEntity } from '../abstract.entity';
2
- export declare class AbstractDto {
3
- id: number | string;
4
- createdAt: Date;
5
- updatedAt: Date;
6
- translations?: AbstractTranslationDto[];
7
- constructor(entity: AbstractEntity | AbstractUuidPrimaryEntity, options?: {
8
- excludeFields?: boolean;
9
- });
10
- }
11
- export declare class AbstractTranslationDto extends AbstractDto {
12
- constructor(entity: AbstractEntity | AbstractUuidPrimaryEntity);
13
- }
@@ -1,59 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AbstractTranslationDto = exports.AbstractDto = void 0;
13
- const swagger_1 = require("@nestjs/swagger");
14
- const decorators_1 = require("../../decorators");
15
- const providers_1 = require("../../providers");
16
- class AbstractDto {
17
- constructor(entity, options) {
18
- var _a;
19
- if (!(options === null || options === void 0 ? void 0 : options.excludeFields)) {
20
- this.id = entity.id;
21
- this.createdAt = entity.createdAt;
22
- this.updatedAt = entity.updatedAt;
23
- }
24
- const languageCode = providers_1.ContextProvider.getLanguage();
25
- if (languageCode && entity.translations) {
26
- const translationEntity = entity.translations.find((titleTranslation) => titleTranslation.languageCode === languageCode);
27
- const fields = {};
28
- for (const key of Object.keys(translationEntity)) {
29
- const metadata = Reflect.getMetadata(decorators_1.DYNAMIC_TRANSLATION_DECORATOR_KEY, this, key);
30
- if (metadata) {
31
- fields[key] = translationEntity[key];
32
- }
33
- }
34
- Object.assign(this, fields);
35
- }
36
- else {
37
- this.translations = (_a = entity.translations) === null || _a === void 0 ? void 0 : _a.toDtos();
38
- }
39
- }
40
- }
41
- exports.AbstractDto = AbstractDto;
42
- __decorate([
43
- (0, swagger_1.ApiProperty)(),
44
- __metadata("design:type", Object)
45
- ], AbstractDto.prototype, "id", void 0);
46
- __decorate([
47
- (0, swagger_1.ApiProperty)(),
48
- __metadata("design:type", Date)
49
- ], AbstractDto.prototype, "createdAt", void 0);
50
- __decorate([
51
- (0, swagger_1.ApiProperty)(),
52
- __metadata("design:type", Date)
53
- ], AbstractDto.prototype, "updatedAt", void 0);
54
- class AbstractTranslationDto extends AbstractDto {
55
- constructor(entity) {
56
- super(entity, { excludeFields: true });
57
- }
58
- }
59
- exports.AbstractTranslationDto = AbstractTranslationDto;
@@ -1,3 +0,0 @@
1
- export declare class BulkIdDto {
2
- id: number[] | string[];
3
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.BulkIdDto = void 0;
13
- const swagger_1 = require("@nestjs/swagger");
14
- const class_validator_1 = require("class-validator");
15
- class BulkIdDto {
16
- }
17
- exports.BulkIdDto = BulkIdDto;
18
- __decorate([
19
- (0, swagger_1.ApiProperty)({
20
- type: 'string',
21
- description: 'ID',
22
- isArray: true,
23
- required: true,
24
- }),
25
- (0, class_validator_1.IsArray)(),
26
- __metadata("design:type", Array)
27
- ], BulkIdDto.prototype, "id", void 0);
@@ -1,5 +0,0 @@
1
- import { LanguageCode } from '../../constants';
2
- export declare class CreateTranslationDto {
3
- languageCode: LanguageCode;
4
- text: string;
5
- }
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CreateTranslationDto = void 0;
13
- const constants_1 = require("../../constants");
14
- const decorators_1 = require("../../decorators");
15
- class CreateTranslationDto {
16
- }
17
- exports.CreateTranslationDto = CreateTranslationDto;
18
- __decorate([
19
- (0, decorators_1.EnumField)(() => constants_1.LanguageCode),
20
- __metadata("design:type", String)
21
- ], CreateTranslationDto.prototype, "languageCode", void 0);
22
- __decorate([
23
- (0, decorators_1.StringField)(),
24
- __metadata("design:type", String)
25
- ], CreateTranslationDto.prototype, "text", void 0);
@@ -1,6 +0,0 @@
1
- export * from './abstract.dto';
2
- export * from './bulk-id.dto';
3
- export * from './create-translation.dto';
4
- export * from './page.dto';
5
- export * from './page-meta.dto';
6
- export * from './page-options.dto';
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./abstract.dto"), exports);
18
- __exportStar(require("./bulk-id.dto"), exports);
19
- __exportStar(require("./create-translation.dto"), exports);
20
- __exportStar(require("./page.dto"), exports);
21
- __exportStar(require("./page-meta.dto"), exports);
22
- __exportStar(require("./page-options.dto"), exports);
@@ -1,15 +0,0 @@
1
- import type { PageOptionsDto } from './page-options.dto';
2
- interface IPageMetaDtoParameters {
3
- pageOptionsDto: PageOptionsDto;
4
- itemCount: number;
5
- }
6
- export declare class PageMetaDto {
7
- readonly page: number;
8
- readonly pageSize: number;
9
- readonly itemCount: number;
10
- readonly pageCount: number;
11
- readonly hasPreviousPage: boolean;
12
- readonly hasNextPage: boolean;
13
- constructor({ pageOptionsDto, itemCount }: IPageMetaDtoParameters);
14
- }
15
- export {};