@nest-yalc-2/app 2.2.2 → 2.2.4
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/package.json +5 -3
- package/src/__tests__/app-bootstrap-base.helper.spec.ts +86 -38
- package/src/__tests__/app-bootstrap-standalone.helper.spec.ts +35 -35
- package/src/__tests__/app-bootstrap.helper.spec.ts +162 -98
- package/src/__tests__/app-config.service.spec.ts +55 -55
- package/src/__tests__/app-context.service.spec.ts +28 -28
- package/src/__tests__/app.events.spec.ts +12 -12
- package/src/__tests__/app.helper.spec.ts +71 -204
- package/src/__tests__/base-app-module.helper.spec.ts +295 -231
- package/src/__tests__/base-app.controller.spec.ts +90 -90
- package/src/__tests__/base-app.service.spec.ts +39 -39
- package/src/__tests__/cls.module.spec.ts +33 -33
- package/src/__tests__/life-cycle-handler.service.spec.ts +57 -48
- package/src/__tests__/unwrap-result.interceptor.spec.ts +52 -52
- package/src/app-bootstrap-base.helper.ts +206 -206
- package/src/app-bootstrap-standalone.helper.ts +67 -67
- package/src/app-bootstrap.helper.js +9 -9
- package/src/app-bootstrap.helper.ts +279 -279
- package/src/app-config.service.ts +61 -61
- package/src/app-context.module.ts +6 -6
- package/src/app-context.service.ts +16 -16
- package/src/app-imports.factory.js +2 -2
- package/src/app-imports.factory.js.map +1 -1
- package/src/app-imports.factory.ts +321 -321
- package/src/app.events.ts +8 -8
- package/src/app.helper.ts +73 -73
- package/src/base-app-module.helper.d.ts +2 -2
- package/src/base-app-module.helper.js +8 -5
- package/src/base-app-module.helper.js.map +1 -1
- package/src/base-app-module.helper.ts +457 -453
- package/src/base-app.controller.ts +51 -51
- package/src/base-app.interface.ts +55 -55
- package/src/base-app.service.ts +33 -33
- package/src/cls.module.d.ts +2 -1
- package/src/cls.module.js.map +1 -1
- package/src/cls.module.ts +76 -75
- package/src/conf.type.ts +22 -22
- package/src/def.const.ts +33 -33
- package/src/global.enum.ts +6 -6
- package/src/life-cycle-handler.service.ts +66 -66
- package/src/unwrap-result.interceptor.ts +32 -32
- package/src/yalc-controller.interface.ts +6 -6
package/src/app.helper.ts
CHANGED
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import { ClassType } from '@node-yalc/types/globals.js';
|
|
2
|
-
import { DynamicModule, Type } from '@nestjs/common';
|
|
3
|
-
import { StandaloneAppBootstrap } from './app-bootstrap-standalone.helper.js';
|
|
4
|
-
import { curry } from 'lodash-es';
|
|
5
|
-
import {
|
|
6
|
-
BaseAppBootstrap,
|
|
7
|
-
IGlobalOptions,
|
|
8
|
-
} from './app-bootstrap-base.helper.js';
|
|
9
|
-
|
|
10
|
-
export function isDynamicModule(module: any): module is DynamicModule {
|
|
11
|
-
return module.module !== undefined;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const executeFunctionForApp = async (
|
|
15
|
-
app: BaseAppBootstrap<any>,
|
|
16
|
-
serviceType: any,
|
|
17
|
-
fn: { (service: any): Promise<any> },
|
|
18
|
-
options: { closeApp?: boolean },
|
|
19
|
-
): Promise<void> => {
|
|
20
|
-
const nestApp = await app.getApp();
|
|
21
|
-
await nestApp.init();
|
|
22
|
-
|
|
23
|
-
const service = await nestApp.resolve(serviceType);
|
|
24
|
-
|
|
25
|
-
await fn(service).finally(async () => {
|
|
26
|
-
if (options.closeApp) await app.closeApp();
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Curried version of the executeStandaloneFunctionForApp to memoize the app
|
|
32
|
-
* Use it when you need to run the executeStandaloneFunction multiple time
|
|
33
|
-
* @see https://lodash.com/docs/#curry
|
|
34
|
-
* @param module
|
|
35
|
-
* @returns
|
|
36
|
-
*/
|
|
37
|
-
export const curriedExecuteStandaloneFunction = async <
|
|
38
|
-
TOptions extends IGlobalOptions,
|
|
39
|
-
>(
|
|
40
|
-
module: any,
|
|
41
|
-
options?: TOptions,
|
|
42
|
-
): Promise<(serviceType: any, fn: (service: any) => Promise<any>, executeOptions?: { closeApp?: boolean }) => Promise<void>> =>
|
|
43
|
-
curry(executeFunctionForApp)(
|
|
44
|
-
await new StandaloneAppBootstrap(
|
|
45
|
-
isDynamicModule(module) ? module.module.name : module.name,
|
|
46
|
-
module,
|
|
47
|
-
options,
|
|
48
|
-
).initApp(),
|
|
49
|
-
) as any;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
*
|
|
53
|
-
* @param module
|
|
54
|
-
* @param serviceType
|
|
55
|
-
* @param fn
|
|
56
|
-
* @returns
|
|
57
|
-
*/
|
|
58
|
-
export const executeStandaloneFunction = async <
|
|
59
|
-
TService,
|
|
60
|
-
TOptions extends IGlobalOptions,
|
|
61
|
-
>(
|
|
62
|
-
module: DynamicModule | Type<any>,
|
|
63
|
-
serviceType: ClassType<TService>,
|
|
64
|
-
fn: { (service: TService): Promise<any> },
|
|
65
|
-
options?: TOptions,
|
|
66
|
-
executeOptions: { closeApp?: boolean } = {},
|
|
67
|
-
) => {
|
|
68
|
-
return (await curriedExecuteStandaloneFunction(module, options))(
|
|
69
|
-
serviceType,
|
|
70
|
-
fn,
|
|
71
|
-
executeOptions,
|
|
72
|
-
);
|
|
73
|
-
};
|
|
1
|
+
import { ClassType } from '@node-yalc/types/globals.js';
|
|
2
|
+
import { DynamicModule, Type } from '@nestjs/common';
|
|
3
|
+
import { StandaloneAppBootstrap } from './app-bootstrap-standalone.helper.js';
|
|
4
|
+
import { curry } from 'lodash-es';
|
|
5
|
+
import {
|
|
6
|
+
BaseAppBootstrap,
|
|
7
|
+
IGlobalOptions,
|
|
8
|
+
} from './app-bootstrap-base.helper.js';
|
|
9
|
+
|
|
10
|
+
export function isDynamicModule(module: any): module is DynamicModule {
|
|
11
|
+
return module.module !== undefined;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const executeFunctionForApp = async (
|
|
15
|
+
app: BaseAppBootstrap<any>,
|
|
16
|
+
serviceType: any,
|
|
17
|
+
fn: { (service: any): Promise<any> },
|
|
18
|
+
options: { closeApp?: boolean },
|
|
19
|
+
): Promise<void> => {
|
|
20
|
+
const nestApp = await app.getApp();
|
|
21
|
+
await nestApp.init();
|
|
22
|
+
|
|
23
|
+
const service = await nestApp.resolve(serviceType);
|
|
24
|
+
|
|
25
|
+
await fn(service).finally(async () => {
|
|
26
|
+
if (options.closeApp) await app.closeApp();
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Curried version of the executeStandaloneFunctionForApp to memoize the app
|
|
32
|
+
* Use it when you need to run the executeStandaloneFunction multiple time
|
|
33
|
+
* @see https://lodash.com/docs/#curry
|
|
34
|
+
* @param module
|
|
35
|
+
* @returns
|
|
36
|
+
*/
|
|
37
|
+
export const curriedExecuteStandaloneFunction = async <
|
|
38
|
+
TOptions extends IGlobalOptions,
|
|
39
|
+
>(
|
|
40
|
+
module: any,
|
|
41
|
+
options?: TOptions,
|
|
42
|
+
): Promise<(serviceType: any, fn: (service: any) => Promise<any>, executeOptions?: { closeApp?: boolean }) => Promise<void>> =>
|
|
43
|
+
curry(executeFunctionForApp)(
|
|
44
|
+
await new StandaloneAppBootstrap(
|
|
45
|
+
isDynamicModule(module) ? module.module.name : module.name,
|
|
46
|
+
module,
|
|
47
|
+
options,
|
|
48
|
+
).initApp(),
|
|
49
|
+
) as any;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
* @param module
|
|
54
|
+
* @param serviceType
|
|
55
|
+
* @param fn
|
|
56
|
+
* @returns
|
|
57
|
+
*/
|
|
58
|
+
export const executeStandaloneFunction = async <
|
|
59
|
+
TService,
|
|
60
|
+
TOptions extends IGlobalOptions,
|
|
61
|
+
>(
|
|
62
|
+
module: DynamicModule | Type<any>,
|
|
63
|
+
serviceType: ClassType<TService>,
|
|
64
|
+
fn: { (service: TService): Promise<any> },
|
|
65
|
+
options?: TOptions,
|
|
66
|
+
executeOptions: { closeApp?: boolean } = {},
|
|
67
|
+
) => {
|
|
68
|
+
return (await curriedExecuteStandaloneFunction(module, options))(
|
|
69
|
+
serviceType,
|
|
70
|
+
fn,
|
|
71
|
+
executeOptions,
|
|
72
|
+
);
|
|
73
|
+
};
|
|
@@ -2,9 +2,9 @@ import { IYalcBaseAppOptions, IYalcBaseDynamicModule, IYalcBaseStaticModule } fr
|
|
|
2
2
|
import { DynamicModule } from '@nestjs/common';
|
|
3
3
|
import { IGlobalOptions } from './app-bootstrap-base.helper.js';
|
|
4
4
|
export declare function registerSingletonDynamicModule(isSingleton: boolean, moduleToken: any, module: any): any | true;
|
|
5
|
-
export declare function getCachedModule(module: any, isSingleton
|
|
5
|
+
export declare function getCachedModule(module: any, isSingleton?: boolean): any;
|
|
6
6
|
export declare function envFilePathList(dirname?: string): string[];
|
|
7
|
-
export declare
|
|
7
|
+
export declare function buildEnvFilePath(envDir?: string, envPath?: string | string[]): string[];
|
|
8
8
|
export declare function yalcBaseAppModuleMetadataFactory(module: any, appAlias: string, options?: Omit<IYalcBaseAppOptions, 'module'>): IYalcBaseStaticModule;
|
|
9
9
|
export declare class YalcBaseAppModule {
|
|
10
10
|
protected static _forRootStandalone(appAlias: string, options?: IYalcBaseAppOptions): IYalcBaseDynamicModule;
|
|
@@ -31,14 +31,15 @@ export function getCachedModule(module, isSingleton) {
|
|
|
31
31
|
}
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
|
-
export function envFilePathList(dirname
|
|
34
|
+
export function envFilePathList(dirname) {
|
|
35
|
+
const _dirname = dirname ?? '.';
|
|
35
36
|
const envFilePath = [];
|
|
36
|
-
envFilePath.push(`${
|
|
37
|
+
envFilePath.push(`${_dirname}/.env`);
|
|
37
38
|
if (process.env.NODE_ENV) {
|
|
38
|
-
envFilePath.push(`${
|
|
39
|
+
envFilePath.push(`${_dirname}/.env.${process.env.NODE_ENV}`);
|
|
39
40
|
}
|
|
40
41
|
if (process.env.NODE_ENV !== 'production')
|
|
41
|
-
envFilePath.push(`${
|
|
42
|
+
envFilePath.push(`${_dirname}/.env.dist`);
|
|
42
43
|
return envFilePath;
|
|
43
44
|
}
|
|
44
45
|
const _buildEnvFilePath = _.memoize((envDir, envPath) => {
|
|
@@ -55,7 +56,9 @@ const _buildEnvFilePath = _.memoize((envDir, envPath) => {
|
|
|
55
56
|
}, (envDir = '', envPath = '') => {
|
|
56
57
|
return `${envDir}-${Array.isArray(envPath) ? envPath.join(',') : envPath}`;
|
|
57
58
|
});
|
|
58
|
-
export
|
|
59
|
+
export function buildEnvFilePath(envDir, envPath) {
|
|
60
|
+
return _buildEnvFilePath(envDir, envPath);
|
|
61
|
+
}
|
|
59
62
|
export function yalcBaseAppModuleMetadataFactory(module, appAlias, options) {
|
|
60
63
|
const _options = {
|
|
61
64
|
isSingleton: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-app-module.helper.js","sourceRoot":"","sources":["base-app-module.helper.ts"],"names":[],"mappings":";AAKA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAiB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,CAAC,MAAM,WAAW,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAY,CAAC;AAEpD,MAAM,UAAU,8BAA8B,CAC5C,WAAoB,EACpB,WAAgB,EAChB,MAAW;IAEX,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"base-app-module.helper.js","sourceRoot":"","sources":["base-app-module.helper.ts"],"names":[],"mappings":"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"}
|