definition-generator-framework 1.3.2 → 1.3.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/dist/framework/definition-store.d.ts +6 -0
- package/dist/framework/definition-store.js +24 -0
- package/dist/framework/definition-store.js.map +1 -0
- package/dist/framework/framework.d.ts +2 -1
- package/dist/framework/framework.js +1 -0
- package/dist/framework/framework.js.map +1 -1
- package/dist/framework/kernel.js +28 -4
- package/dist/framework/kernel.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DefinitionComponentClassType } from './framework';
|
|
2
|
+
export declare class DefinitionStore {
|
|
3
|
+
private static definitionsMap;
|
|
4
|
+
static getDefinition<T>(definitionClass: DefinitionComponentClassType<T>, key: string): T | undefined;
|
|
5
|
+
private static setDefinition;
|
|
6
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefinitionStore = void 0;
|
|
4
|
+
const helpers_lib_1 = require("helpers-lib");
|
|
5
|
+
class DefinitionStore {
|
|
6
|
+
static { this.definitionsMap = new Map(); }
|
|
7
|
+
static getDefinition(definitionClass, key) {
|
|
8
|
+
if (!definitionClass.$meta.keyName) {
|
|
9
|
+
throw new Error(`"${definitionClass.name}" doesn't have a keyName, getDefinition cannot be called on it.`);
|
|
10
|
+
}
|
|
11
|
+
return this.definitionsMap.get(definitionClass.name)?.get(key);
|
|
12
|
+
}
|
|
13
|
+
static setDefinition(definitionClass, key, definition) {
|
|
14
|
+
if (!this.definitionsMap.has(definitionClass.name)) {
|
|
15
|
+
this.definitionsMap.set(definitionClass.name, new Map());
|
|
16
|
+
}
|
|
17
|
+
let classMap = this.definitionsMap.get(definitionClass.name);
|
|
18
|
+
if (classMap) {
|
|
19
|
+
classMap.set(key, helpers_lib_1.JsonHelper.deepCopy(definition));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.DefinitionStore = DefinitionStore;
|
|
24
|
+
//# sourceMappingURL=definition-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition-store.js","sourceRoot":"","sources":["../../src/framework/definition-store.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAGzC,MAAa,eAAe;aACX,mBAAc,GAAkC,IAAI,GAAG,EAAe,CAAC;IAEtF,MAAM,CAAC,aAAa,CAAI,eAAgD,EAAE,GAAW;QACnF,IAAI,CAAO,eAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,iEAAiE,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAEO,MAAM,CAAC,aAAa,CAAI,eAAgD,EAAE,GAAW,EAAE,UAAa;QAC1G,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,EAAa,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,wBAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;;AAnBH,0CAoBC"}
|
|
@@ -3,13 +3,14 @@ import { Output } from './framework.model';
|
|
|
3
3
|
export type DefinitionComponentClassType<T> = new (...args: any[]) => DefinitionComponent<T>;
|
|
4
4
|
export interface DefinitionComponentMeta {
|
|
5
5
|
definitionName: string;
|
|
6
|
+
keyName?: string;
|
|
6
7
|
singleton?: boolean;
|
|
7
8
|
validationSchema: Joi.Schema;
|
|
8
9
|
}
|
|
9
10
|
export declare function DefinitionComponentDecorator(meta: DefinitionComponentMeta): (ComponentClass: DefinitionComponentClassType<any>) => any;
|
|
10
11
|
export declare abstract class DefinitionComponent<T> {
|
|
11
12
|
static getSchema(): Joi.Schema;
|
|
12
|
-
abstract process(definitions: T, context: Output): Promise<void>;
|
|
13
|
+
abstract process(definitions: T[], context: Output): Promise<void>;
|
|
13
14
|
}
|
|
14
15
|
interface DefinitionModuleMeta {
|
|
15
16
|
modules: DefinitionComponentClassType<any>[];
|
|
@@ -8,6 +8,7 @@ function DefinitionComponentDecorator(meta) {
|
|
|
8
8
|
framework_data_1.FrameworkData.definitionNames.add(meta.definitionName);
|
|
9
9
|
ComponentClass.$meta = {
|
|
10
10
|
definitionName: meta.definitionName,
|
|
11
|
+
keyName: meta.keyName,
|
|
11
12
|
singleton: meta.singleton,
|
|
12
13
|
validationSchema: meta.validationSchema
|
|
13
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/framework/framework.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAEjD,qCAAkC;
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/framework/framework.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAEjD,qCAAkC;AAWlC,SAAgB,4BAA4B,CAAC,IAA6B;IACxE,OAAO,UAAU,cAAiD;QAChE,8BAAa,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEjD,cAAe,CAAC,KAAK,GAAG;YAC5B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAXD,oEAWC;AAED,MAAsB,mBAAmB;IACvC,MAAM,CAAC,SAAS;QACd,OAAa,IAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC5C,CAAC;CAGF;AAND,kDAMC;AAQD,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAC/B,SAAgB,yBAAyB,CAAC,IAA0B;IAClE,OAAO,UAAU,WAAsC;QACrD,IAAI,kBAAkB,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,kBAAkB,GAAG,IAAI,CAAC;YAC1B,8BAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,8BAAa,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAE3C,eAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAZD,8DAYC;AAID,MAAsB,gBAAgB;CAAG;AAAzC,4CAAyC"}
|
package/dist/framework/kernel.js
CHANGED
|
@@ -32,6 +32,8 @@ const raw_data_parser_1 = require("../pipeline/raw-data-parser");
|
|
|
32
32
|
const framework_data_1 = require("./framework.data");
|
|
33
33
|
const validator_1 = require("../helpers/validator/validator");
|
|
34
34
|
const custom_validator_helper_1 = require("../helpers/validator/custom-validator-helper/custom-validator.helper");
|
|
35
|
+
const definition_store_1 = require("./definition-store");
|
|
36
|
+
const helpers_lib_1 = require("helpers-lib");
|
|
35
37
|
class Kernel {
|
|
36
38
|
static async process() {
|
|
37
39
|
let root = path.resolve('./').replace(/\\/g, '/');
|
|
@@ -67,7 +69,7 @@ class Kernel {
|
|
|
67
69
|
content: framework_data_1.FrameworkData.interfaces
|
|
68
70
|
});
|
|
69
71
|
raw_data_parser_1.RawDataParser.process(context);
|
|
70
|
-
|
|
72
|
+
let preparedItems = framework_data_1.FrameworkData.modules.map(ModuleClass => {
|
|
71
73
|
let meta = ModuleClass.$meta;
|
|
72
74
|
let output = {
|
|
73
75
|
addFile: (fileInfo) => {
|
|
@@ -84,9 +86,31 @@ class Kernel {
|
|
|
84
86
|
else {
|
|
85
87
|
definitions = validator_1.Validator.convert(meta.definitionName, meta.validationSchema, context) || [];
|
|
86
88
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
let keyName = meta.keyName;
|
|
90
|
+
if (keyName) {
|
|
91
|
+
if (!helpers_lib_1.Comparator.isString(keyName)) {
|
|
92
|
+
throw new Error(`Definition key named '${keyName}' is not a string`);
|
|
93
|
+
}
|
|
94
|
+
definitions.forEach((definition) => {
|
|
95
|
+
let key = definition[keyName];
|
|
96
|
+
if (!key) {
|
|
97
|
+
throw new Error(`Definition doesn't have a property named '${keyName}'`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
definition_store_1.DefinitionStore['setDefinition'](ModuleClass, key, definition);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
definitions,
|
|
106
|
+
output,
|
|
107
|
+
ModuleClass
|
|
108
|
+
};
|
|
109
|
+
});
|
|
110
|
+
for (let preparedItem of preparedItems) {
|
|
111
|
+
if (preparedItem.definitions) {
|
|
112
|
+
let module = new preparedItem.ModuleClass();
|
|
113
|
+
await module.process(preparedItem.definitions, preparedItem.output);
|
|
90
114
|
}
|
|
91
115
|
}
|
|
92
116
|
custom_validator_helper_1.CustomValidatorHelper.logDuplicates(context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/framework/kernel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,2CAA6B;AAC7B,+CAAiC;AAGjC,iEAA4D;AAC5D,qDAAiD;AACjD,8DAA2D;AAE3D,kHAA6G;
|
|
1
|
+
{"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/framework/kernel.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { Validator } from './helpers/validator/validator';
|
|
2
2
|
export { JoiCustomValidators } from './helpers/validator/joi-custom-validators';
|
|
3
|
+
export { DefinitionStore } from './framework/definition-store';
|
|
3
4
|
export { DefinitionModule, DefinitionModuleDecorator, DefinitionComponent, DefinitionComponentDecorator } from './framework/framework';
|
|
4
5
|
export { OutputHelper } from './helpers/output-helper/output-helper';
|
|
5
6
|
export { Output, ErrorLog } from './framework/framework.model';
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OutputHelper = exports.DefinitionComponentDecorator = exports.DefinitionComponent = exports.DefinitionModuleDecorator = exports.DefinitionModule = exports.JoiCustomValidators = exports.Validator = void 0;
|
|
3
|
+
exports.OutputHelper = exports.DefinitionComponentDecorator = exports.DefinitionComponent = exports.DefinitionModuleDecorator = exports.DefinitionModule = exports.DefinitionStore = exports.JoiCustomValidators = exports.Validator = void 0;
|
|
4
4
|
var validator_1 = require("./helpers/validator/validator");
|
|
5
5
|
Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return validator_1.Validator; } });
|
|
6
6
|
var joi_custom_validators_1 = require("./helpers/validator/joi-custom-validators");
|
|
7
7
|
Object.defineProperty(exports, "JoiCustomValidators", { enumerable: true, get: function () { return joi_custom_validators_1.JoiCustomValidators; } });
|
|
8
|
+
var definition_store_1 = require("./framework/definition-store");
|
|
9
|
+
Object.defineProperty(exports, "DefinitionStore", { enumerable: true, get: function () { return definition_store_1.DefinitionStore; } });
|
|
8
10
|
var framework_1 = require("./framework/framework");
|
|
9
11
|
Object.defineProperty(exports, "DefinitionModule", { enumerable: true, get: function () { return framework_1.DefinitionModule; } });
|
|
10
12
|
Object.defineProperty(exports, "DefinitionModuleDecorator", { enumerable: true, get: function () { return framework_1.DefinitionModuleDecorator; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAAjD,sGAAA,SAAS,OAAA;AAClB,mFAAgF;AAAvE,4HAAA,mBAAmB,OAAA;AAC5B,mDAK+B;AAJ7B,6GAAA,gBAAgB,OAAA;AAChB,sHAAA,yBAAyB,OAAA;AACzB,gHAAA,mBAAmB,OAAA;AACnB,yHAAA,4BAA4B,OAAA;AAE9B,uEAAqE;AAA5D,6GAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAAjD,sGAAA,SAAS,OAAA;AAClB,mFAAgF;AAAvE,4HAAA,mBAAmB,OAAA;AAC5B,iEAA+D;AAAtD,mHAAA,eAAe,OAAA;AACxB,mDAK+B;AAJ7B,6GAAA,gBAAgB,OAAA;AAChB,sHAAA,yBAAyB,OAAA;AACzB,gHAAA,mBAAmB,OAAA;AACnB,yHAAA,4BAA4B,OAAA;AAE9B,uEAAqE;AAA5D,6GAAA,YAAY,OAAA"}
|