@nest-omni/core 3.1.1-9 → 3.1.2-0
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/.hygen/new/crud/controller.ejs.t +82 -0
- package/.hygen/new/crud/create.dto.ejs.t +12 -0
- package/.hygen/new/crud/entity.ejs.t +26 -0
- package/.hygen/new/crud/get.dto.ejs.t +19 -0
- package/.hygen/new/crud/index-dto.ejs.t +29 -0
- package/.hygen/new/crud/index-response.dto.ejs.t +18 -0
- package/.hygen/new/crud/module.ejs.t +32 -0
- package/.hygen/new/crud/prompt.js +89 -0
- package/.hygen/new/crud/service.ejs.t +76 -0
- package/.hygen/new/crud/update.dto.ejs.t +11 -0
- package/.hygen/new/module/controller.ejs.t +93 -0
- package/.hygen/new/module/create-command.ejs.t +90 -0
- package/.hygen/new/module/create.dto.ejs.t +11 -0
- package/.hygen/new/module/dto.ejs.t +24 -0
- package/.hygen/new/module/entity.ejs.t +33 -0
- package/.hygen/new/module/get-query.ejs.t +57 -0
- package/.hygen/new/module/module.ejs.t +44 -0
- package/.hygen/new/module/not-found.exception.ejs.t +18 -0
- package/.hygen/new/module/page-options.dto.ejs.t +12 -0
- package/.hygen/new/module/prompt.js +104 -0
- package/.hygen/new/module/repository.ejs.t +16 -0
- package/.hygen/new/module/service.ejs.t +139 -0
- package/.hygen/new/module/translation-dto.ejs.t +27 -0
- package/.hygen/new/module/translation-entity.ejs.t +40 -0
- package/.hygen/new/module/translation-repository.ejs.t +16 -0
- package/.hygen/new/module/update.dto.ejs.t +10 -0
- package/.hygen.js +116 -0
- package/cache/cache-metrics.service.d.ts +83 -0
- package/cache/cache-metrics.service.js +298 -0
- package/cache/cache-serialization.service.d.ts +22 -0
- package/cache/cache-serialization.service.js +122 -0
- package/cache/cache.constants.d.ts +2 -0
- package/cache/cache.constants.js +5 -0
- package/cache/cache.health.d.ts +35 -0
- package/cache/cache.health.js +193 -0
- package/cache/cache.module.d.ts +26 -0
- package/cache/cache.module.js +155 -0
- package/cache/cache.service.d.ts +37 -0
- package/cache/cache.service.js +308 -0
- package/cache/cache.warmup.service.d.ts +34 -0
- package/cache/cache.warmup.service.js +199 -0
- package/cache/decorators/cache-evict.decorator.d.ts +2 -0
- package/cache/decorators/cache-evict.decorator.js +72 -0
- package/cache/decorators/cache-put.decorator.d.ts +2 -0
- package/cache/decorators/cache-put.decorator.js +48 -0
- package/cache/decorators/cacheable.decorator.d.ts +4 -0
- package/cache/decorators/cacheable.decorator.js +68 -0
- package/cache/decorators/index.d.ts +3 -0
- package/cache/decorators/index.js +11 -0
- package/cache/dependencies/callback.dependency.d.ts +11 -0
- package/cache/dependencies/callback.dependency.js +92 -0
- package/cache/dependencies/chain.dependency.d.ts +20 -0
- package/cache/dependencies/chain.dependency.js +113 -0
- package/cache/dependencies/db.dependency.d.ts +15 -0
- package/cache/dependencies/db.dependency.js +71 -0
- package/cache/dependencies/file.dependency.d.ts +17 -0
- package/cache/dependencies/file.dependency.js +63 -0
- package/cache/dependencies/index.d.ts +6 -0
- package/cache/dependencies/index.js +22 -0
- package/cache/dependencies/tag.dependency.d.ts +16 -0
- package/cache/dependencies/tag.dependency.js +75 -0
- package/cache/dependencies/time.dependency.d.ts +19 -0
- package/cache/dependencies/time.dependency.js +71 -0
- package/cache/examples/basic-usage.d.ts +58 -0
- package/cache/examples/basic-usage.js +379 -0
- package/cache/index.d.ts +15 -0
- package/cache/index.js +44 -0
- package/cache/interfaces/cache-dependency.interface.d.ts +11 -0
- package/cache/interfaces/cache-dependency.interface.js +2 -0
- package/cache/interfaces/cache-options.interface.d.ts +32 -0
- package/cache/interfaces/cache-options.interface.js +9 -0
- package/cache/interfaces/cache-provider.interface.d.ts +28 -0
- package/cache/interfaces/cache-provider.interface.js +2 -0
- package/cache/interfaces/index.d.ts +3 -0
- package/cache/interfaces/index.js +19 -0
- package/cache/providers/base-cache.provider.d.ts +16 -0
- package/cache/providers/base-cache.provider.js +32 -0
- package/cache/providers/cls-cache.provider.d.ts +16 -0
- package/cache/providers/cls-cache.provider.js +140 -0
- package/cache/providers/index.d.ts +4 -0
- package/cache/providers/index.js +23 -0
- package/cache/providers/memory-cache.provider.d.ts +26 -0
- package/cache/providers/memory-cache.provider.js +171 -0
- package/cache/providers/redis-cache.provider.d.ts +23 -0
- package/cache/providers/redis-cache.provider.js +215 -0
- package/cache/utils/dependency-manager.util.d.ts +15 -0
- package/cache/utils/dependency-manager.util.js +141 -0
- package/cache/utils/index.d.ts +2 -0
- package/cache/utils/index.js +18 -0
- package/cache/utils/key-generator.util.d.ts +13 -0
- package/cache/utils/key-generator.util.js +74 -0
- package/common/abstract.entity.d.ts +20 -0
- package/common/abstract.entity.js +81 -0
- package/common/boilerplate.polyfill.d.ts +50 -0
- package/common/boilerplate.polyfill.js +152 -0
- package/common/dto/abstract.dto.d.ts +13 -0
- package/common/dto/abstract.dto.js +59 -0
- package/common/dto/bulk-id.dto.d.ts +3 -0
- package/common/dto/bulk-id.dto.js +27 -0
- package/common/dto/create-translation.dto.d.ts +5 -0
- package/common/dto/create-translation.dto.js +25 -0
- package/common/dto/dto-container.d.ts +9 -0
- package/common/dto/dto-container.js +59 -0
- package/common/dto/dto-decorators.d.ts +18 -0
- package/common/dto/dto-decorators.js +59 -0
- package/common/dto/dto-extensions.d.ts +12 -0
- package/common/dto/dto-extensions.js +63 -0
- package/common/dto/dto-service-accessor.d.ts +7 -0
- package/common/dto/dto-service-accessor.js +49 -0
- package/common/dto/dto-transformer.d.ts +11 -0
- package/common/dto/dto-transformer.js +49 -0
- package/common/dto/index.d.ts +12 -0
- package/common/dto/index.js +28 -0
- package/common/dto/page-meta.dto.d.ts +15 -0
- package/common/dto/page-meta.dto.js +48 -0
- package/common/dto/page-options.dto.d.ts +5 -0
- package/common/dto/page-options.dto.js +40 -0
- package/common/dto/page.dto.d.ts +11 -0
- package/common/dto/page.dto.js +53 -0
- package/common/examples/paginate-and-map.example.d.ts +14 -0
- package/common/examples/paginate-and-map.example.js +158 -0
- package/common/index.d.ts +6 -0
- package/common/index.js +22 -0
- package/common/snake-naming.strategy.d.ts +11 -0
- package/common/snake-naming.strategy.js +37 -0
- package/common/types.d.ts +9 -0
- package/common/types.js +2 -0
- package/common/utils.d.ts +3 -0
- package/common/utils.js +24 -0
- package/constants/index.d.ts +2 -0
- package/constants/index.js +18 -0
- package/constants/language-code.d.ts +5 -0
- package/constants/language-code.js +9 -0
- package/constants/order.d.ts +4 -0
- package/constants/order.js +8 -0
- package/decorators/api-page-ok-response.decorator.d.ts +5 -0
- package/decorators/api-page-ok-response.decorator.js +24 -0
- package/decorators/api-paginated-response.decorator.d.ts +2 -0
- package/decorators/api-paginated-response.decorator.js +9 -0
- package/decorators/auth-user.decorator.d.ts +1 -0
- package/decorators/auth-user.decorator.js +14 -0
- package/decorators/controller.decorator.d.ts +1 -0
- package/decorators/controller.decorator.js +10 -0
- package/decorators/examples/validation-decorators.example.d.ts +69 -0
- package/decorators/examples/validation-decorators.example.js +331 -0
- package/decorators/field.decorators.d.ts +79 -0
- package/decorators/field.decorators.js +499 -0
- package/decorators/http.decorators.d.ts +3 -0
- package/decorators/http.decorators.js +7 -0
- package/decorators/index.d.ts +14 -0
- package/decorators/index.js +30 -0
- package/decorators/operation.decorator.d.ts +1 -0
- package/decorators/operation.decorator.js +6 -0
- package/decorators/paginated-response.decorator.d.ts +11 -0
- package/decorators/paginated-response.decorator.js +60 -0
- package/decorators/property.decorators.d.ts +15 -0
- package/decorators/property.decorators.js +31 -0
- package/decorators/public-route.decorator.d.ts +3 -0
- package/decorators/public-route.decorator.js +7 -0
- package/decorators/swagger.schema.d.ts +5 -0
- package/decorators/swagger.schema.js +78 -0
- package/decorators/timestamp-column.decorator.d.ts +1 -0
- package/decorators/timestamp-column.decorator.js +27 -0
- package/decorators/transform.decorators.d.ts +8 -0
- package/decorators/transform.decorators.js +100 -0
- package/decorators/translate.decorator.d.ts +5 -0
- package/decorators/translate.decorator.js +17 -0
- package/decorators/use-dto.decorator.d.ts +4 -0
- package/decorators/use-dto.decorator.js +8 -0
- package/decorators/user-check.decorator.d.ts +6 -0
- package/decorators/user-check.decorator.js +21 -0
- package/decorators/user.decorator.d.ts +12 -0
- package/decorators/user.decorator.js +44 -0
- package/decorators/user_auth.decorator.d.ts +1 -0
- package/decorators/user_auth.decorator.js +15 -0
- package/decorators/validator.decorators.d.ts +18 -0
- package/decorators/validator.decorators.js +193 -0
- package/exceptions/file-not-image.exception.d.ts +4 -0
- package/exceptions/file-not-image.exception.js +10 -0
- package/exceptions/index.d.ts +2 -0
- package/exceptions/index.js +18 -0
- package/exceptions/page-type.exception.d.ts +4 -0
- package/exceptions/page-type.exception.js +10 -0
- package/exceptions/user-not-found.exception.d.ts +4 -0
- package/exceptions/user-not-found.exception.js +10 -0
- package/filters/bad-request.filter.d.ts +5 -0
- package/filters/bad-request.filter.js +71 -0
- package/filters/constraint-errors.d.ts +1 -0
- package/filters/constraint-errors.js +6 -0
- package/filters/index.d.ts +3 -0
- package/filters/index.js +19 -0
- package/filters/query-failed.filter.d.ts +10 -0
- package/filters/query-failed.filter.js +42 -0
- package/health-checker/health-checker.controller.d.ts +13 -0
- package/health-checker/health-checker.controller.js +69 -0
- package/health-checker/health-checker.module.d.ts +2 -0
- package/health-checker/health-checker.module.js +24 -0
- package/health-checker/index.d.ts +2 -0
- package/health-checker/index.js +18 -0
- package/helpers/common.helper.d.ts +3 -0
- package/helpers/common.helper.js +36 -0
- package/helpers/date.helper.d.ts +10 -0
- package/helpers/date.helper.js +57 -0
- package/helpers/index.d.ts +2 -0
- package/helpers/index.js +18 -0
- package/i18n/en_US/validation.json +44 -0
- package/i18n/zh_CN/validation.json +44 -0
- package/index.d.ts +18 -0
- package/index.js +3 -0
- package/interceptors/index.d.ts +2 -0
- package/interceptors/index.js +18 -0
- package/interceptors/language-interceptor.service.d.ts +6 -0
- package/interceptors/language-interceptor.service.js +29 -0
- package/interceptors/translation-interceptor.service.d.ts +5 -0
- package/interceptors/translation-interceptor.service.js +34 -0
- package/interfaces/IApiFile.d.ts +4 -0
- package/interfaces/IApiFile.js +2 -0
- package/interfaces/IFile.d.ts +8 -0
- package/interfaces/IFile.js +2 -0
- package/interfaces/ITranslationDecoratorInterface.d.ts +3 -0
- package/interfaces/ITranslationDecoratorInterface.js +2 -0
- package/interfaces/index.d.ts +3 -0
- package/interfaces/index.js +19 -0
- package/interfaces/response.d.ts +25 -0
- package/interfaces/response.js +2 -0
- package/middlewares/index.d.ts +4 -0
- package/middlewares/index.js +20 -0
- package/middlewares/omni-auth.middleware.d.ts +1 -0
- package/middlewares/omni-auth.middleware.js +13 -0
- package/middlewares/powerby.middleware.d.ts +1 -0
- package/middlewares/powerby.middleware.js +10 -0
- package/middlewares/request-id.middleware.d.ts +7 -0
- package/middlewares/request-id.middleware.js +22 -0
- package/middlewares/xml.middleware.d.ts +4 -0
- package/middlewares/xml.middleware.js +24 -0
- package/package.json +41 -116
- package/providers/context.provider.d.ts +34 -0
- package/providers/context.provider.js +80 -0
- package/providers/generator.provider.d.ts +9 -0
- package/providers/generator.provider.js +50 -0
- package/providers/index.d.ts +2 -0
- package/providers/index.js +18 -0
- package/redis-lock/examples/lock-strategy.examples.d.ts +73 -0
- package/redis-lock/examples/lock-strategy.examples.js +387 -0
- package/redis-lock/index.d.ts +4 -0
- package/redis-lock/index.js +16 -0
- package/redis-lock/redis-lock.decorator.d.ts +12 -0
- package/redis-lock/redis-lock.decorator.js +125 -0
- package/redis-lock/redis-lock.module.d.ts +23 -0
- package/redis-lock/redis-lock.module.js +117 -0
- package/redis-lock/redis-lock.service.d.ts +66 -0
- package/redis-lock/redis-lock.service.js +413 -0
- package/setup/bootstrap.setup.d.ts +2 -0
- package/setup/bootstrap.setup.js +184 -0
- package/setup/index.d.ts +4 -0
- package/setup/index.js +20 -0
- package/setup/mode.setup.d.ts +12 -0
- package/setup/mode.setup.js +60 -0
- package/setup/schedule.decorator.d.ts +23 -0
- package/setup/schedule.decorator.js +233 -0
- package/setup/worker.decorator.d.ts +14 -0
- package/setup/worker.decorator.js +130 -0
- package/shared/index.d.ts +2 -0
- package/shared/index.js +18 -0
- package/shared/serviceRegistryModule.d.ts +2 -0
- package/shared/serviceRegistryModule.js +170 -0
- package/shared/services/api-config.service.d.ts +54 -0
- package/shared/services/api-config.service.js +287 -0
- package/shared/services/generator.service.d.ts +4 -0
- package/shared/services/generator.service.js +23 -0
- package/shared/services/index.d.ts +4 -0
- package/shared/services/index.js +20 -0
- package/shared/services/translation.service.d.ts +9 -0
- package/shared/services/translation.service.js +70 -0
- package/shared/services/validator.service.d.ts +3 -0
- package/shared/services/validator.service.js +20 -0
- package/validator-json/decorators.d.ts +6 -0
- package/validator-json/decorators.js +22 -0
- package/validator-json/default.d.ts +6 -0
- package/validator-json/default.js +138 -0
- package/validator-json/defaultConverters.d.ts +8 -0
- package/validator-json/defaultConverters.js +376 -0
- package/validator-json/index.d.ts +4 -0
- package/validator-json/index.js +20 -0
- package/validator-json/options.d.ts +11 -0
- package/validator-json/options.js +10 -0
- package/validators/file-mimetype.validator.d.ts +13 -0
- package/validators/file-mimetype.validator.js +21 -0
- package/validators/index.d.ts +6 -0
- package/validators/index.js +22 -0
- package/validators/is-exists.validator.d.ts +18 -0
- package/validators/is-exists.validator.js +60 -0
- package/validators/is-unique.validator.d.ts +17 -0
- package/validators/is-unique.validator.js +91 -0
- package/validators/phone-country-code.validator.d.ts +2 -0
- package/validators/phone-country-code.validator.js +29 -0
- package/validators/same-as.validator.d.ts +2 -0
- package/validators/same-as.validator.js +24 -0
- package/validators/skip-empty.validator.d.ts +1 -0
- package/validators/skip-empty.validator.js +17 -0
- package/vault/index.d.ts +4 -0
- package/vault/index.js +20 -0
- package/vault/interfaces/vault-options.interface.d.ts +22 -0
- package/vault/interfaces/vault-options.interface.js +2 -0
- package/vault/vault-config.loader.d.ts +13 -0
- package/vault/vault-config.loader.js +246 -0
- package/vault/vault-config.service.d.ts +18 -0
- package/vault/vault-config.service.js +174 -0
- package/vault/vault.module.d.ts +2 -0
- package/vault/vault.module.js +21 -0
|
@@ -0,0 +1,25 @@
|
|
|
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);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class DtoContainer {
|
|
2
|
+
private static instance;
|
|
3
|
+
private container;
|
|
4
|
+
static getInstance(): DtoContainer;
|
|
5
|
+
static useContainer(container: any): void;
|
|
6
|
+
static get<T = any>(serviceToken: string | symbol | any): Promise<T | null>;
|
|
7
|
+
static isInitialized(): boolean;
|
|
8
|
+
static reset(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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.DtoContainer = void 0;
|
|
13
|
+
class DtoContainer {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.container = null;
|
|
16
|
+
}
|
|
17
|
+
static getInstance() {
|
|
18
|
+
if (!DtoContainer.instance) {
|
|
19
|
+
DtoContainer.instance = new DtoContainer();
|
|
20
|
+
}
|
|
21
|
+
return DtoContainer.instance;
|
|
22
|
+
}
|
|
23
|
+
static useContainer(container) {
|
|
24
|
+
DtoContainer.getInstance().container = container;
|
|
25
|
+
}
|
|
26
|
+
static get(serviceToken) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const instance = DtoContainer.getInstance();
|
|
29
|
+
if (!instance.container) {
|
|
30
|
+
console.warn('DTO Container not initialized. Please call DtoContainer.useContainer(container) in your bootstrap.');
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
if (typeof instance.container.get === 'function') {
|
|
35
|
+
return yield instance.container.get(serviceToken);
|
|
36
|
+
}
|
|
37
|
+
else if (typeof instance.container.resolve === 'function') {
|
|
38
|
+
return yield instance.container.resolve(serviceToken);
|
|
39
|
+
}
|
|
40
|
+
else if (typeof instance.container[serviceToken] === 'function') {
|
|
41
|
+
return instance.container[serviceToken];
|
|
42
|
+
}
|
|
43
|
+
console.warn(`Unable to resolve service: ${String(serviceToken)}`);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
console.warn(`Failed to resolve service: ${String(serviceToken)}`, error instanceof Error ? error.message : error);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static isInitialized() {
|
|
53
|
+
return DtoContainer.getInstance().container !== null;
|
|
54
|
+
}
|
|
55
|
+
static reset() {
|
|
56
|
+
DtoContainer.getInstance().container = null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.DtoContainer = DtoContainer;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Constructor } from '../types';
|
|
2
|
+
import { TransformFnParams } from 'class-transformer';
|
|
3
|
+
export interface ExtendedTransformFnParams extends TransformFnParams {
|
|
4
|
+
context?: any;
|
|
5
|
+
}
|
|
6
|
+
export declare const DTO_SERVICE_KEY = "dto:service-name";
|
|
7
|
+
export declare function DtoService(serviceName?: string): ClassDecorator;
|
|
8
|
+
export declare const DTO_REQUIRED_SERVICES_KEY = "dto:required-services";
|
|
9
|
+
export declare function UseServices(...serviceTokens: Array<string | Constructor<any>>): ClassDecorator;
|
|
10
|
+
export declare const DTO_ENTITY_KEY = "dto:entity";
|
|
11
|
+
export declare function Dto(entityClass: Constructor<any>): ClassDecorator;
|
|
12
|
+
export interface DtoFieldOptions {
|
|
13
|
+
source?: string;
|
|
14
|
+
transform?: (value: any) => any;
|
|
15
|
+
}
|
|
16
|
+
export declare function DtoField(source?: string, transform?: (value: any) => any): PropertyDecorator;
|
|
17
|
+
export declare function DtoField(options?: DtoFieldOptions): PropertyDecorator;
|
|
18
|
+
export declare function DtoComputed(computeFn: (entity: any, context?: any) => any): PropertyDecorator;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DTO_ENTITY_KEY = exports.DTO_REQUIRED_SERVICES_KEY = exports.DTO_SERVICE_KEY = void 0;
|
|
4
|
+
exports.DtoService = DtoService;
|
|
5
|
+
exports.UseServices = UseServices;
|
|
6
|
+
exports.Dto = Dto;
|
|
7
|
+
exports.DtoField = DtoField;
|
|
8
|
+
exports.DtoComputed = DtoComputed;
|
|
9
|
+
const common_1 = require("@nestjs/common");
|
|
10
|
+
exports.DTO_SERVICE_KEY = 'dto:service-name';
|
|
11
|
+
function DtoService(serviceName) {
|
|
12
|
+
return function (target) {
|
|
13
|
+
const name = serviceName || target.name;
|
|
14
|
+
(0, common_1.SetMetadata)(exports.DTO_SERVICE_KEY, name)(target);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
exports.DTO_REQUIRED_SERVICES_KEY = 'dto:required-services';
|
|
18
|
+
function UseServices(...serviceTokens) {
|
|
19
|
+
return function (target) {
|
|
20
|
+
const tokens = serviceTokens.map(token => {
|
|
21
|
+
if (typeof token === 'string') {
|
|
22
|
+
return token;
|
|
23
|
+
}
|
|
24
|
+
return token.name.charAt(0).toLowerCase() + token.name.slice(1);
|
|
25
|
+
});
|
|
26
|
+
(0, common_1.SetMetadata)(exports.DTO_REQUIRED_SERVICES_KEY, tokens)(target);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.DTO_ENTITY_KEY = 'dto:entity';
|
|
30
|
+
function Dto(entityClass) {
|
|
31
|
+
return function (target) {
|
|
32
|
+
(0, common_1.SetMetadata)(exports.DTO_ENTITY_KEY, entityClass)(target);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function DtoField(sourceOrOptions, transform) {
|
|
36
|
+
const options = typeof sourceOrOptions === 'string'
|
|
37
|
+
? { source: sourceOrOptions, transform }
|
|
38
|
+
: sourceOrOptions || {};
|
|
39
|
+
return function (target, propertyKey) {
|
|
40
|
+
const fields = Reflect.getMetadata('dto:fields', target.constructor) || [];
|
|
41
|
+
fields.push({
|
|
42
|
+
property: propertyKey,
|
|
43
|
+
source: options.source || propertyKey,
|
|
44
|
+
transform: options.transform,
|
|
45
|
+
});
|
|
46
|
+
Reflect.defineMetadata('dto:fields', fields, target.constructor);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function DtoComputed(computeFn) {
|
|
50
|
+
return function (target, propertyKey) {
|
|
51
|
+
const fields = Reflect.getMetadata('dto:fields', target.constructor) || [];
|
|
52
|
+
fields.push({
|
|
53
|
+
property: propertyKey,
|
|
54
|
+
computeFn,
|
|
55
|
+
isComputed: true,
|
|
56
|
+
});
|
|
57
|
+
Reflect.defineMetadata('dto:fields', fields, target.constructor);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Constructor } from '../types';
|
|
2
|
+
declare global {
|
|
3
|
+
interface Array<T> {
|
|
4
|
+
toDto<DtoType>(dtoClass: Constructor<DtoType>, context?: any): Promise<DtoType[]>;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
declare module 'typeorm' {
|
|
8
|
+
interface SelectQueryBuilder<Entity> {
|
|
9
|
+
toDtoPage<DtoType>(pageOptionsDto: any, dtoClass: Constructor<DtoType>, context?: any): Promise<any>;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export declare function transformEntityToDto<EntityType, DtoType>(entity: EntityType, dtoClass: Constructor<DtoType>, context?: any): Promise<DtoType>;
|
|
@@ -0,0 +1,63 @@
|
|
|
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.transformEntityToDto = transformEntityToDto;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const dto_transformer_1 = require("./dto-transformer");
|
|
15
|
+
Array.prototype.toDto = function (dtoClass, context) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
if (!this || this.length === 0) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
return yield dto_transformer_1.DtoTransformer.transformArray(this, dtoClass, context);
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
function transformEntityToDto(entity, dtoClass, context) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
if (!entity) {
|
|
26
|
+
throw new Error('Cannot transform null or undefined to DTO');
|
|
27
|
+
}
|
|
28
|
+
return yield dto_transformer_1.DtoTransformer.transform(entity, dtoClass, context);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
typeorm_1.SelectQueryBuilder.prototype.toDtoPage = function (pageOptionsDto, dtoClass, context) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const page = pageOptionsDto.page || 1;
|
|
34
|
+
const pageSize = pageOptionsDto.pageSize || 10;
|
|
35
|
+
const skip = (page - 1) * pageSize;
|
|
36
|
+
const totalItems = yield this.getCount();
|
|
37
|
+
const entities = yield this
|
|
38
|
+
.skip(skip)
|
|
39
|
+
.take(pageSize)
|
|
40
|
+
.getMany();
|
|
41
|
+
if (entities.length > 0) {
|
|
42
|
+
console.log('Raw entity sample:', JSON.stringify(entities[0], null, 2));
|
|
43
|
+
}
|
|
44
|
+
const data = yield entities.toDto(dtoClass, context);
|
|
45
|
+
if (data.length > 0) {
|
|
46
|
+
console.log('Converted DTO sample:', JSON.stringify(data[0], null, 2));
|
|
47
|
+
}
|
|
48
|
+
const itemCount = totalItems;
|
|
49
|
+
const pageCount = Math.ceil(itemCount / pageSize);
|
|
50
|
+
const hasPreviousPage = page > 1;
|
|
51
|
+
const hasNextPage = page < pageCount;
|
|
52
|
+
return {
|
|
53
|
+
data,
|
|
54
|
+
meta: {
|
|
55
|
+
itemCount,
|
|
56
|
+
page,
|
|
57
|
+
pageCount,
|
|
58
|
+
hasPreviousPage,
|
|
59
|
+
hasNextPage,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Constructor } from '../types';
|
|
2
|
+
export declare class DtoServiceAccessor {
|
|
3
|
+
static getService<T = any>(serviceToken: string | symbol | Constructor<any>): Promise<T | null>;
|
|
4
|
+
static getServices<T = any>(serviceTokens: Array<string | symbol | Constructor<any>>): Promise<Record<string, T>>;
|
|
5
|
+
static getServicesForDto(dtoClass: Constructor<any>): Promise<Record<string, any>>;
|
|
6
|
+
static isInitialized(): boolean;
|
|
7
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
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.DtoServiceAccessor = void 0;
|
|
13
|
+
const dto_container_1 = require("./dto-container");
|
|
14
|
+
class DtoServiceAccessor {
|
|
15
|
+
static getService(serviceToken) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
return yield dto_container_1.DtoContainer.get(serviceToken);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
static getServices(serviceTokens) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const services = {};
|
|
23
|
+
const promises = serviceTokens.map((token) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const serviceName = typeof token === 'string'
|
|
25
|
+
? token
|
|
26
|
+
: token.name || String(token);
|
|
27
|
+
const service = yield dto_container_1.DtoContainer.get(token);
|
|
28
|
+
if (service) {
|
|
29
|
+
services[serviceName] = service;
|
|
30
|
+
}
|
|
31
|
+
}));
|
|
32
|
+
yield Promise.all(promises);
|
|
33
|
+
return services;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
static getServicesForDto(dtoClass) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
const serviceTokens = Reflect.getMetadata('dto:required-services', dtoClass) || [];
|
|
39
|
+
if (serviceTokens.length === 0) {
|
|
40
|
+
return {};
|
|
41
|
+
}
|
|
42
|
+
return yield DtoServiceAccessor.getServices(serviceTokens);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
static isInitialized() {
|
|
46
|
+
return dto_container_1.DtoContainer.isInitialized();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.DtoServiceAccessor = DtoServiceAccessor;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Constructor } from '../types';
|
|
2
|
+
export interface DtoTransformContext {
|
|
3
|
+
user?: any;
|
|
4
|
+
request?: any;
|
|
5
|
+
services?: Record<string, any>;
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
8
|
+
export declare class DtoTransformer {
|
|
9
|
+
static transform<EntityType, DtoType>(entity: EntityType, dtoClass: Constructor<DtoType>, context?: DtoTransformContext): Promise<DtoType>;
|
|
10
|
+
static transformArray<EntityType, DtoType>(entities: EntityType[], dtoClass: Constructor<DtoType>, context?: DtoTransformContext): Promise<DtoType[]>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
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.DtoTransformer = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const dto_service_accessor_1 = require("./dto-service-accessor");
|
|
15
|
+
class DtoTransformer {
|
|
16
|
+
static transform(entity, dtoClass, context) {
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const services = yield dto_service_accessor_1.DtoServiceAccessor.getServicesForDto(dtoClass);
|
|
19
|
+
const options = {
|
|
20
|
+
excludeExtraneousValues: false,
|
|
21
|
+
exposeUnsetFields: true,
|
|
22
|
+
enableImplicitConversion: true,
|
|
23
|
+
enableCircularCheck: true,
|
|
24
|
+
ignoreDecorators: false,
|
|
25
|
+
context: Object.assign(Object.assign({}, context), { services }),
|
|
26
|
+
};
|
|
27
|
+
return (0, class_transformer_1.plainToInstance)(dtoClass, entity, options);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
static transformArray(entities, dtoClass, context) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
if (!entities || entities.length === 0) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
const services = yield dto_service_accessor_1.DtoServiceAccessor.getServicesForDto(dtoClass);
|
|
36
|
+
const options = {
|
|
37
|
+
excludeExtraneousValues: false,
|
|
38
|
+
exposeUnsetFields: true,
|
|
39
|
+
enableImplicitConversion: true,
|
|
40
|
+
enableCircularCheck: true,
|
|
41
|
+
ignoreDecorators: false,
|
|
42
|
+
context: Object.assign(Object.assign({}, context), { services }),
|
|
43
|
+
};
|
|
44
|
+
const transformPromises = entities.map(entity => (0, class_transformer_1.plainToInstance)(dtoClass, entity, options));
|
|
45
|
+
return Promise.all(transformPromises);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.DtoTransformer = DtoTransformer;
|
|
@@ -0,0 +1,12 @@
|
|
|
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';
|
|
7
|
+
export * from './dto-service-accessor';
|
|
8
|
+
export * from './dto-decorators';
|
|
9
|
+
export * from './dto-transformer';
|
|
10
|
+
export * from './dto-extensions';
|
|
11
|
+
export * from './dto-container';
|
|
12
|
+
import './dto-extensions';
|
|
@@ -0,0 +1,28 @@
|
|
|
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);
|
|
23
|
+
__exportStar(require("./dto-service-accessor"), exports);
|
|
24
|
+
__exportStar(require("./dto-decorators"), exports);
|
|
25
|
+
__exportStar(require("./dto-transformer"), exports);
|
|
26
|
+
__exportStar(require("./dto-extensions"), exports);
|
|
27
|
+
__exportStar(require("./dto-container"), exports);
|
|
28
|
+
require("./dto-extensions");
|
|
@@ -0,0 +1,15 @@
|
|
|
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 {};
|
|
@@ -0,0 +1,48 @@
|
|
|
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.PageMetaDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
class PageMetaDto {
|
|
15
|
+
constructor({ pageOptionsDto, itemCount }) {
|
|
16
|
+
this.page = pageOptionsDto.page;
|
|
17
|
+
this.pageSize = pageOptionsDto.pageSize;
|
|
18
|
+
this.itemCount = itemCount;
|
|
19
|
+
this.pageCount = Math.ceil(this.itemCount / this.pageSize);
|
|
20
|
+
this.hasPreviousPage = this.page > 1;
|
|
21
|
+
this.hasNextPage = this.page < this.pageCount;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.PageMetaDto = PageMetaDto;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, swagger_1.ApiProperty)(),
|
|
27
|
+
__metadata("design:type", Number)
|
|
28
|
+
], PageMetaDto.prototype, "page", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, swagger_1.ApiProperty)(),
|
|
31
|
+
__metadata("design:type", Number)
|
|
32
|
+
], PageMetaDto.prototype, "pageSize", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, swagger_1.ApiProperty)(),
|
|
35
|
+
__metadata("design:type", Number)
|
|
36
|
+
], PageMetaDto.prototype, "itemCount", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, swagger_1.ApiProperty)(),
|
|
39
|
+
__metadata("design:type", Number)
|
|
40
|
+
], PageMetaDto.prototype, "pageCount", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, swagger_1.ApiProperty)(),
|
|
43
|
+
__metadata("design:type", Boolean)
|
|
44
|
+
], PageMetaDto.prototype, "hasPreviousPage", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, swagger_1.ApiProperty)(),
|
|
47
|
+
__metadata("design:type", Boolean)
|
|
48
|
+
], PageMetaDto.prototype, "hasNextPage", void 0);
|
|
@@ -0,0 +1,40 @@
|
|
|
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.PageOptionsDto = void 0;
|
|
13
|
+
const decorators_1 = require("../../decorators");
|
|
14
|
+
class PageOptionsDto {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.page = 1;
|
|
17
|
+
this.pageSize = 10;
|
|
18
|
+
}
|
|
19
|
+
get skip() {
|
|
20
|
+
return (this.page - 1) * this.pageSize;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.PageOptionsDto = PageOptionsDto;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, decorators_1.NumberFieldOptional)({
|
|
26
|
+
minimum: 1,
|
|
27
|
+
default: 1,
|
|
28
|
+
int: true,
|
|
29
|
+
}),
|
|
30
|
+
__metadata("design:type", Number)
|
|
31
|
+
], PageOptionsDto.prototype, "page", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, decorators_1.NumberFieldOptional)({
|
|
34
|
+
minimum: 1,
|
|
35
|
+
maximum: 50,
|
|
36
|
+
default: 10,
|
|
37
|
+
int: true,
|
|
38
|
+
}),
|
|
39
|
+
__metadata("design:type", Number)
|
|
40
|
+
], PageOptionsDto.prototype, "pageSize", void 0);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PageMetaDto } from './page-meta.dto';
|
|
2
|
+
export declare class PageDto<T> {
|
|
3
|
+
readonly data: T[];
|
|
4
|
+
count: number;
|
|
5
|
+
total: number;
|
|
6
|
+
page: number;
|
|
7
|
+
pageCount: number;
|
|
8
|
+
hasPreviousPage: boolean;
|
|
9
|
+
hasNextPage: boolean;
|
|
10
|
+
constructor(data: T[], meta: PageMetaDto);
|
|
11
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
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.PageDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
class PageDto {
|
|
15
|
+
constructor(data, meta) {
|
|
16
|
+
this.data = data;
|
|
17
|
+
this.count = meta.pageSize;
|
|
18
|
+
this.pageCount = meta.pageCount;
|
|
19
|
+
this.page = meta.page;
|
|
20
|
+
this.total = meta.itemCount;
|
|
21
|
+
this.hasPreviousPage = meta.hasPreviousPage;
|
|
22
|
+
this.hasNextPage = meta.hasNextPage;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.PageDto = PageDto;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, swagger_1.ApiProperty)({ isArray: true }),
|
|
28
|
+
__metadata("design:type", Array)
|
|
29
|
+
], PageDto.prototype, "data", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, swagger_1.ApiProperty)(),
|
|
32
|
+
__metadata("design:type", Number)
|
|
33
|
+
], PageDto.prototype, "count", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, swagger_1.ApiProperty)(),
|
|
36
|
+
__metadata("design:type", Number)
|
|
37
|
+
], PageDto.prototype, "total", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, swagger_1.ApiProperty)(),
|
|
40
|
+
__metadata("design:type", Number)
|
|
41
|
+
], PageDto.prototype, "page", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, swagger_1.ApiProperty)(),
|
|
44
|
+
__metadata("design:type", Number)
|
|
45
|
+
], PageDto.prototype, "pageCount", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, swagger_1.ApiProperty)(),
|
|
48
|
+
__metadata("design:type", Boolean)
|
|
49
|
+
], PageDto.prototype, "hasPreviousPage", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, swagger_1.ApiProperty)(),
|
|
52
|
+
__metadata("design:type", Boolean)
|
|
53
|
+
], PageDto.prototype, "hasNextPage", void 0);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { PageOptionsDto } from '../dto/page-options.dto';
|
|
3
|
+
export declare function basicPaginationExample(repository: Repository<any>, pageOptions: PageOptionsDto): Promise<import("..").PageDto<import("..").AbstractDto>>;
|
|
4
|
+
export declare function syncTransformExample(repository: Repository<any>, pageOptions: PageOptionsDto): Promise<import("..").PageDto<import("..").AbstractDto>>;
|
|
5
|
+
export declare function asyncTransformExample(repository: Repository<any>, pageOptions: PageOptionsDto, externalService: any): Promise<import("..").PageDto<import("..").AbstractDto>>;
|
|
6
|
+
export declare function asyncBatchTransformExample(repository: Repository<any>, pageOptions: PageOptionsDto, batchProcessor: any): Promise<import("..").PageDto<import("..").AbstractDto>>;
|
|
7
|
+
export declare function complexAsyncTransformExample(repository: Repository<any>, pageOptions: PageOptionsDto, services: {
|
|
8
|
+
validation: any;
|
|
9
|
+
enrichment: any;
|
|
10
|
+
calculation: any;
|
|
11
|
+
}): Promise<import("..").PageDto<import("..").AbstractDto>>;
|
|
12
|
+
export declare function iterateExample(repository: Repository<any>, processor: any): Promise<void>;
|
|
13
|
+
export declare function eachBatchSingleExample(repository: Repository<any>, processor: any): Promise<void>;
|
|
14
|
+
export declare function eachBatchGroupExample(repository: Repository<any>, processor: any): Promise<void>;
|