@node-c/core 1.0.0-alpha4 → 1.0.0-alpha40
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/dist/app.js +19 -12
- package/dist/app.js.map +1 -1
- package/dist/common/configProvider/configProvider.definitions.d.ts +54 -12
- package/dist/common/configProvider/configProvider.definitions.js +9 -1
- package/dist/common/configProvider/configProvider.definitions.js.map +1 -1
- package/dist/common/configProvider/configProvider.module.js +13 -2
- package/dist/common/configProvider/configProvider.module.js.map +1 -1
- package/dist/common/configProvider/configProvider.service.js +21 -16
- package/dist/common/configProvider/configProvider.service.js.map +1 -1
- package/dist/common/definitions/common.constants.d.ts +2 -1
- package/dist/common/definitions/common.constants.js +1 -0
- package/dist/common/definitions/common.constants.js.map +1 -1
- package/dist/common/definitions/common.definitions.d.ts +3 -0
- package/dist/common/utils/getNested/getNested.interfaces.d.ts +4 -0
- package/dist/common/utils/getNested/getNested.interfaces.js +3 -0
- package/dist/common/utils/getNested/getNested.interfaces.js.map +1 -0
- package/dist/common/utils/getNested/getNested.method.d.ts +2 -0
- package/dist/common/utils/getNested/getNested.method.js +76 -0
- package/dist/common/utils/getNested/getNested.method.js.map +1 -0
- package/dist/common/utils/getNested/index.d.ts +2 -0
- package/dist/common/utils/getNested/index.js +19 -0
- package/dist/common/utils/getNested/index.js.map +1 -0
- package/dist/common/utils/index.d.ts +2 -1
- package/dist/common/utils/index.js +2 -1
- package/dist/common/utils/index.js.map +1 -1
- package/dist/common/utils/loadDynamicModules/index.d.ts +1 -0
- package/dist/common/utils/loadDynamicModules/index.js +18 -0
- package/dist/common/utils/loadDynamicModules/index.js.map +1 -0
- package/dist/common/utils/{utils.loadDynamicModules.d.ts → loadDynamicModules/utils.loadDynamicModules.d.ts} +5 -2
- package/dist/common/utils/{utils.loadDynamicModules.js → loadDynamicModules/utils.loadDynamicModules.js} +6 -2
- package/dist/common/utils/loadDynamicModules/utils.loadDynamicModules.js.map +1 -0
- package/dist/domain/entityService/domain.entity.service.d.ts +7 -7
- package/dist/domain/entityService/domain.entity.service.definitions.d.ts +15 -6
- package/dist/domain/entityService/domain.entity.service.definitions.js.map +1 -1
- package/dist/domain/entityService/domain.entity.service.js +63 -26
- package/dist/domain/entityService/domain.entity.service.js.map +1 -1
- package/dist/persistance/entityService/persistance.entity.service.d.ts +16 -10
- package/dist/persistance/entityService/persistance.entity.service.definitions.d.ts +52 -3
- package/dist/persistance/entityService/persistance.entity.service.definitions.js +11 -1
- package/dist/persistance/entityService/persistance.entity.service.definitions.js.map +1 -1
- package/dist/persistance/entityService/persistance.entity.service.js +37 -5
- package/dist/persistance/entityService/persistance.entity.service.js.map +1 -1
- package/package.json +5 -3
- package/dist/common/utils/utils.loadDynamicModules.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,uDAAqC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './utils.loadDynamicModules';
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./utils.loadDynamicModules"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/utils/loadDynamicModules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { DynamicModule, Provider } from '@nestjs/common';
|
|
2
|
-
import { GenericObject } from '
|
|
2
|
+
import { GenericObject } from '../../definitions';
|
|
3
3
|
export type ProviderWithInjectionToken = Provider & {
|
|
4
4
|
injectionToken?: string;
|
|
5
5
|
};
|
|
6
|
-
export declare const loadDynamicModules: (folderData: GenericObject<unknown
|
|
6
|
+
export declare const loadDynamicModules: (folderData: GenericObject<unknown>, options?: {
|
|
7
|
+
moduleRegisterOptions?: unknown;
|
|
8
|
+
registerOptionsPerModule?: GenericObject;
|
|
9
|
+
}) => {
|
|
7
10
|
controllers?: Provider[];
|
|
8
11
|
entities?: unknown[];
|
|
9
12
|
modules?: DynamicModule[];
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.loadDynamicModules = void 0;
|
|
4
|
-
const loadDynamicModules = (folderData) => {
|
|
4
|
+
const loadDynamicModules = (folderData, options) => {
|
|
5
|
+
const { moduleRegisterOptions, registerOptionsPerModule } = options || {};
|
|
5
6
|
const controllers = [];
|
|
6
7
|
const entities = [];
|
|
7
8
|
const modules = [];
|
|
@@ -27,7 +28,10 @@ const loadDynamicModules = (folderData) => {
|
|
|
27
28
|
continue;
|
|
28
29
|
}
|
|
29
30
|
if (key.match(/[mM]odule$/)) {
|
|
30
|
-
|
|
31
|
+
const moduleClass = folderData[actualKey];
|
|
32
|
+
modules.push(moduleClass.register
|
|
33
|
+
? moduleClass.register((registerOptionsPerModule === null || registerOptionsPerModule === void 0 ? void 0 : registerOptionsPerModule[key]) || moduleRegisterOptions)
|
|
34
|
+
: moduleClass);
|
|
31
35
|
continue;
|
|
32
36
|
}
|
|
33
37
|
if (key.match(/[sS]ervice$/)) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.loadDynamicModules.js","sourceRoot":"","sources":["../../../../src/common/utils/loadDynamicModules/utils.loadDynamicModules.ts"],"names":[],"mappings":";;;AAQO,MAAM,kBAAkB,GAAG,CAChC,UAAkC,EAClC,OAAuF,EACe,EAAE;IACxG,MAAM,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC1E,MAAM,WAAW,GAAe,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,GAA8B,CAAC;QACjD,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAA+B,CAAC;YAC3E,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE,cAAc,CAAC,cAAc;oBACtC,QAAQ,EAAE,cAA2C;iBACtD,CAAC,CAAC;YAEL,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAEvC,CAAC;YACF,OAAO,CAAC,IAAI,CACV,WAAW,CAAC,QAAQ;gBAClB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAG,GAAG,CAAC,KAAI,qBAAqB,CAAC;gBAChF,CAAC,CAAC,WAAW,CAChB,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAA+B,CAAC;YAC3E,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE,cAAc,CAAC,cAAc;oBACtC,QAAQ,EAAE,cAA2C;iBACtD,CAAC,CAAC;YAEL,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACzD,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAChD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC7C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACjD,CAAC;AACJ,CAAC,CAAC;AA5DW,QAAA,kBAAkB,sBA4D7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DomainBulkCreateOptions, DomainBulkCreateResult, DomainCreateOptions, DomainCreateResult, DomainDeleteOptions, DomainDeleteResult, DomainEntityServiceDefaultData, DomainFindOneOptions, DomainFindOneResult, DomainFindOptions, DomainFindResult, DomainPersistanceEntityServiceType, DomainRunMethodInAdditionalServicesOptions, DomainUpdateOptions, DomainUpdateResult } from './domain.entity.service.definitions';
|
|
1
|
+
import { DomainBulkCreateOptions, DomainBulkCreatePrivateOptions, DomainBulkCreateResult, DomainCreateOptions, DomainCreatePrivateOptions, DomainCreateResult, DomainDeleteOptions, DomainDeletePrivateOptions, DomainDeleteResult, DomainEntityServiceDefaultData, DomainFindOneOptions, DomainFindOnePrivateOptions, DomainFindOneResult, DomainFindOptions, DomainFindPrivateOptions, DomainFindResult, DomainPersistanceEntityServiceType, DomainRunMethodInAdditionalServicesOptions, DomainUpdateOptions, DomainUpdatePrivateOptions, DomainUpdateResult } from './domain.entity.service.definitions';
|
|
2
2
|
import { GenericObject } from '../../common/definitions';
|
|
3
3
|
import { PersistanceEntityService } from '../../persistance/entityService';
|
|
4
4
|
export declare class DomainEntityService<Entity, EntityService extends PersistanceEntityService<Entity>, Data extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>, AdditionalEntityServices extends Record<string, PersistanceEntityService<Partial<Entity>>> | undefined = undefined> {
|
|
@@ -6,12 +6,12 @@ export declare class DomainEntityService<Entity, EntityService extends Persistan
|
|
|
6
6
|
protected defaultMethods: string[];
|
|
7
7
|
protected additionalPersistanceEntityServices?: AdditionalEntityServices | undefined;
|
|
8
8
|
constructor(persistanceEntityService: EntityService, defaultMethods?: string[], additionalPersistanceEntityServices?: AdditionalEntityServices | undefined);
|
|
9
|
-
bulkCreate(data: Data['BulkCreate'], options?: DomainBulkCreateOptions, privateOptions?:
|
|
10
|
-
create(data: Data['Create'], options?: DomainCreateOptions, privateOptions?:
|
|
11
|
-
delete(options: DomainDeleteOptions, privateOptions?:
|
|
12
|
-
find(options: DomainFindOptions, privateOptions?:
|
|
13
|
-
findOne(options: DomainFindOneOptions, privateOptions?:
|
|
9
|
+
bulkCreate(data: Data['BulkCreate'], options?: DomainBulkCreateOptions, privateOptions?: DomainBulkCreatePrivateOptions): Promise<DomainBulkCreateResult<Entity>>;
|
|
10
|
+
create(data: Data['Create'], options?: DomainCreateOptions, privateOptions?: DomainCreatePrivateOptions): Promise<DomainCreateResult<Entity>>;
|
|
11
|
+
delete(options: DomainDeleteOptions, privateOptions?: DomainDeletePrivateOptions): Promise<DomainDeleteResult<Entity>>;
|
|
12
|
+
find(options: DomainFindOptions, privateOptions?: DomainFindOnePrivateOptions): Promise<DomainFindResult<Entity>>;
|
|
13
|
+
findOne(options: DomainFindOneOptions, privateOptions?: DomainFindPrivateOptions): Promise<DomainFindOneResult<Entity>>;
|
|
14
14
|
protected getPersistanceService(serviceName: DomainPersistanceEntityServiceType.Main | string): PersistanceEntityService<Entity>;
|
|
15
15
|
protected runMethodInAdditionalServices<ServiceReturnData>(serviceNames: string[], options: DomainRunMethodInAdditionalServicesOptions<unknown>): Promise<GenericObject<ServiceReturnData> | undefined>;
|
|
16
|
-
update(data: Data['Update'], options: DomainUpdateOptions, privateOptions?:
|
|
16
|
+
update(data: Data['Update'], options: DomainUpdateOptions, privateOptions?: DomainUpdatePrivateOptions): Promise<DomainUpdateResult<Entity>>;
|
|
17
17
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { GenericObject } from '../../common/definitions';
|
|
2
|
-
import { PersistanceDeleteOptions, PersistanceDeleteResult, PersistanceFindOneOptions, PersistanceFindOptions, PersistanceFindResults, PersistanceUpdateOptions, PersistanceUpdateResult } from '../../persistance/entityService';
|
|
2
|
+
import { PersistanceBulkCreatePrivateOptions, PersistanceCreatePrivateOptions, PersistanceDeleteOptions, PersistanceDeletePrivateOptions, PersistanceDeleteResult, PersistanceFindOneOptions, PersistanceFindOnePrivateOptions, PersistanceFindOptions, PersistanceFindPrivateOptions, PersistanceFindResults, PersistanceUpdateOptions, PersistanceUpdatePrivateOptions, PersistanceUpdateResult } from '../../persistance/entityService';
|
|
3
3
|
export interface DomainBaseAdditionalServiceOptionsOverrides {
|
|
4
|
-
|
|
4
|
+
filterByFirstServiceResultFields?: GenericObject<string>;
|
|
5
|
+
returnData?: boolean;
|
|
6
|
+
runOnNoFirstServiceResultOnly?: boolean | string;
|
|
5
7
|
}
|
|
6
8
|
export type DomainBaseOptions<Options> = Options & DomainBaseOptionsForAdditionalServices<Options>;
|
|
7
9
|
export interface DomainBaseOptionsForAdditionalServices<Options> {
|
|
@@ -10,32 +12,37 @@ export interface DomainBaseOptionsForAdditionalServices<Options> {
|
|
|
10
12
|
}
|
|
11
13
|
export type DomainBaseOptionsForAdditionalServicesFull<Options extends object | undefined = undefined, SaveAdditionalResultsOptions extends object | undefined = undefined> = DomainBaseOptionsForAdditionalServices<Options> & DomainBaseOptionsWithSearchPersistance<SaveAdditionalResultsOptions>;
|
|
12
14
|
export interface DomainBaseOptionsWithSearchPersistance<SaveAdditionalResultsOptions extends object | undefined = undefined> {
|
|
13
|
-
|
|
15
|
+
saveAdditionalResultsInFirstService?: {
|
|
14
16
|
saveOptions?: SaveAdditionalResultsOptions;
|
|
15
17
|
serviceName: string;
|
|
16
|
-
|
|
18
|
+
useResultsForFirstService?: boolean;
|
|
17
19
|
};
|
|
18
20
|
}
|
|
19
21
|
export interface DomainBaseResult<Result> {
|
|
20
22
|
result: Result;
|
|
21
23
|
resultsByService?: GenericObject<Result>;
|
|
22
24
|
}
|
|
25
|
+
export type DomainBulkCreatePrivateOptions = PersistanceBulkCreatePrivateOptions;
|
|
23
26
|
export type DomainBulkCreateData<Entity> = Partial<Entity>[];
|
|
24
27
|
export type DomainBulkCreateOptions<Options = object> = DomainBaseOptions<Options>;
|
|
25
28
|
export type DomainBulkCreateResult<Entity> = DomainBaseResult<Entity[]>;
|
|
26
29
|
export type DomainCreateData<Entity> = Partial<Entity>;
|
|
27
30
|
export type DomainCreateOptions<Options = object> = DomainBaseOptions<Options>;
|
|
31
|
+
export type DomainCreatePrivateOptions = PersistanceCreatePrivateOptions;
|
|
28
32
|
export type DomainCreateResult<Entity> = DomainBaseResult<Entity>;
|
|
29
33
|
export type DomainDeleteOptions<Options = object> = Options & DomainBaseOptions<PersistanceDeleteOptions>;
|
|
30
|
-
export type
|
|
34
|
+
export type DomainDeletePrivateOptions = PersistanceDeletePrivateOptions;
|
|
35
|
+
export type DomainDeleteResult<Entity> = DomainBaseResult<PersistanceDeleteResult<Entity>>;
|
|
31
36
|
export interface DomainEntityServiceDefaultData<Entity> {
|
|
32
37
|
BulkCreate: DomainBulkCreateData<Entity>;
|
|
33
38
|
Create: DomainCreateData<Entity>;
|
|
34
39
|
Update: DomainUpdateData<Entity>;
|
|
35
40
|
}
|
|
36
41
|
export type DomainFindOneOptions<Options = object> = Options & DomainBaseOptions<PersistanceFindOneOptions> & DomainBaseOptionsWithSearchPersistance<DomainCreateOptions>;
|
|
42
|
+
export type DomainFindOnePrivateOptions = PersistanceFindOnePrivateOptions;
|
|
37
43
|
export type DomainFindOneResult<Entity> = DomainBaseResult<Entity | null>;
|
|
38
44
|
export type DomainFindOptions<Options = object> = Options & DomainBaseOptions<PersistanceFindOptions> & DomainBaseOptionsWithSearchPersistance<DomainBulkCreateOptions>;
|
|
45
|
+
export type DomainFindPrivateOptions = PersistanceFindPrivateOptions;
|
|
39
46
|
export type DomainFindResult<Entity> = DomainBaseResult<PersistanceFindResults<Entity>>;
|
|
40
47
|
export declare enum DomainMethod {
|
|
41
48
|
BulkCreate = "bulkCreate",
|
|
@@ -52,7 +59,8 @@ export declare enum DomainPersistanceEntityServiceType {
|
|
|
52
59
|
}
|
|
53
60
|
export type DomainPersistanceServicesKey = DomainPersistanceEntityServiceType | string;
|
|
54
61
|
export type DomainRunMethodInAdditionalServicesOptions<Options> = {
|
|
55
|
-
|
|
62
|
+
firstServiceResult?: unknown;
|
|
63
|
+
hasFirstServiceResult: boolean;
|
|
56
64
|
methodArgs?: unknown[];
|
|
57
65
|
methodName: string;
|
|
58
66
|
optionsArgIndex?: number;
|
|
@@ -60,4 +68,5 @@ export type DomainRunMethodInAdditionalServicesOptions<Options> = {
|
|
|
60
68
|
};
|
|
61
69
|
export type DomainUpdateData<Entity> = Partial<Entity>;
|
|
62
70
|
export type DomainUpdateOptions<Options = object> = Options & DomainBaseOptions<PersistanceUpdateOptions>;
|
|
71
|
+
export type DomainUpdatePrivateOptions = PersistanceUpdatePrivateOptions;
|
|
63
72
|
export type DomainUpdateResult<Entity> = DomainBaseResult<PersistanceUpdateResult<Entity>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.entity.service.definitions.js","sourceRoot":"","sources":["../../../src/domain/entityService/domain.entity.service.definitions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"domain.entity.service.definitions.js","sourceRoot":"","sources":["../../../src/domain/entityService/domain.entity.service.definitions.ts"],"names":[],"mappings":";;;AAgGA,IAAY,YAaX;AAbD,WAAY,YAAY;IAEtB,yCAAyB,CAAA;IAEzB,iCAAiB,CAAA;IAEjB,iCAAiB,CAAA;IAEjB,6BAAa,CAAA;IAEb,mCAAmB,CAAA;IAEnB,iCAAiB,CAAA;AACnB,CAAC,EAbW,YAAY,4BAAZ,YAAY,QAavB;AAEY,QAAA,qCAAqC,GAAG;IACnD,YAAY,CAAC,UAAU;IACvB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,IAAI;IACjB,YAAY,CAAC,OAAO;IACpB,YAAY,CAAC,MAAM;CACpB,CAAC;AAEF,IAAY,kCAKX;AALD,WAAY,kCAAkC;IAE5C,iDAAW,CAAA;IAEX,mDAAa,CAAA;AACf,CAAC,EALW,kCAAkC,kDAAlC,kCAAkC,QAK7C"}
|
|
@@ -25,6 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.DomainEntityService = void 0;
|
|
27
27
|
const immutable_1 = __importDefault(require("immutable"));
|
|
28
|
+
const ramda_1 = require("ramda");
|
|
28
29
|
const domain_entity_service_definitions_1 = require("./domain.entity.service.definitions");
|
|
29
30
|
const definitions_1 = require("../../common/definitions");
|
|
30
31
|
class DomainEntityService {
|
|
@@ -45,7 +46,8 @@ class DomainEntityService {
|
|
|
45
46
|
return {
|
|
46
47
|
result,
|
|
47
48
|
resultsByService: yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
48
|
-
|
|
49
|
+
firstServiceResult: result,
|
|
50
|
+
hasFirstServiceResult: result.length > 0,
|
|
49
51
|
methodArgs: [result, privateOptions],
|
|
50
52
|
methodName: 'bulkCreate',
|
|
51
53
|
optionsArgIndex: 1,
|
|
@@ -66,7 +68,8 @@ class DomainEntityService {
|
|
|
66
68
|
return {
|
|
67
69
|
result,
|
|
68
70
|
resultsByService: yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
69
|
-
|
|
71
|
+
firstServiceResult: result,
|
|
72
|
+
hasFirstServiceResult: typeof result !== 'undefined' && result !== null,
|
|
70
73
|
methodArgs: [result, privateOptions],
|
|
71
74
|
methodName: 'create',
|
|
72
75
|
optionsArgIndex: 1,
|
|
@@ -87,7 +90,8 @@ class DomainEntityService {
|
|
|
87
90
|
return {
|
|
88
91
|
result,
|
|
89
92
|
resultsByService: yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
90
|
-
|
|
93
|
+
firstServiceResult: result,
|
|
94
|
+
hasFirstServiceResult: !!result.count,
|
|
91
95
|
methodArgs: [otherOptions, privateOptions],
|
|
92
96
|
methodName: 'delete',
|
|
93
97
|
optionsArgIndex: 0,
|
|
@@ -98,27 +102,28 @@ class DomainEntityService {
|
|
|
98
102
|
}
|
|
99
103
|
find(options, privateOptions) {
|
|
100
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
var _a;
|
|
105
|
+
var _a, _b;
|
|
102
106
|
if (!((_a = this.defaultMethods) === null || _a === void 0 ? void 0 : _a.includes(domain_entity_service_definitions_1.DomainMethod.Find))) {
|
|
103
107
|
throw new definitions_1.ApplicationError(`Method find not implemented for class ${typeof this}.`);
|
|
104
108
|
}
|
|
105
|
-
const
|
|
109
|
+
const _c = options || {}, { optionsOverridesByService, persistanceServices = [domain_entity_service_definitions_1.DomainPersistanceEntityServiceType.Main], saveAdditionalResultsInFirstService } = _c, otherOptions = __rest(_c, ["optionsOverridesByService", "persistanceServices", "saveAdditionalResultsInFirstService"]);
|
|
106
110
|
const [firstServiceName, ...otherServiceNames] = persistanceServices;
|
|
107
111
|
let result = yield this.getPersistanceService(firstServiceName).find(otherOptions, privateOptions);
|
|
108
|
-
const
|
|
112
|
+
const hasFirstServiceResult = result.items.length > 0;
|
|
109
113
|
const resultsByService = yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
110
|
-
|
|
114
|
+
firstServiceResult: result,
|
|
115
|
+
hasFirstServiceResult,
|
|
111
116
|
methodArgs: [otherOptions, privateOptions],
|
|
112
117
|
methodName: 'find',
|
|
113
118
|
optionsArgIndex: 0,
|
|
114
119
|
optionsOverridesByService
|
|
115
120
|
});
|
|
116
|
-
if (
|
|
117
|
-
const { saveOptions, serviceName,
|
|
121
|
+
if (saveAdditionalResultsInFirstService && resultsByService) {
|
|
122
|
+
const { saveOptions, serviceName, useResultsForFirstService } = saveAdditionalResultsInFirstService;
|
|
118
123
|
const dataFromAdditionalService = resultsByService[serviceName];
|
|
119
|
-
if (dataFromAdditionalService.items.length) {
|
|
124
|
+
if ((_b = dataFromAdditionalService === null || dataFromAdditionalService === void 0 ? void 0 : dataFromAdditionalService.items) === null || _b === void 0 ? void 0 : _b.length) {
|
|
120
125
|
yield this.persistanceEntityService.bulkCreate(dataFromAdditionalService.items, saveOptions);
|
|
121
|
-
if (
|
|
126
|
+
if (useResultsForFirstService && !hasFirstServiceResult) {
|
|
122
127
|
result = dataFromAdditionalService;
|
|
123
128
|
}
|
|
124
129
|
}
|
|
@@ -135,23 +140,24 @@ class DomainEntityService {
|
|
|
135
140
|
if (!((_a = this.defaultMethods) === null || _a === void 0 ? void 0 : _a.includes(domain_entity_service_definitions_1.DomainMethod.FindOne))) {
|
|
136
141
|
throw new definitions_1.ApplicationError(`Method findOne not implemented for class ${typeof this}.`);
|
|
137
142
|
}
|
|
138
|
-
const _b = options || {}, { optionsOverridesByService, persistanceServices = [domain_entity_service_definitions_1.DomainPersistanceEntityServiceType.Main],
|
|
143
|
+
const _b = options || {}, { optionsOverridesByService, persistanceServices = [domain_entity_service_definitions_1.DomainPersistanceEntityServiceType.Main], saveAdditionalResultsInFirstService } = _b, otherOptions = __rest(_b, ["optionsOverridesByService", "persistanceServices", "saveAdditionalResultsInFirstService"]);
|
|
139
144
|
const [firstServiceName, ...otherServiceNames] = persistanceServices;
|
|
140
145
|
let result = yield this.getPersistanceService(firstServiceName).findOne(otherOptions, privateOptions);
|
|
141
|
-
const
|
|
146
|
+
const hasFirstServiceResult = typeof result !== 'undefined' && result !== null;
|
|
142
147
|
const resultsByService = yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
143
|
-
|
|
148
|
+
firstServiceResult: result,
|
|
149
|
+
hasFirstServiceResult,
|
|
144
150
|
methodArgs: [otherOptions, privateOptions],
|
|
145
151
|
methodName: 'findOne',
|
|
146
152
|
optionsArgIndex: 0,
|
|
147
153
|
optionsOverridesByService
|
|
148
154
|
});
|
|
149
|
-
if (
|
|
150
|
-
const { saveOptions, serviceName,
|
|
155
|
+
if (saveAdditionalResultsInFirstService && resultsByService) {
|
|
156
|
+
const { saveOptions, serviceName, useResultsForFirstService } = saveAdditionalResultsInFirstService;
|
|
151
157
|
const dataFromAdditionalService = resultsByService[serviceName];
|
|
152
158
|
if (dataFromAdditionalService) {
|
|
153
159
|
yield this.persistanceEntityService.create(dataFromAdditionalService, saveOptions);
|
|
154
|
-
if (
|
|
160
|
+
if (useResultsForFirstService && !hasFirstServiceResult) {
|
|
155
161
|
result = dataFromAdditionalService;
|
|
156
162
|
}
|
|
157
163
|
}
|
|
@@ -169,7 +175,7 @@ class DomainEntityService {
|
|
|
169
175
|
}
|
|
170
176
|
const service = (_a = this.additionalPersistanceEntityServices) === null || _a === void 0 ? void 0 : _a[serviceName];
|
|
171
177
|
if (!service) {
|
|
172
|
-
throw new definitions_1.ApplicationError(`PersistanceEntityService ${serviceName} does not exist for DomainEntityService ${this.persistanceEntityService.getEntityName()}.`);
|
|
178
|
+
throw new definitions_1.ApplicationError(`PersistanceEntityService ${serviceName} does not exist for DomainEntityService ${this.persistanceEntityService.getEntityName(true) || '(no entity name)'}.`);
|
|
173
179
|
}
|
|
174
180
|
return service;
|
|
175
181
|
}
|
|
@@ -178,24 +184,25 @@ class DomainEntityService {
|
|
|
178
184
|
if (!serviceNames.length) {
|
|
179
185
|
return undefined;
|
|
180
186
|
}
|
|
181
|
-
const {
|
|
187
|
+
const { firstServiceResult, hasFirstServiceResult, methodArgs = [], methodName, optionsArgIndex, optionsOverridesByService = {} } = options;
|
|
182
188
|
const returnDataByService = {};
|
|
183
189
|
if (!this.additionalPersistanceEntityServices) {
|
|
184
|
-
throw new definitions_1.ApplicationError(`No additional PersistanceEntityServices exist for DomainEntityService ${this.persistanceEntityService.getEntityName()}.`);
|
|
190
|
+
throw new definitions_1.ApplicationError(`No additional PersistanceEntityServices exist for DomainEntityService ${this.persistanceEntityService.getEntityName(true) || '(no entity name)'}.`);
|
|
185
191
|
}
|
|
186
192
|
if (Object.keys(optionsOverridesByService).length &&
|
|
187
193
|
(typeof optionsArgIndex === 'undefined' || optionsArgIndex < 0 || optionsArgIndex > methodArgs.length - 1)) {
|
|
188
|
-
throw new definitions_1.ApplicationError(`Invalid optionsArgIndex value ${optionsArgIndex} provided for DomainEntityService ${this.persistanceEntityService.getEntityName()}.}.`);
|
|
194
|
+
throw new definitions_1.ApplicationError(`Invalid optionsArgIndex value ${optionsArgIndex} provided for DomainEntityService ${this.persistanceEntityService.getEntityName(true) || '(no entity name)'}.}.`);
|
|
189
195
|
}
|
|
190
196
|
for (const i in serviceNames) {
|
|
191
197
|
const serviceName = serviceNames[i];
|
|
192
|
-
const service = this.
|
|
198
|
+
const service = this.getPersistanceService(serviceName);
|
|
193
199
|
if (!service) {
|
|
194
|
-
throw new definitions_1.ApplicationError(`PersistanceEntityService ${serviceName} does not exist for DomainEntityService ${this.persistanceEntityService.getEntityName()}.`);
|
|
200
|
+
throw new definitions_1.ApplicationError(`PersistanceEntityService ${serviceName} does not exist for DomainEntityService ${this.persistanceEntityService.getEntityName(true) || '(no entity name)'}.`);
|
|
195
201
|
}
|
|
196
202
|
const serviceMethodOptionsOverrides = optionsOverridesByService[serviceName] || {};
|
|
197
|
-
const {
|
|
198
|
-
if (
|
|
203
|
+
const { filterByFirstServiceResultFields, runOnNoFirstServiceResultOnly = true } = serviceMethodOptionsOverrides, actualMethodOptionsOverrides = __rest(serviceMethodOptionsOverrides, ["filterByFirstServiceResultFields", "runOnNoFirstServiceResultOnly"]);
|
|
204
|
+
if ((runOnNoFirstServiceResultOnly === true || runOnNoFirstServiceResultOnly === 'true') &&
|
|
205
|
+
hasFirstServiceResult) {
|
|
199
206
|
continue;
|
|
200
207
|
}
|
|
201
208
|
const serviceMethodArgs = immutable_1.default.fromJS(methodArgs).toJS();
|
|
@@ -210,6 +217,35 @@ class DomainEntityService {
|
|
|
210
217
|
else {
|
|
211
218
|
serviceMethodArgs[optionsArgIndex] = Object.assign(Object.assign({}, serviceMethodArgs[optionsArgIndex]), actualMethodOptionsOverrides);
|
|
212
219
|
}
|
|
220
|
+
if (filterByFirstServiceResultFields && Object.keys(filterByFirstServiceResultFields).length) {
|
|
221
|
+
if (!hasFirstServiceResult) {
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
const filters = {};
|
|
225
|
+
const resultItems = firstServiceResult.items || [
|
|
226
|
+
firstServiceResult
|
|
227
|
+
];
|
|
228
|
+
resultItems.forEach(resultItem => {
|
|
229
|
+
if (!resultItem) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
for (const sourceFieldName in filterByFirstServiceResultFields) {
|
|
233
|
+
const fieldValue = resultItem[sourceFieldName];
|
|
234
|
+
const targetFieldName = filterByFirstServiceResultFields[sourceFieldName];
|
|
235
|
+
if (typeof fieldValue === 'undefined') {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (!filters[targetFieldName]) {
|
|
239
|
+
filters[targetFieldName] = [];
|
|
240
|
+
}
|
|
241
|
+
filters[targetFieldName].push(fieldValue);
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
if (Object.keys(filters).length) {
|
|
245
|
+
const serviceMethodOptions = serviceMethodArgs[optionsArgIndex];
|
|
246
|
+
serviceMethodArgs[optionsArgIndex] = Object.assign(Object.assign({}, serviceMethodOptions), { filters: Object.assign(Object.assign({}, (0, ramda_1.omit)(['page', 'perPage'], serviceMethodOptions.filters || {})), filters), findAll: true });
|
|
247
|
+
}
|
|
248
|
+
}
|
|
213
249
|
returnDataByService[serviceName] = (yield service[methodName].apply(service, serviceMethodArgs));
|
|
214
250
|
}
|
|
215
251
|
return returnDataByService;
|
|
@@ -227,7 +263,8 @@ class DomainEntityService {
|
|
|
227
263
|
return {
|
|
228
264
|
result,
|
|
229
265
|
resultsByService: yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
230
|
-
|
|
266
|
+
firstServiceResult: result,
|
|
267
|
+
hasFirstServiceResult: !!result.count,
|
|
231
268
|
methodArgs: [data, otherOptions, privateOptions],
|
|
232
269
|
methodName: 'update',
|
|
233
270
|
optionsArgIndex: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.entity.service.js","sourceRoot":"","sources":["../../../src/domain/entityService/domain.entity.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAkC;
|
|
1
|
+
{"version":3,"file":"domain.entity.service.js","sourceRoot":"","sources":["../../../src/domain/entityService/domain.entity.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { PersistanceDeleteOptions, PersistanceDeleteResult, PersistanceFindOneOptions, PersistanceFindOptions, PersistanceFindResults, PersistanceUpdateOptions, PersistanceUpdateResult } from './persistance.entity.service.definitions';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { PersistanceBulkCreatePrivateOptions, PersistanceCountPrivateOptions, PersistanceCreatePrivateOptions, PersistanceDeleteOptions, PersistanceDeletePrivateOptions, PersistanceDeleteResult, PersistanceFindOneOptions, PersistanceFindOnePrivateOptions, PersistanceFindOptions, PersistanceFindPrivateOptions, PersistanceFindResults, PersistanceUpdateOptions, PersistanceUpdatePrivateOptions, PersistanceUpdateResult, ProcessObjectAllowedFieldsOptions } from './persistance.entity.service.definitions';
|
|
2
|
+
import { AppConfigCommonPersistanceEntityServiceSettings, ConfigProviderService } from '../../common/configProvider';
|
|
3
|
+
export declare abstract class PersistanceEntityService<Entity> {
|
|
4
|
+
protected configProvider: ConfigProviderService;
|
|
5
|
+
protected persistanceModuleName: string;
|
|
6
|
+
protected settings: AppConfigCommonPersistanceEntityServiceSettings;
|
|
7
|
+
constructor(configProvider: ConfigProviderService, persistanceModuleName: string);
|
|
8
|
+
bulkCreate(_data: Partial<Entity>[], _options?: unknown, _privateOptions?: PersistanceBulkCreatePrivateOptions): Promise<Entity[]>;
|
|
9
|
+
count(_options: PersistanceFindOptions, _privateOptions?: PersistanceCountPrivateOptions): Promise<number | undefined>;
|
|
10
|
+
create(_data: Partial<Entity>, _options?: unknown, _privateOptions?: PersistanceCreatePrivateOptions): Promise<Entity>;
|
|
11
|
+
delete(_options: PersistanceDeleteOptions, _privateOptions?: PersistanceDeletePrivateOptions): Promise<PersistanceDeleteResult<Entity>>;
|
|
12
|
+
find(_options: PersistanceFindOptions, _privateOptions?: PersistanceFindPrivateOptions): Promise<PersistanceFindResults<Entity>>;
|
|
13
|
+
findOne(_options: PersistanceFindOneOptions, _privateOptions?: PersistanceFindOnePrivateOptions): Promise<Entity | null>;
|
|
14
|
+
getEntityName(noError?: boolean): string | null;
|
|
15
|
+
protected processObjectAllowedFields<Data = Partial<Entity>>(data: Data | Data[], options: ProcessObjectAllowedFieldsOptions): Promise<Data | Data[]>;
|
|
16
|
+
update(_data: Partial<Entity>, _options: PersistanceUpdateOptions, _privateOptions?: PersistanceUpdatePrivateOptions): Promise<PersistanceUpdateResult<Entity>>;
|
|
11
17
|
}
|
|
@@ -1,44 +1,76 @@
|
|
|
1
1
|
import { GenericObject } from '../../common/definitions';
|
|
2
|
+
export interface PersistanceBulkCreatePrivateOptions extends GenericObject {
|
|
3
|
+
processInputAllowedFieldsEnabled?: boolean;
|
|
4
|
+
}
|
|
2
5
|
export interface PersistanceCountOptions {
|
|
3
6
|
filters?: GenericObject;
|
|
4
7
|
findAll?: boolean;
|
|
5
8
|
withDeleted?: boolean;
|
|
6
9
|
}
|
|
10
|
+
export interface PersistanceCountPrivateOptions extends GenericObject {
|
|
11
|
+
allowCountWithoutFilters?: boolean;
|
|
12
|
+
processFiltersAllowedFieldsEnabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface PersistanceCreatePrivateOptions {
|
|
15
|
+
processInputAllowedFieldsEnabled?: boolean;
|
|
16
|
+
}
|
|
7
17
|
export interface PersistanceDeleteOptions {
|
|
8
18
|
filters: GenericObject;
|
|
19
|
+
returnOriginalItems?: boolean;
|
|
9
20
|
softDelete?: boolean;
|
|
10
21
|
}
|
|
11
|
-
export interface
|
|
22
|
+
export interface PersistanceDeletePrivateOptions extends GenericObject {
|
|
23
|
+
processFiltersAllowedFieldsEnabled?: boolean;
|
|
24
|
+
requirePrimaryKeys?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface PersistanceDeleteResult<Item> {
|
|
12
27
|
count?: number;
|
|
28
|
+
originalItems?: Item[];
|
|
13
29
|
}
|
|
14
30
|
export interface PersistanceFindOneOptions {
|
|
15
31
|
filters: GenericObject;
|
|
16
32
|
include?: string[];
|
|
17
|
-
orderBy?: GenericObject<
|
|
33
|
+
orderBy?: GenericObject<PersistanceOrderByDirection>;
|
|
18
34
|
select?: string[];
|
|
19
35
|
selectOperator?: PersistanceSelectOperator;
|
|
20
36
|
withDeleted?: boolean;
|
|
21
37
|
}
|
|
38
|
+
export interface PersistanceFindOnePrivateOptions extends GenericObject {
|
|
39
|
+
processFiltersAllowedFieldsEnabled?: boolean;
|
|
40
|
+
}
|
|
22
41
|
export interface PersistanceFindOptions {
|
|
23
42
|
filters?: GenericObject;
|
|
24
43
|
findAll?: boolean;
|
|
44
|
+
getTotalCount?: boolean;
|
|
25
45
|
include?: string[];
|
|
26
|
-
orderBy?: GenericObject<
|
|
46
|
+
orderBy?: GenericObject<PersistanceOrderByDirection>;
|
|
27
47
|
page?: number;
|
|
28
48
|
perPage?: number;
|
|
29
49
|
select?: string[];
|
|
30
50
|
withDeleted?: boolean;
|
|
31
51
|
}
|
|
52
|
+
export interface PersistanceFindPrivateOptions extends GenericObject {
|
|
53
|
+
processFiltersAllowedFieldsEnabled?: boolean;
|
|
54
|
+
}
|
|
32
55
|
export interface PersistanceFindResults<Item> {
|
|
33
56
|
items: Item[];
|
|
34
57
|
more: boolean;
|
|
35
58
|
page: number;
|
|
36
59
|
perPage: number;
|
|
60
|
+
totalCount?: number;
|
|
37
61
|
}
|
|
38
62
|
export interface PersistanceNumberItem {
|
|
39
63
|
deleted?: boolean;
|
|
40
64
|
value: number;
|
|
41
65
|
}
|
|
66
|
+
export interface PersistanceOrderBy {
|
|
67
|
+
field: string;
|
|
68
|
+
direction: PersistanceOrderByDirection;
|
|
69
|
+
}
|
|
70
|
+
export declare enum PersistanceOrderByDirection {
|
|
71
|
+
Asc = "ASC",
|
|
72
|
+
Desc = "DESC"
|
|
73
|
+
}
|
|
42
74
|
export declare enum PersistanceSelectOperator {
|
|
43
75
|
Between = "$between",
|
|
44
76
|
Contains = "$contains",
|
|
@@ -55,8 +87,25 @@ export declare enum PersistanceSelectOperator {
|
|
|
55
87
|
export interface PersistanceUpdateOptions {
|
|
56
88
|
filters: GenericObject;
|
|
57
89
|
returnData?: boolean;
|
|
90
|
+
returnOriginalItems?: boolean;
|
|
91
|
+
}
|
|
92
|
+
export interface PersistanceUpdatePrivateOptions extends GenericObject {
|
|
93
|
+
processFiltersAllowedFieldsEnabled?: boolean;
|
|
94
|
+
processInputAllowedFieldsEnabled?: boolean;
|
|
95
|
+
requirePrimaryKeys?: boolean;
|
|
96
|
+
withDeleted?: boolean;
|
|
58
97
|
}
|
|
59
98
|
export interface PersistanceUpdateResult<Item> {
|
|
60
99
|
count?: number;
|
|
61
100
|
items?: Item[];
|
|
101
|
+
originalItems?: Item[];
|
|
102
|
+
}
|
|
103
|
+
export interface ProcessObjectAllowedFieldsOptions {
|
|
104
|
+
allowedFields: string[];
|
|
105
|
+
isEnabled?: boolean;
|
|
106
|
+
objectType: string;
|
|
107
|
+
}
|
|
108
|
+
export declare enum ProcessObjectAllowedFieldsType {
|
|
109
|
+
Filters = "processFiltersAllowedFieldsEnabled",
|
|
110
|
+
Input = "processInputAllowedFieldsEnabled"
|
|
62
111
|
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PersistanceSelectOperator = void 0;
|
|
3
|
+
exports.ProcessObjectAllowedFieldsType = exports.PersistanceSelectOperator = exports.PersistanceOrderByDirection = void 0;
|
|
4
|
+
var PersistanceOrderByDirection;
|
|
5
|
+
(function (PersistanceOrderByDirection) {
|
|
6
|
+
PersistanceOrderByDirection["Asc"] = "ASC";
|
|
7
|
+
PersistanceOrderByDirection["Desc"] = "DESC";
|
|
8
|
+
})(PersistanceOrderByDirection || (exports.PersistanceOrderByDirection = PersistanceOrderByDirection = {}));
|
|
4
9
|
var PersistanceSelectOperator;
|
|
5
10
|
(function (PersistanceSelectOperator) {
|
|
6
11
|
PersistanceSelectOperator["Between"] = "$between";
|
|
@@ -15,4 +20,9 @@ var PersistanceSelectOperator;
|
|
|
15
20
|
PersistanceSelectOperator["Not"] = "$not";
|
|
16
21
|
PersistanceSelectOperator["Or"] = "$or";
|
|
17
22
|
})(PersistanceSelectOperator || (exports.PersistanceSelectOperator = PersistanceSelectOperator = {}));
|
|
23
|
+
var ProcessObjectAllowedFieldsType;
|
|
24
|
+
(function (ProcessObjectAllowedFieldsType) {
|
|
25
|
+
ProcessObjectAllowedFieldsType["Filters"] = "processFiltersAllowedFieldsEnabled";
|
|
26
|
+
ProcessObjectAllowedFieldsType["Input"] = "processInputAllowedFieldsEnabled";
|
|
27
|
+
})(ProcessObjectAllowedFieldsType || (exports.ProcessObjectAllowedFieldsType = ProcessObjectAllowedFieldsType = {}));
|
|
18
28
|
//# sourceMappingURL=persistance.entity.service.definitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistance.entity.service.definitions.js","sourceRoot":"","sources":["../../../src/persistance/entityService/persistance.entity.service.definitions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"persistance.entity.service.definitions.js","sourceRoot":"","sources":["../../../src/persistance/entityService/persistance.entity.service.definitions.ts"],"names":[],"mappings":";;;AAoFA,IAAY,2BAKX;AALD,WAAY,2BAA2B;IAErC,0CAAW,CAAA;IAEX,4CAAa,CAAA;AACf,CAAC,EALW,2BAA2B,2CAA3B,2BAA2B,QAKtC;AAED,IAAY,yBAuBX;AAvBD,WAAY,yBAAyB;IAEnC,iDAAoB,CAAA;IAEpB,mDAAsB,CAAA;IAEtB,2CAAc,CAAA;IAEd,gDAAmB,CAAA;IAEnB,wDAA2B,CAAA;IAE3B,6CAAgB,CAAA;IAEhB,qDAAwB,CAAA;IAExB,2CAAc,CAAA;IAEd,6CAAgB,CAAA;IAEhB,yCAAY,CAAA;IAEZ,uCAAU,CAAA;AACZ,CAAC,EAvBW,yBAAyB,yCAAzB,yBAAyB,QAuBpC;AA2BD,IAAY,8BAKX;AALD,WAAY,8BAA8B;IAExC,gFAA8C,CAAA;IAE9C,4EAA0C,CAAA;AAC5C,CAAC,EALW,8BAA8B,8CAA9B,8BAA8B,QAKzC"}
|