@allgemein/moduls 1.6.4 → 1.6.6
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/README.md +0 -3
- package/loader/AbstractModuleLoader.js +3 -3
- package/loader/AbstractModuleLoader.js.map +1 -1
- package/loader/classes/ClassesLoader.js +33 -19
- package/loader/classes/ClassesLoader.js.map +1 -1
- package/loader/require/RequireLoader.js +4 -4
- package/loader/require/RequireLoader.js.map +1 -1
- package/loader/settings/SettingsLoader.js +1 -1
- package/loader/settings/SettingsLoader.js.map +1 -1
- package/package.json +17 -15
- package/registry/ModuleRegistry.d.ts +1 -0
- package/registry/ModuleRegistry.js +15 -13
- package/registry/ModuleRegistry.js.map +1 -1
- package/utils/Helper.js +28 -27
- package/utils/Helper.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
# @allgemein/moduls
|
|
3
3
|
|
|
4
|
-
[](https://travis-ci.org/allgemein-node/moduls)
|
|
5
|
-
[](https://codecov.io/gh/thinkbaer/node-commons-modules)
|
|
6
|
-
[](https://www.versioneye.com/user/projects/596932736725bd004ea696cd)
|
|
7
4
|
|
|
8
5
|
|
|
9
6
|
|
|
@@ -22,13 +22,13 @@ class AbstractModuleLoader {
|
|
|
22
22
|
}
|
|
23
23
|
add(handle) {
|
|
24
24
|
if (handle) {
|
|
25
|
-
let exists = lodash_1.find(this._handles, (x) => {
|
|
25
|
+
let exists = (0, lodash_1.find)(this._handles, (x) => {
|
|
26
26
|
return x.module.name === handle.module.name;
|
|
27
27
|
});
|
|
28
28
|
if (!exists) {
|
|
29
29
|
this._handles.push(handle);
|
|
30
30
|
// correct order if necessary
|
|
31
|
-
this._handles = lodash_1.orderBy(this._handles, [
|
|
31
|
+
this._handles = (0, lodash_1.orderBy)(this._handles, [
|
|
32
32
|
x => x.module.weight,
|
|
33
33
|
x => x.module.child_modules.length,
|
|
34
34
|
x => x.module.id
|
|
@@ -41,7 +41,7 @@ class AbstractModuleLoader {
|
|
|
41
41
|
return handle;
|
|
42
42
|
}
|
|
43
43
|
load(modules) {
|
|
44
|
-
if (lodash_1.isArray(modules)) {
|
|
44
|
+
if ((0, lodash_1.isArray)(modules)) {
|
|
45
45
|
const promises = [];
|
|
46
46
|
for (let x of modules) {
|
|
47
47
|
if (this._options.filter && !this._options.filter(x)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/loader/AbstractModuleLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA8C;AAO9C,MAAsB,oBAAoB;IAQxC,YAAY,QAAwB,EAAE,OAAa;QAFnD,aAAQ,GAAQ,EAAE,CAAC;QAGjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAS,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,MAAS;QACX,IAAI,MAAM,EAAE;YACV,IAAI,MAAM,GAAG,aAAI,
|
|
1
|
+
{"version":3,"sources":["../../../src/loader/AbstractModuleLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA8C;AAO9C,MAAsB,oBAAoB;IAQxC,YAAY,QAAwB,EAAE,OAAa;QAFnD,aAAQ,GAAQ,EAAE,CAAC;QAGjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAS,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,MAAS;QACX,IAAI,MAAM,EAAE;YACV,IAAI,MAAM,GAAG,IAAA,aAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACrC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE;gBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,6BAA6B;gBAC7B,IAAI,CAAC,QAAQ,GAAG,IAAA,gBAAO,EAAC,IAAI,CAAC,QAAQ,EAAE;oBACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;oBACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM;oBAClC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;iBACjB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;aAC3B;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC;aAChF;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAMD,IAAI,CAAC,OAA8C;QACjD,IAAI,IAAA,gBAAO,EAAC,OAAO,CAAC,EAAE;YACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;gBACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACpD,SAAS;iBACV;gBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aACjC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC9B;aAAM;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC/B;IACH,CAAC;IAGa,QAAQ,CAAC,OAAyB;;YAC9C,IAAI,GAAG,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI;gBACF,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACnB;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,sBAAsB,EAAE;oBAClD,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,sBAAsB,EAAE;wBACtD,KAAK,MAAM;4BACT,MAAM;wBACR,KAAK,KAAK;4BACR,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BACnB,MAAM;wBACR;4BACE,MAAM,GAAG,CAAC;qBACb;iBACF;qBAAM;oBACL,MAAM,GAAG,CAAC;iBACX;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;CAEF;AAhFD,oDAgFC","file":"AbstractModuleLoader.js","sourcesContent":["import {find, isArray, orderBy} from 'lodash';\nimport {ModuleDescriptor} from '../registry/ModuleDescriptor';\nimport {AbstractModuleHandle} from './AbstractModuleHandle';\nimport {ModuleRegistry} from '../registry/ModuleRegistry';\nimport {IModuleOptions} from './IModuleOptions';\nimport {IModuleLoader} from './IModuleLoader';\n\nexport abstract class AbstractModuleLoader<T extends AbstractModuleHandle, OPT extends IModuleOptions> implements IModuleLoader<T> {\n\n _options: OPT;\n\n protected readonly registry: ModuleRegistry;\n\n _handles: T[] = [];\n\n constructor(registry: ModuleRegistry, options?: OPT) {\n this.registry = registry;\n this._options = options || <OPT>{};\n }\n\n handles(): T[] {\n return this._handles;\n }\n\n add(handle: T) {\n if (handle) {\n let exists = find(this._handles, (x) => {\n return x.module.name === handle.module.name;\n });\n if (!exists) {\n this._handles.push(handle);\n // correct order if necessary\n this._handles = orderBy(this._handles, [\n x => x.module.weight,\n x => x.module.child_modules.length,\n x => x.module.id\n ], ['asc', 'asc', 'asc']);\n } else {\n throw new Error('handle for module ' + handle.module.name + ' already loaded');\n }\n }\n return handle;\n }\n\n protected abstract loadOne(modul: ModuleDescriptor): Promise<T>;\n\n load(module: ModuleDescriptor): Promise<T> ;\n load(modules: ModuleDescriptor[]): Promise<T[]> ;\n load(modules: ModuleDescriptor | ModuleDescriptor[]): Promise<T | T[]> {\n if (isArray(modules)) {\n const promises = [];\n for (let x of modules) {\n if (this._options.filter && !this._options.filter(x)) {\n continue;\n }\n promises.push(this._loadOne(x));\n }\n return Promise.all(promises);\n } else {\n return this._loadOne(modules);\n }\n }\n\n\n private async _loadOne(modules: ModuleDescriptor) {\n let res = null;\n let y = await this.loadOne(modules);\n try {\n res = this.add(y);\n } catch (err) {\n if (this.registry.options().handleErrorOnDuplicate) {\n switch (this.registry.options().handleErrorOnDuplicate) {\n case 'skip':\n break;\n case 'log':\n console.error(err);\n break;\n default:\n throw err;\n }\n } else {\n throw err;\n }\n }\n return res;\n }\n\n}\n"],"sourceRoot":".."}
|
|
@@ -20,7 +20,7 @@ class ClassesLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
|
|
|
20
20
|
let classes = [];
|
|
21
21
|
for (let handle of this.handles()) {
|
|
22
22
|
let cls = handle.getClasses(topic);
|
|
23
|
-
if (!lodash_1.isEmpty(cls)) {
|
|
23
|
+
if (!(0, lodash_1.isEmpty)(cls)) {
|
|
24
24
|
classes = classes.concat(cls);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -30,7 +30,7 @@ class ClassesLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
|
|
|
30
30
|
let classes = [];
|
|
31
31
|
for (let handle of this.handles()) {
|
|
32
32
|
let cls = handle.getClasses(topic);
|
|
33
|
-
if (!lodash_1.isEmpty(cls)) {
|
|
33
|
+
if (!(0, lodash_1.isEmpty)(cls)) {
|
|
34
34
|
cls.forEach(c => {
|
|
35
35
|
const className = base_1.ClassLoader.getClassName(c);
|
|
36
36
|
if (excludeFilter && excludeFilter(className, handle.module.name)) {
|
|
@@ -46,7 +46,7 @@ class ClassesLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
|
|
|
46
46
|
let classes = {};
|
|
47
47
|
for (let handle of this.handles()) {
|
|
48
48
|
let modulClasses = handle.getClasses(topic);
|
|
49
|
-
if (!lodash_1.isEmpty(modulClasses)) {
|
|
49
|
+
if (!(0, lodash_1.isEmpty)(modulClasses)) {
|
|
50
50
|
classes[handle.module.name] = modulClasses;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -55,44 +55,57 @@ class ClassesLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
|
|
|
55
55
|
loadOne(modul) {
|
|
56
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
57
57
|
let handle = new ClassesHandle_1.ClassesHandle(modul);
|
|
58
|
-
let
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
// for (let lib of this._options.libs) {
|
|
59
|
+
const libs = yield Promise.all(this._options.libs.map((lib) => __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const _lib = {
|
|
61
|
+
topic: lib.topic,
|
|
62
|
+
refs: [],
|
|
63
|
+
classes: []
|
|
64
|
+
};
|
|
65
|
+
const topic = lib.topic;
|
|
66
|
+
// let refs = [];
|
|
61
67
|
for (let _path of lib.refs) {
|
|
62
68
|
let lib_path = base_1.PlatformUtils.join(modul.path, _path);
|
|
63
69
|
let res = yield ClassesLoader.glob(lib_path);
|
|
64
|
-
if (!lodash_1.isEmpty(res)) {
|
|
70
|
+
if (!(0, lodash_1.isEmpty)(res)) {
|
|
65
71
|
for (let r of res) {
|
|
66
72
|
if (base_1.PlatformUtils.fileExist(r) && base_1.PlatformUtils.isDir(r)) {
|
|
67
|
-
refs.push(base_1.PlatformUtils.join(r, '*'));
|
|
73
|
+
_lib.refs.push(base_1.PlatformUtils.join(r, '*'));
|
|
68
74
|
}
|
|
69
75
|
else if (base_1.PlatformUtils.fileExist(r) && base_1.PlatformUtils.isFile(r)) {
|
|
70
|
-
refs.push(r);
|
|
76
|
+
_lib.refs.push(r);
|
|
71
77
|
}
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
80
|
else if (base_1.PlatformUtils.fileExist(lib_path + '.js') && base_1.PlatformUtils.isFile(lib_path + '.js')) {
|
|
75
|
-
refs.push(lib_path + '.js');
|
|
81
|
+
_lib.refs.push(lib_path + '.js');
|
|
76
82
|
}
|
|
77
83
|
else if (base_1.PlatformUtils.fileExist(lib_path + '.ts') && base_1.PlatformUtils.isFile(lib_path + '.ts')) {
|
|
78
84
|
// if ts-node is used on start
|
|
79
|
-
refs.push(lib_path + '.ts');
|
|
85
|
+
_lib.refs.push(lib_path + '.ts');
|
|
80
86
|
}
|
|
81
87
|
}
|
|
82
|
-
if (!lodash_1.isEmpty(refs)) {
|
|
83
|
-
|
|
88
|
+
if (!(0, lodash_1.isEmpty)(_lib.refs)) {
|
|
89
|
+
_lib.classes = yield this.loadClasses(_lib.refs, modul.name, topic);
|
|
90
|
+
// handle: ClassesHandle,
|
|
84
91
|
}
|
|
92
|
+
return _lib;
|
|
93
|
+
})));
|
|
94
|
+
for (const lib of libs) {
|
|
95
|
+
handle.add(lib.topic, lib.refs, lib.classes);
|
|
85
96
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
97
|
+
// }
|
|
98
|
+
//
|
|
99
|
+
// if (promises.length > 0) {
|
|
100
|
+
// await Promise.all(promises);
|
|
101
|
+
// }
|
|
89
102
|
return handle.hasAnyClasses() ? handle : null;
|
|
90
103
|
});
|
|
91
104
|
}
|
|
92
|
-
loadClasses(
|
|
105
|
+
loadClasses(refs, modulName, topic) {
|
|
93
106
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
107
|
let classes = yield base_1.ClassLoader.importClassesFromAnyAsync(refs);
|
|
95
|
-
if (!lodash_1.isEmpty(classes)) {
|
|
108
|
+
if (!(0, lodash_1.isEmpty)(classes)) {
|
|
96
109
|
if (Reflect && Reflect['getOwnMetadata']) {
|
|
97
110
|
classes.forEach(cls => {
|
|
98
111
|
Reflect['defineMetadata'](MODULE_NAME, modulName, cls);
|
|
@@ -103,8 +116,9 @@ class ClassesLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
|
|
|
103
116
|
cls[MODULE_NAME] = modulName;
|
|
104
117
|
});
|
|
105
118
|
}
|
|
106
|
-
|
|
119
|
+
return classes;
|
|
107
120
|
}
|
|
121
|
+
return [];
|
|
108
122
|
});
|
|
109
123
|
}
|
|
110
124
|
static getSource(cls) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/loader/classes/ClassesLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA+B;AAC/B,kEAA6D;AAE7D,mDAA8C;AAE9C,0CAA2D;AAI3D,MAAM,WAAW,GAAG,eAAe,CAAC;AAEpC,MAAa,aAAc,SAAQ,2CAAoD;IAGrF,UAAU,CAAC,KAAa;QACtB,IAAI,OAAO,GAAe,EAAE,CAAC;QAC7B,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YACjC,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,gBAAO,
|
|
1
|
+
{"version":3,"sources":["../../../src/loader/classes/ClassesLoader.ts"],"names":[],"mappings":"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","file":"ClassesLoader.js","sourcesContent":["import {isEmpty} from 'lodash';\nimport {AbstractModuleLoader} from '../AbstractModuleLoader';\nimport {ModuleDescriptor} from '../../registry/ModuleDescriptor';\nimport {ClassesHandle} from './ClassesHandle';\nimport {IClassesLib, IClassesOptions} from './IClassesOptions';\nimport {ClassLoader, PlatformUtils} from '@allgemein/base';\nimport {IClassesLoader} from './IClassesLoader';\n\n\nconst MODULE_NAME = '__MODULNAME__';\n\nexport class ClassesLoader extends AbstractModuleLoader<ClassesHandle, IClassesOptions> implements IClassesLoader {\n\n\n getClasses(topic: string): Function[] {\n let classes: Function[] = [];\n for (let handle of this.handles()) {\n let cls = handle.getClasses(topic);\n if (!isEmpty(cls)) {\n classes = classes.concat(cls);\n }\n }\n return classes;\n }\n\n getClassesWithFilter(topic: string, excludeFilter?: (className: string, modulName: string) => boolean): Function[] {\n let classes: Function[] = [];\n for (let handle of this.handles()) {\n let cls = handle.getClasses(topic);\n if (!isEmpty(cls)) {\n cls.forEach(c => {\n const className = ClassLoader.getClassName(c);\n if (excludeFilter && excludeFilter(className, handle.module.name)) {\n return;\n }\n classes.push(c);\n });\n }\n }\n return classes;\n }\n\n getClassesByModule(topic: string): { [modul: string]: Function[] } {\n let classes: { [modul: string]: Function[] } = {};\n for (let handle of this.handles()) {\n let modulClasses = handle.getClasses(topic);\n if (!isEmpty(modulClasses)) {\n classes[handle.module.name] = modulClasses;\n }\n }\n return classes;\n }\n\n\n protected async loadOne(modul: ModuleDescriptor): Promise<ClassesHandle> {\n let handle = new ClassesHandle(modul);\n\n // for (let lib of this._options.libs) {\n const libs = await Promise.all(this._options.libs.map(async (lib: IClassesLib) => {\n const _lib: { topic: string, refs: string[], classes: Function[] } = {\n topic: lib.topic,\n refs: [],\n classes: []\n };\n const topic = lib.topic;\n // let refs = [];\n for (let _path of lib.refs) {\n let lib_path = PlatformUtils.join(modul.path, _path);\n let res = await ClassesLoader.glob(lib_path);\n\n if (!isEmpty(res)) {\n for (let r of res) {\n if (PlatformUtils.fileExist(r) && PlatformUtils.isDir(r)) {\n _lib.refs.push(PlatformUtils.join(r, '*'));\n } else if (PlatformUtils.fileExist(r) && PlatformUtils.isFile(r)) {\n _lib.refs.push(r);\n }\n }\n } else if (PlatformUtils.fileExist(lib_path + '.js') && PlatformUtils.isFile(lib_path + '.js')) {\n _lib.refs.push(lib_path + '.js');\n } else if (PlatformUtils.fileExist(lib_path + '.ts') && PlatformUtils.isFile(lib_path + '.ts')) {\n // if ts-node is used on start\n _lib.refs.push(lib_path + '.ts');\n }\n }\n\n if (!isEmpty(_lib.refs)) {\n _lib.classes = await this.loadClasses(_lib.refs, modul.name, topic);\n // handle: ClassesHandle,\n\n }\n return _lib;\n }));\n\n for (const lib of libs) {\n handle.add(lib.topic, lib.refs, lib.classes);\n }\n // }\n //\n // if (promises.length > 0) {\n // await Promise.all(promises);\n // }\n return handle.hasAnyClasses() ? handle : null;\n }\n\n\n private async loadClasses(\n refs: string[], modulName: string, topic: string) {\n let classes = await ClassLoader.importClassesFromAnyAsync(refs);\n if (!isEmpty(classes)) {\n if (Reflect && Reflect['getOwnMetadata']) {\n classes.forEach(cls => {\n Reflect['defineMetadata'](MODULE_NAME, modulName, cls);\n });\n } else {\n classes.forEach(cls => {\n cls[MODULE_NAME] = modulName;\n });\n }\n return classes;\n }\n return [];\n }\n\n\n static getSource(cls: Function) {\n return ClassLoader.getSource(cls);\n }\n\n\n static getModulName(cls: Function) {\n if (Reflect && Reflect['getOwnMetadata']) {\n return Reflect['getOwnMetadata'](MODULE_NAME, cls);\n } else {\n return cls[MODULE_NAME] ? cls[MODULE_NAME] : null;\n }\n }\n\n static glob(lib_path: string): Promise<string[]> {\n const glob = PlatformUtils.load('glob');\n return new Promise((resolve, reject) => {\n glob(lib_path, ((err: Error, matches: string[]) => {\n if (err) {\n reject(err);\n } else {\n resolve(matches);\n }\n }));\n });\n }\n\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -35,7 +35,7 @@ class RequireLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
|
|
|
35
35
|
handle.exposesHooks = handle.ref.exposesHooks;
|
|
36
36
|
}
|
|
37
37
|
Object.getOwnPropertyNames(handle.ref).forEach(function (val, idx, array) {
|
|
38
|
-
if (handle.ref[val] && lodash_1.isFunction(handle.ref[val]) && val != 'exposesHooks' && val.match(/^on[A-Z]/)) {
|
|
38
|
+
if (handle.ref[val] && (0, lodash_1.isFunction)(handle.ref[val]) && val != 'exposesHooks' && val.match(/^on[A-Z]/)) {
|
|
39
39
|
let _val = val.replace('on', '');
|
|
40
40
|
_val = _val[0].toLowerCase() + _val.substring(1);
|
|
41
41
|
handle.usesHooks.push(_val);
|
|
@@ -47,14 +47,14 @@ class RequireLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
|
|
|
47
47
|
invokeHook(hook, ...args) {
|
|
48
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
49
|
let options = { concurrency: Infinity };
|
|
50
|
-
if (lodash_1.isObject(hook)) {
|
|
50
|
+
if ((0, lodash_1.isObject)(hook)) {
|
|
51
51
|
options = hook;
|
|
52
52
|
hook = options.hook;
|
|
53
53
|
}
|
|
54
|
-
let handles = lodash_1.filter(this._handles, function (_x) {
|
|
54
|
+
let handles = (0, lodash_1.filter)(this._handles, function (_x) {
|
|
55
55
|
return _x.usesHooks.indexOf(hook) > -1;
|
|
56
56
|
});
|
|
57
|
-
return yield Promise.all(lodash_1.map(handles, (handle) => {
|
|
57
|
+
return yield Promise.all((0, lodash_1.map)(handles, (handle) => {
|
|
58
58
|
let _args = [handle, hook];
|
|
59
59
|
_args = _args.concat(args);
|
|
60
60
|
return RequireLoader.handleCall.apply(null, _args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/loader/require/RequireLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAA6B;AAC7B,mCAAyD;AACzD,mDAA8C;AAC9C,kEAA6D;AAE7D,+CAA0C;AAK1C,MAAa,aAAc,SAAQ,2CAAoD;IAGrE,OAAO,CAAC,KAAuB;;YAC7C,IAAI,MAAM,GAAG,IAAI,6BAAa,CAAC,KAAK,CAAC,CAAC;YAEtC,wDAAwD;YACxD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;YAC7C,IAAI,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA,uBAAuB;YAE3E,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE;gBACxD,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;aAChD;YAED,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1C;iBAAM;gBACL,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;aAC/C;YAED,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE;gBAC3B,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;aAC/C;YAED,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,KAAK;gBACtE,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,mBAAU,
|
|
1
|
+
{"version":3,"sources":["../../../src/loader/require/RequireLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAA6B;AAC7B,mCAAyD;AACzD,mDAA8C;AAC9C,kEAA6D;AAE7D,+CAA0C;AAK1C,MAAa,aAAc,SAAQ,2CAAoD;IAGrE,OAAO,CAAC,KAAuB;;YAC7C,IAAI,MAAM,GAAG,IAAI,6BAAa,CAAC,KAAK,CAAC,CAAC;YAEtC,wDAAwD;YACxD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;YAC7C,IAAI,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA,uBAAuB;YAE3E,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE;gBACxD,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;aAChD;YAED,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC1C;iBAAM;gBACL,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;aAC/C;YAED,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE;gBAC3B,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;aAC/C;YAED,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,KAAK;gBACtE,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAA,mBAAU,EAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,cAAc,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;oBACpG,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACjC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACjD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7B;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAGK,UAAU,CAAC,IAAY,EAAE,GAAG,IAAW;;YAC3C,IAAI,OAAO,GAAQ,EAAC,WAAW,EAAE,QAAQ,EAAC,CAAC;YAE3C,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,EAAE;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;aACrB;YAED,IAAI,OAAO,GAAG,IAAA,eAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;gBAC9C,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,IAAA,YAAG,EAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC/C,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC3B,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;KAAA;IAGD,MAAM,CAAO,UAAU,CAAC,MAAqB,EAAE,IAAY,EAAE,GAAG,IAAW;;YACzE,IAAI,QAAQ,GAAG,IAAI,GAAG,eAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBACvC,OAAO,IAAI,OAAO,CAAC,UAAU,GAAG,EAAE,GAAG;oBACnC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;wBAE9C,IAAI,MAAM,EAAE,GAAG,CAAC;wBAChB,IAAI;4BACF,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;yBACvD;wBAAC,OAAO,IAAI,EAAE;4BACb,GAAG,GAAG,IAAI,CAAC;4BACX,GAAG,CAAC,GAAG,CAAC,CAAC;yBACV;wBACD,IAAI,CAAC,GAAG,EAAE;4BACR,GAAG,CAAC,MAAM,CAAC,CAAC;yBACb;qBACF;yBAAM,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;wBAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,GAAU,EAAE,MAAW;4BACzC,IAAI,GAAG,EAAE;gCACP,GAAG,CAAC,GAAG,CAAC,CAAC;6BACV;iCAAM;gCACL,GAAG,CAAC,MAAM,CAAC,CAAC;6BACb;wBACH,CAAC,CAAC,CAAC;wBACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;qBAC9C;yBAAM;wBACL,GAAG,CAAC,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;qBAC9F;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;QAEH,CAAC;KAAA;CAGF;AA7FD,sCA6FC","file":"RequireLoader.js","sourcesContent":["import * as path from 'path';\nimport {filter, isFunction, isObject, map} from 'lodash';\nimport {RequireHandle} from './RequireHandle';\nimport {AbstractModuleLoader} from '../AbstractModuleLoader';\nimport {ModuleDescriptor} from '../../registry/ModuleDescriptor';\nimport {Helper} from '../../utils/Helper';\nimport {IRequireOptions} from './IRequireOptions';\nimport {IRequireLoader} from './IRequireLoader';\n\n\nexport class RequireLoader extends AbstractModuleLoader<RequireHandle, IRequireOptions> implements IRequireLoader {\n\n\n protected async loadOne(modul: ModuleDescriptor): Promise<RequireHandle> {\n let handle = new RequireHandle(modul);\n\n // necassary to extend the search directories of require\n let _module = this.registry.options().module;\n let new_node_modules_dir = path.dirname(modul.path);//split.join(path.sep);\n\n if (_module['paths'].indexOf(new_node_modules_dir) == -1) {\n _module['paths'].unshift(new_node_modules_dir);\n }\n\n if (modul.internal) {\n handle.ref = _module.require(modul.name);\n } else {\n handle.ref = _module.require(modul.getMain());\n }\n\n if (handle.ref.exposesHooks) {\n handle.exposesHooks = handle.ref.exposesHooks;\n }\n\n Object.getOwnPropertyNames(handle.ref).forEach(function (val, idx, array) {\n if (handle.ref[val] && isFunction(handle.ref[val]) && val != 'exposesHooks' && val.match(/^on[A-Z]/)) {\n let _val = val.replace('on', '');\n _val = _val[0].toLowerCase() + _val.substring(1);\n handle.usesHooks.push(_val);\n }\n });\n\n return handle;\n }\n\n\n async invokeHook(hook: string, ...args: any[]) {\n let options: any = {concurrency: Infinity};\n\n if (isObject(hook)) {\n options = hook;\n hook = options.hook;\n }\n\n let handles = filter(this._handles, function (_x) {\n return _x.usesHooks.indexOf(hook) > -1;\n });\n\n return await Promise.all(map(handles, (handle) => {\n let _args = [handle, hook];\n _args = _args.concat(args);\n return RequireLoader.handleCall.apply(null, _args);\n }));\n }\n\n\n static async handleCall(handle: RequireHandle, hook: string, ...args: any[]): Promise<any> {\n let hookCall = 'on' + Helper.ucfirst(hook);\n\n if (handle.usesHooks.indexOf(hook) > -1) {\n return new Promise(function (res, rej) {\n if (handle.ref[hookCall].length == args.length) {\n\n let result, err;\n try {\n result = handle.ref[hookCall].apply(handle.ref, args);\n } catch (_err) {\n err = _err;\n rej(err);\n }\n if (!err) {\n res(result);\n }\n } else if (handle.ref[hookCall].length == (args.length + 1)) {\n args.push(function (err: Error, result: any) {\n if (err) {\n rej(err);\n } else {\n res(result);\n }\n });\n handle.ref[hookCall].apply(handle.ref, args);\n } else {\n rej(new Error('wrong defined function ' + hook + ' ' + hookCall + ' ' + handle.module.name));\n }\n });\n } else {\n return null;\n }\n\n }\n\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -40,7 +40,7 @@ class SettingsLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
|
|
|
40
40
|
throw new Error('Cannot load settings from ' + ext);
|
|
41
41
|
}
|
|
42
42
|
if (this._options.path) {
|
|
43
|
-
settings = lodash_1.get(settings, this._options.path);
|
|
43
|
+
settings = (0, lodash_1.get)(settings, this._options.path);
|
|
44
44
|
}
|
|
45
45
|
handle.settings = settings;
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/loader/settings/SettingsLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA2B;AAC3B,kEAA6D;AAE7D,qDAAgD;AAEhD,+CAA0C;AAC1C,0CAA8C;AAI9C,MAAa,cAAe,SAAQ,2CAAsD;IAGxF,WAAW;QACT,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAC5B,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;SACtC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEe,OAAO,CAAC,KAAuB;;YAC7C,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,QAAQ,GAAG,oBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,GAAG,GAAG,oBAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAErD,IAAI,oBAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACrC,MAAM,GAAG,IAAI,+BAAc,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,IAAI,GAAG,MAAM,eAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAElB,QAAQ,GAAG,EAAE;oBACX,KAAK,MAAM;wBACT,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC7C,MAAM;oBACR;wBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAC;iBACvD;gBAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACtB,QAAQ,GAAG,YAAG,
|
|
1
|
+
{"version":3,"sources":["../../../src/loader/settings/SettingsLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA2B;AAC3B,kEAA6D;AAE7D,qDAAgD;AAEhD,+CAA0C;AAC1C,0CAA8C;AAI9C,MAAa,cAAe,SAAQ,2CAAsD;IAGxF,WAAW;QACT,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAC5B,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;SACtC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEe,OAAO,CAAC,KAAuB;;YAC7C,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,QAAQ,GAAG,oBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjE,IAAI,GAAG,GAAG,oBAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAErD,IAAI,oBAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACrC,MAAM,GAAG,IAAI,+BAAc,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,IAAI,GAAG,MAAM,eAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC3C,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAElB,QAAQ,GAAG,EAAE;oBACX,KAAK,MAAM;wBACT,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC7C,MAAM;oBACR;wBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAC;iBACvD;gBAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACtB,QAAQ,GAAG,IAAA,YAAG,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC9C;gBAED,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC5B;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CAGF;AAxCD,wCAwCC","file":"SettingsLoader.js","sourcesContent":["import {get} from 'lodash';\nimport {AbstractModuleLoader} from '../AbstractModuleLoader';\nimport {ModuleDescriptor} from '../../registry/ModuleDescriptor';\nimport {SettingsHandle} from './SettingsHandle';\nimport {ISettingsOptions} from './ISettingsOptions';\nimport {Helper} from '../../utils/Helper';\nimport {PlatformUtils} from '@allgemein/base';\nimport {ISettingsLoader} from './ISettingsLoader';\n\n\nexport class SettingsLoader extends AbstractModuleLoader<SettingsHandle, ISettingsOptions> implements ISettingsLoader {\n\n\n getSettings() {\n let settings: any = {};\n for (let x of this.handles()) {\n settings[x.module.name] = x.settings;\n }\n return settings;\n }\n\n protected async loadOne(modul: ModuleDescriptor): Promise<SettingsHandle> {\n let handle = null;\n let filepath = PlatformUtils.join(modul.path, this._options.ref);\n let ext = PlatformUtils.pathExtname(filepath, false);\n\n if (PlatformUtils.fileExist(filepath)) {\n handle = new SettingsHandle(modul);\n let file = await Helper.readFile(filepath);\n let settings = {};\n\n switch (ext) {\n case 'json':\n settings = JSON.parse(file.toString('utf8'));\n break;\n default:\n throw new Error('Cannot load settings from ' + ext);\n }\n\n if (this._options.path) {\n settings = get(settings, this._options.path);\n }\n\n handle.settings = settings;\n }\n\n return handle;\n }\n\n\n}\n"],"sourceRoot":"../.."}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allgemein/moduls",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.6",
|
|
4
4
|
"description": "Commons-moduls handles and manages contextual moduls for complex and modular applications. ",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"browser": {
|
|
@@ -31,19 +31,20 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://github.com/allgemein-node/moduls#readme",
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@allgemein/packaging": "^1.
|
|
34
|
+
"@allgemein/packaging": "^1.2.14",
|
|
35
35
|
"@testdeck/mocha": "^0.1.2",
|
|
36
|
-
"@types/chai": "^4.2.
|
|
37
|
-
"@types/glob": "^7.1.
|
|
38
|
-
"@types/gulp": "^4.0.
|
|
39
|
-
"@types/lodash": "^4.14.
|
|
40
|
-
"@types/
|
|
41
|
-
"@types/
|
|
36
|
+
"@types/chai": "^4.2.22",
|
|
37
|
+
"@types/glob": "^7.1.4",
|
|
38
|
+
"@types/gulp": "^4.0.9",
|
|
39
|
+
"@types/lodash": "^4.14.175",
|
|
40
|
+
"@types/micromatch": "^4.0.2",
|
|
41
|
+
"@types/mocha": "^9.0.0",
|
|
42
|
+
"@types/node": "^16.11.0",
|
|
42
43
|
"chai": "^4.3.4",
|
|
43
|
-
"codecov": "^3.8.
|
|
44
|
+
"codecov": "^3.8.3",
|
|
44
45
|
"codelyzer": "^6.0.2",
|
|
45
46
|
"del": "6.0.0",
|
|
46
|
-
"glob": "^7.
|
|
47
|
+
"glob": "^7.2.0",
|
|
47
48
|
"gulp": "4.0.2",
|
|
48
49
|
"gulp-bump": "^3.2.0",
|
|
49
50
|
"gulp-clean": "^0.4.0",
|
|
@@ -52,16 +53,17 @@
|
|
|
52
53
|
"gulp-sourcemaps": "^3.0.0",
|
|
53
54
|
"gulp-typescript": "^5.0.1",
|
|
54
55
|
"merge-stream": "^2.0.0",
|
|
55
|
-
"mocha": "^
|
|
56
|
+
"mocha": "^9.1.3",
|
|
56
57
|
"nyc": "^15.1.0",
|
|
57
|
-
"ts-node": "^
|
|
58
|
+
"ts-node": "^10.3.0",
|
|
58
59
|
"tslint": "^6.1.2",
|
|
59
|
-
"typescript": "4.
|
|
60
|
+
"typescript": "4.4.4"
|
|
60
61
|
},
|
|
61
62
|
"dependencies": {
|
|
62
|
-
"@allgemein/base": "^1.
|
|
63
|
+
"@allgemein/base": "^1.6.2",
|
|
64
|
+
"micromatch": "^4.0.5"
|
|
63
65
|
},
|
|
64
66
|
"peerDependencies": {
|
|
65
|
-
"glob": "^7.
|
|
67
|
+
"glob": "^7.2.0"
|
|
66
68
|
}
|
|
67
69
|
}
|
|
@@ -32,4 +32,5 @@ export declare class ModuleRegistry implements IModuleRegistry {
|
|
|
32
32
|
createRequireLoader(options?: IRequireOptions): Promise<RequireLoader>;
|
|
33
33
|
createClassesLoader(options?: IClassesOptions): Promise<ClassesLoader>;
|
|
34
34
|
createSettingsLoader(options?: ISettingsOptions): Promise<SettingsLoader>;
|
|
35
|
+
save(): void;
|
|
35
36
|
}
|
|
@@ -23,13 +23,13 @@ class ModuleRegistry {
|
|
|
23
23
|
constructor(options) {
|
|
24
24
|
this._modules = [];
|
|
25
25
|
this.paths = [];
|
|
26
|
-
lodash_1.defaults(options, Constants_1.MODUL_REGISTRY_DEFAULT_OPTIONS);
|
|
26
|
+
(0, lodash_1.defaults)(options, Constants_1.MODUL_REGISTRY_DEFAULT_OPTIONS);
|
|
27
27
|
this._modules = [];
|
|
28
28
|
this._options = options;
|
|
29
29
|
this.paths = options.paths; // Helper.checkPaths(options.paths || []);
|
|
30
30
|
this._options.depth = this._options.depth || 2;
|
|
31
31
|
this._options.pattern.unshift(Constants_2.C_NODE_MODULES);
|
|
32
|
-
this._options.pattern = lodash_1.uniq(this._options.pattern);
|
|
32
|
+
this._options.pattern = (0, lodash_1.uniq)(this._options.pattern);
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Check if cache is present
|
|
@@ -53,12 +53,12 @@ class ModuleRegistry {
|
|
|
53
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
54
|
ModuleDescriptor_1.ModuleDescriptor.INC = 0;
|
|
55
55
|
this._modules = [];
|
|
56
|
-
let modules_lists = yield Promise.all(lodash_1.map(this.paths, this._scan_module_path.bind(this)));
|
|
56
|
+
let modules_lists = yield Promise.all((0, lodash_1.map)(this.paths, this._scan_module_path.bind(this)));
|
|
57
57
|
let to_register = [];
|
|
58
58
|
let one_list = [].concat(...modules_lists);
|
|
59
59
|
for (let __modul of one_list) {
|
|
60
|
-
let _modul = lodash_1.find(to_register, function (_x) {
|
|
61
|
-
return _x.name
|
|
60
|
+
let _modul = (0, lodash_1.find)(to_register, function (_x) {
|
|
61
|
+
return _x.name === __modul.name;
|
|
62
62
|
});
|
|
63
63
|
if (!_modul) {
|
|
64
64
|
to_register.push(__modul);
|
|
@@ -101,7 +101,7 @@ class ModuleRegistry {
|
|
|
101
101
|
if (this._options.include) {
|
|
102
102
|
options.include = this._options.include;
|
|
103
103
|
}
|
|
104
|
-
if (lodash_1.isNull(packageJsons)) {
|
|
104
|
+
if ((0, lodash_1.isNull)(packageJsons)) {
|
|
105
105
|
packageJsons = [];
|
|
106
106
|
if (base_1.PlatformUtils.fileExist(base_1.PlatformUtils.join(node_modules_dir, Constants_2.C_PACKAGE_JSON))) {
|
|
107
107
|
options.depth++;
|
|
@@ -121,7 +121,7 @@ class ModuleRegistry {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
return lodash_1.map(packageJsons, (module) => {
|
|
124
|
+
return (0, lodash_1.map)(packageJsons, (module) => {
|
|
125
125
|
return ModuleDescriptor_1.ModuleDescriptor.fromOptions(module);
|
|
126
126
|
});
|
|
127
127
|
});
|
|
@@ -129,19 +129,19 @@ class ModuleRegistry {
|
|
|
129
129
|
_build_registry(modules) {
|
|
130
130
|
this._modules = modules;
|
|
131
131
|
for (let _modul of this._modules) {
|
|
132
|
-
let dependencies = lodash_1.concat([], Object.keys(_modul.dependencies), Object.keys(_modul.peerDependencies));
|
|
132
|
+
let dependencies = (0, lodash_1.concat)([], Object.keys(_modul.dependencies), Object.keys(_modul.peerDependencies));
|
|
133
133
|
let submoduls = [];
|
|
134
|
-
lodash_1.map(lodash_1.values(_modul.sub_modules), v => {
|
|
134
|
+
(0, lodash_1.map)((0, lodash_1.values)(_modul.sub_modules), v => {
|
|
135
135
|
submoduls.push(...v.modules);
|
|
136
136
|
});
|
|
137
|
-
let children = lodash_1.filter(this._modules, function (_x) {
|
|
137
|
+
let children = (0, lodash_1.filter)(this._modules, function (_x) {
|
|
138
138
|
return dependencies.indexOf(_x.name) > -1;
|
|
139
139
|
});
|
|
140
140
|
for (let _dep_modul of children) {
|
|
141
141
|
_modul.child_modules.push(_dep_modul.name);
|
|
142
142
|
}
|
|
143
|
-
_modul.child_modules = lodash_1.uniq(_modul.child_modules);
|
|
144
|
-
let submodules = lodash_1.filter(this._modules, (_x) => {
|
|
143
|
+
_modul.child_modules = (0, lodash_1.uniq)(_modul.child_modules);
|
|
144
|
+
let submodules = (0, lodash_1.filter)(this._modules, (_x) => {
|
|
145
145
|
return submoduls.indexOf(_x.name) > -1;
|
|
146
146
|
});
|
|
147
147
|
submodules.forEach((m) => {
|
|
@@ -152,7 +152,7 @@ class ModuleRegistry {
|
|
|
152
152
|
return a.child_modules.length - b.child_modules.length;
|
|
153
153
|
});
|
|
154
154
|
for (let first of this._modules) {
|
|
155
|
-
let dependents = lodash_1.filter(this._modules, function (other) {
|
|
155
|
+
let dependents = (0, lodash_1.filter)(this._modules, function (other) {
|
|
156
156
|
if (other.name == first.name) {
|
|
157
157
|
return false;
|
|
158
158
|
}
|
|
@@ -198,6 +198,8 @@ class ModuleRegistry {
|
|
|
198
198
|
return this.loader(SettingsLoader_1.SettingsLoader, options);
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
|
+
save() {
|
|
202
|
+
}
|
|
201
203
|
}
|
|
202
204
|
exports.ModuleRegistry = ModuleRegistry;
|
|
203
205
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/registry/ModuleRegistry.ts"],"names":[],"mappings":"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","file":"ModuleRegistry.js","sourcesContent":["import {concat, defaults, filter, find, isNull, map, uniq, values} from 'lodash';\nimport {ModuleDescriptor} from './ModuleDescriptor';\nimport {Helper} from '../utils/Helper';\nimport {IModuleRegistryOptions} from './IModuleRegistryOptions';\nimport {CryptUtils, PlatformUtils} from '@allgemein/base';\nimport {INpmlsOptions} from '../utils/INpmlsOptions';\nimport {IRequireOptions} from '../loader/require/IRequireOptions';\nimport {RequireLoader} from '../loader/require/RequireLoader';\nimport {ClassesLoader} from '../loader/classes/ClassesLoader';\nimport {IClassesOptions} from '../loader/classes/IClassesOptions';\nimport {ISettingsOptions} from '../loader/settings/ISettingsOptions';\nimport {SettingsLoader} from '../loader/settings/SettingsLoader';\nimport {MODUL_REGISTRY_DEFAULT_OPTIONS} from './Constants';\nimport {IModuleRegistry} from './IModuleRegistry';\nimport {IModuleLoader} from '../loader/IModuleLoader';\nimport {C_NODE_MODULES, C_PACKAGE_JSON} from '../Constants';\n\n\nexport class ModuleRegistry implements IModuleRegistry {\n\n private readonly _options: IModuleRegistryOptions;\n\n private _modules: ModuleDescriptor[] = [];\n\n paths: string[] = [];\n\n\n constructor(options: IModuleRegistryOptions) {\n defaults(options, MODUL_REGISTRY_DEFAULT_OPTIONS);\n this._modules = [];\n this._options = options;\n this.paths = options.paths; // Helper.checkPaths(options.paths || []);\n this._options.depth = this._options.depth || 2;\n this._options.pattern.unshift(C_NODE_MODULES);\n this._options.pattern = uniq(this._options.pattern);\n }\n\n\n /**\n * Check if cache is present\n */\n hasCache() {\n return !!this._options.cache;\n }\n\n /**\n * Return the cache object\n */\n getCache() {\n return this._options.cache;\n }\n\n options() {\n return this._options;\n }\n\n getOptions() {\n return this.options();\n }\n\n\n async rebuild(): Promise<IModuleRegistry> {\n ModuleDescriptor.INC = 0;\n this._modules = [];\n\n let modules_lists = await Promise.all(\n map(this.paths, this._scan_module_path.bind(this))\n );\n\n let to_register = [];\n let one_list = [].concat(...modules_lists);\n\n for (let __modul of one_list) {\n let _modul = find(to_register, function (_x) {\n return _x.name == __modul.name;\n });\n\n if (!_modul) {\n to_register.push(__modul);\n } else {\n _modul.multi_implements = true;\n // TODO: if module already exists check version and replace them\n }\n }\n\n // await Promise.all(map(modules, this.load.bind(this)));\n this._build_registry(to_register);\n return this;\n }\n\n modules(): ModuleDescriptor[] {\n return this._modules;\n }\n\n getModules() {\n return this.modules();\n }\n\n\n private async _scan_module_path(node_modules_dir: string): Promise<ModuleDescriptor[]> {\n\n const cacheKey = [ModuleRegistry.name.toLowerCase(), 'scan_modul_path', CryptUtils.shorthash(node_modules_dir)].join('--');\n let packageJsons = null;\n if (this.hasCache()) {\n try {\n packageJsons = await this.getCache().get(cacheKey);\n } catch (e) {\n }\n }\n\n let options: INpmlsOptions = {\n filter: this._options.packageFilter,\n depth: this._options.depth,\n subModulePaths: this._options.pattern,\n };\n if (this._options.exclude) {\n options.exclude = this._options.exclude;\n }\n if (this._options.include) {\n options.include = this._options.include;\n }\n\n if (isNull(packageJsons)) {\n packageJsons = [];\n if (PlatformUtils.fileExist(PlatformUtils.join(node_modules_dir, C_PACKAGE_JSON))) {\n options.depth++;\n let dirname = PlatformUtils.dirname(node_modules_dir);\n let basename = PlatformUtils.basename(node_modules_dir);\n // TODO!!!!\n packageJsons = await Helper.lookupNpmInDirectory(dirname, basename, [], options);\n } else {\n packageJsons = await Helper.npmls(node_modules_dir, options);\n }\n\n if (this.hasCache() && packageJsons) {\n try {\n this.getCache().set(cacheKey, packageJsons);\n } catch (e) {\n\n }\n }\n }\n\n return map(packageJsons, (module: any) => {\n return ModuleDescriptor.fromOptions(module);\n });\n }\n\n\n private _build_registry(modules: ModuleDescriptor[]) {\n this._modules = modules;\n\n for (let _modul of this._modules) {\n let dependencies = concat([], Object.keys(_modul.dependencies), Object.keys(_modul.peerDependencies));\n let submoduls: string[] = [];\n map(values(_modul.sub_modules), v => {\n submoduls.push(...v.modules);\n });\n\n let children = filter(this._modules, function (_x) {\n return dependencies.indexOf(_x.name) > -1;\n });\n\n for (let _dep_modul of children) {\n _modul.child_modules.push(_dep_modul.name);\n }\n _modul.child_modules = uniq(_modul.child_modules);\n\n let submodules = filter(this._modules, (_x) => {\n return submoduls.indexOf(_x.name) > -1;\n });\n\n submodules.forEach((m) => {\n m.submodule = true;\n });\n\n }\n\n this._modules.sort((a: ModuleDescriptor, b: ModuleDescriptor) => {\n return a.child_modules.length - b.child_modules.length;\n });\n\n for (let first of this._modules) {\n\n let dependents = filter(this._modules, function (other) {\n if (other.name == first.name) {\n return false;\n }\n\n if (other.child_modules.indexOf(first.name) > -1) {\n return true;\n }\n return false;\n });\n\n if (dependents.length) {\n for (let x of dependents) {\n x.weight += (first.weight + 1);\n }\n } else {\n // ???\n }\n }\n\n this._modules.sort((a, b) => {\n if (a.weight === b.weight) {\n return a.name.localeCompare(b.name);\n }\n return a.weight - b.weight;\n });\n\n return this._modules;\n }\n\n\n async loader<T extends IModuleLoader<any>, OPT>(loaderClazz: Function, options?: OPT): Promise<T> {\n let instance = <T>Reflect.construct(loaderClazz, [this, options]);\n await instance.load(this.modules());\n return instance;\n }\n\n createRequireLoader(options?: IRequireOptions): Promise<RequireLoader> {\n return this.loader<RequireLoader, IRequireOptions>(RequireLoader, options);\n }\n\n async createClassesLoader(options?: IClassesOptions): Promise<ClassesLoader> {\n return this.loader<ClassesLoader, IClassesOptions>(ClassesLoader, options);\n }\n\n async createSettingsLoader(options?: ISettingsOptions): Promise<SettingsLoader> {\n return this.loader<SettingsLoader, ISettingsOptions>(SettingsLoader, options);\n }\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../../src/registry/ModuleRegistry.ts"],"names":[],"mappings":"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","file":"ModuleRegistry.js","sourcesContent":["import {concat, defaults, filter, find, isNull, map, uniq, values} from 'lodash';\nimport {ModuleDescriptor} from './ModuleDescriptor';\nimport {Helper} from '../utils/Helper';\nimport {IModuleRegistryOptions} from './IModuleRegistryOptions';\nimport {CryptUtils, PlatformUtils} from '@allgemein/base';\nimport {INpmlsOptions} from '../utils/INpmlsOptions';\nimport {IRequireOptions} from '../loader/require/IRequireOptions';\nimport {RequireLoader} from '../loader/require/RequireLoader';\nimport {ClassesLoader} from '../loader/classes/ClassesLoader';\nimport {IClassesOptions} from '../loader/classes/IClassesOptions';\nimport {ISettingsOptions} from '../loader/settings/ISettingsOptions';\nimport {SettingsLoader} from '../loader/settings/SettingsLoader';\nimport {MODUL_REGISTRY_DEFAULT_OPTIONS} from './Constants';\nimport {IModuleRegistry} from './IModuleRegistry';\nimport {IModuleLoader} from '../loader/IModuleLoader';\nimport {C_NODE_MODULES, C_PACKAGE_JSON} from '../Constants';\n\n\nexport class ModuleRegistry implements IModuleRegistry {\n\n private readonly _options: IModuleRegistryOptions;\n\n private _modules: ModuleDescriptor[] = [];\n\n paths: string[] = [];\n\n\n constructor(options: IModuleRegistryOptions) {\n defaults(options, MODUL_REGISTRY_DEFAULT_OPTIONS);\n this._modules = [];\n this._options = options;\n this.paths = options.paths; // Helper.checkPaths(options.paths || []);\n this._options.depth = this._options.depth || 2;\n this._options.pattern.unshift(C_NODE_MODULES);\n this._options.pattern = uniq(this._options.pattern);\n }\n\n\n /**\n * Check if cache is present\n */\n hasCache() {\n return !!this._options.cache;\n }\n\n /**\n * Return the cache object\n */\n getCache() {\n return this._options.cache;\n }\n\n options() {\n return this._options;\n }\n\n getOptions() {\n return this.options();\n }\n\n\n async rebuild(): Promise<IModuleRegistry> {\n ModuleDescriptor.INC = 0;\n this._modules = [];\n\n let modules_lists = await Promise.all(\n map(this.paths, this._scan_module_path.bind(this))\n );\n\n let to_register = [];\n let one_list = [].concat(...modules_lists);\n\n for (let __modul of one_list) {\n let _modul = find(to_register, function (_x) {\n return _x.name === __modul.name;\n });\n\n if (!_modul) {\n to_register.push(__modul);\n } else {\n _modul.multi_implements = true;\n // TODO: if module already exists check version and replace them\n }\n }\n\n // await Promise.all(map(modules, this.load.bind(this)));\n this._build_registry(to_register);\n return this;\n }\n\n modules(): ModuleDescriptor[] {\n return this._modules;\n }\n\n getModules() {\n return this.modules();\n }\n\n\n private async _scan_module_path(node_modules_dir: string): Promise<ModuleDescriptor[]> {\n\n const cacheKey = [ModuleRegistry.name.toLowerCase(), 'scan_modul_path', CryptUtils.shorthash(node_modules_dir)].join('--');\n let packageJsons = null;\n if (this.hasCache()) {\n try {\n packageJsons = await this.getCache().get(cacheKey);\n } catch (e) {\n }\n }\n\n let options: INpmlsOptions = {\n filter: this._options.packageFilter,\n depth: this._options.depth,\n subModulePaths: this._options.pattern,\n };\n if (this._options.exclude) {\n options.exclude = this._options.exclude;\n }\n if (this._options.include) {\n options.include = this._options.include;\n }\n\n if (isNull(packageJsons)) {\n packageJsons = [];\n if (PlatformUtils.fileExist(PlatformUtils.join(node_modules_dir, C_PACKAGE_JSON))) {\n options.depth++;\n let dirname = PlatformUtils.dirname(node_modules_dir);\n let basename = PlatformUtils.basename(node_modules_dir);\n // TODO!!!!\n packageJsons = await Helper.lookupNpmInDirectory(dirname, basename, [], options);\n } else {\n packageJsons = await Helper.npmls(node_modules_dir, options);\n }\n\n if (this.hasCache() && packageJsons) {\n try {\n this.getCache().set(cacheKey, packageJsons);\n } catch (e) {\n\n }\n }\n }\n\n return map(packageJsons, (module: any) => {\n return ModuleDescriptor.fromOptions(module);\n });\n }\n\n\n private _build_registry(modules: ModuleDescriptor[]) {\n this._modules = modules;\n\n for (let _modul of this._modules) {\n let dependencies = concat([], Object.keys(_modul.dependencies), Object.keys(_modul.peerDependencies));\n let submoduls: string[] = [];\n map(values(_modul.sub_modules), v => {\n submoduls.push(...v.modules);\n });\n\n let children = filter(this._modules, function (_x) {\n return dependencies.indexOf(_x.name) > -1;\n });\n\n for (let _dep_modul of children) {\n _modul.child_modules.push(_dep_modul.name);\n }\n _modul.child_modules = uniq(_modul.child_modules);\n\n let submodules = filter(this._modules, (_x) => {\n return submoduls.indexOf(_x.name) > -1;\n });\n\n submodules.forEach((m) => {\n m.submodule = true;\n });\n\n }\n\n this._modules.sort((a: ModuleDescriptor, b: ModuleDescriptor) => {\n return a.child_modules.length - b.child_modules.length;\n });\n\n for (let first of this._modules) {\n\n let dependents = filter(this._modules, function (other) {\n if (other.name == first.name) {\n return false;\n }\n\n if (other.child_modules.indexOf(first.name) > -1) {\n return true;\n }\n return false;\n });\n\n if (dependents.length) {\n for (let x of dependents) {\n x.weight += (first.weight + 1);\n }\n } else {\n // ???\n }\n }\n\n this._modules.sort((a, b) => {\n if (a.weight === b.weight) {\n return a.name.localeCompare(b.name);\n }\n return a.weight - b.weight;\n });\n\n return this._modules;\n }\n\n\n async loader<T extends IModuleLoader<any>, OPT>(loaderClazz: Function, options?: OPT): Promise<T> {\n let instance = <T>Reflect.construct(loaderClazz, [this, options]);\n await instance.load(this.modules());\n return instance;\n }\n\n createRequireLoader(options?: IRequireOptions): Promise<RequireLoader> {\n return this.loader<RequireLoader, IRequireOptions>(RequireLoader, options);\n }\n\n async createClassesLoader(options?: IClassesOptions): Promise<ClassesLoader> {\n return this.loader<ClassesLoader, IClassesOptions>(ClassesLoader, options);\n }\n\n async createSettingsLoader(options?: ISettingsOptions): Promise<SettingsLoader> {\n return this.loader<SettingsLoader, ISettingsOptions>(SettingsLoader, options);\n }\n\n\n save(){\n\n }\n}\n"],"sourceRoot":".."}
|
package/utils/Helper.js
CHANGED
|
@@ -15,7 +15,7 @@ const path_1 = require("path");
|
|
|
15
15
|
const lodash_1 = require("lodash");
|
|
16
16
|
const base_1 = require("@allgemein/base");
|
|
17
17
|
const glob = require("glob");
|
|
18
|
-
const
|
|
18
|
+
const micromatch_1 = require("micromatch");
|
|
19
19
|
const Constants_1 = require("../Constants");
|
|
20
20
|
class Helper {
|
|
21
21
|
static glob(lib_path) {
|
|
@@ -32,8 +32,8 @@ class Helper {
|
|
|
32
32
|
}
|
|
33
33
|
static readFile(file) {
|
|
34
34
|
return new Promise((resolve, reject) => {
|
|
35
|
-
if (fs_1.existsSync(file)) {
|
|
36
|
-
fs_1.readFile(file, (err, buf) => {
|
|
35
|
+
if ((0, fs_1.existsSync)(file)) {
|
|
36
|
+
(0, fs_1.readFile)(file, (err, buf) => {
|
|
37
37
|
if (err) {
|
|
38
38
|
reject(err);
|
|
39
39
|
}
|
|
@@ -54,7 +54,7 @@ class Helper {
|
|
|
54
54
|
}
|
|
55
55
|
static getPackageJson(_path) {
|
|
56
56
|
if (!/package\.json$/.test(_path)) {
|
|
57
|
-
_path = path_1.join(_path, Constants_1.C_PACKAGE_JSON);
|
|
57
|
+
_path = (0, path_1.join)(_path, Constants_1.C_PACKAGE_JSON);
|
|
58
58
|
}
|
|
59
59
|
return this.readFile(_path).then(buf => {
|
|
60
60
|
let data = buf.toString('utf8');
|
|
@@ -68,7 +68,7 @@ class Helper {
|
|
|
68
68
|
static readdir(dir) {
|
|
69
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
70
|
return new Promise((resolve, reject) => {
|
|
71
|
-
fs_1.readdir(dir, (err, files) => {
|
|
71
|
+
(0, fs_1.readdir)(dir, (err, files) => {
|
|
72
72
|
if (err) {
|
|
73
73
|
reject(err);
|
|
74
74
|
}
|
|
@@ -82,7 +82,7 @@ class Helper {
|
|
|
82
82
|
static stat(dir) {
|
|
83
83
|
return __awaiter(this, void 0, void 0, function* () {
|
|
84
84
|
return new Promise((resolve, reject) => {
|
|
85
|
-
fs_1.stat(dir, (err, stats) => {
|
|
85
|
+
(0, fs_1.stat)(dir, (err, stats) => {
|
|
86
86
|
if (err) {
|
|
87
87
|
reject(err);
|
|
88
88
|
}
|
|
@@ -103,12 +103,12 @@ class Helper {
|
|
|
103
103
|
options.level = inc + 1;
|
|
104
104
|
let modules = [];
|
|
105
105
|
let directories = yield this.getValidDirectories(node_modules_dir, options);
|
|
106
|
-
yield Promise.all(lodash_1.map(directories, (directory) => __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
yield Promise.all((0, lodash_1.map)(directories, (directory) => __awaiter(this, void 0, void 0, function* () {
|
|
107
107
|
if (/^@/.test(directory)) {
|
|
108
108
|
// is grouped
|
|
109
109
|
let _grouped_node_modules_dir = base_1.PlatformUtils.join(node_modules_dir, directory);
|
|
110
110
|
let _directories = yield this.getValidDirectories(_grouped_node_modules_dir, options);
|
|
111
|
-
return Promise.all(lodash_1.map(_directories, (_directory) => __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
return Promise.all((0, lodash_1.map)(_directories, (_directory) => __awaiter(this, void 0, void 0, function* () {
|
|
112
112
|
_directory = base_1.PlatformUtils.join(directory, _directory);
|
|
113
113
|
return Helper.lookupNpmInDirectory(node_modules_dir, _directory, modules, options);
|
|
114
114
|
})));
|
|
@@ -123,23 +123,24 @@ class Helper {
|
|
|
123
123
|
static getValidDirectories(node_modules_dir, options) {
|
|
124
124
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
125
|
let directories = yield this.readdir(node_modules_dir);
|
|
126
|
-
if (lodash_1.has(options, 'exclude') || lodash_1.has(options, 'include')) {
|
|
127
|
-
if (lodash_1.has(options, 'include') && !lodash_1.isEmpty(options.include)) {
|
|
126
|
+
if ((0, lodash_1.has)(options, 'exclude') || (0, lodash_1.has)(options, 'include')) {
|
|
127
|
+
if ((0, lodash_1.has)(options, 'include') && !(0, lodash_1.isEmpty)(options.include)) {
|
|
128
128
|
let includes = [];
|
|
129
129
|
for (const entry of options.include || []) {
|
|
130
|
-
const pattern = new
|
|
130
|
+
// const pattern = new Minimatch(entry);
|
|
131
131
|
includes = includes.concat(directories.filter((path => {
|
|
132
|
-
const _resolve = path_1.join(node_modules_dir, path);
|
|
133
|
-
return
|
|
132
|
+
const _resolve = (0, path_1.join)(node_modules_dir, path);
|
|
133
|
+
return (0, micromatch_1.isMatch)(_resolve, entry);
|
|
134
134
|
})));
|
|
135
135
|
}
|
|
136
136
|
directories = includes;
|
|
137
137
|
}
|
|
138
138
|
for (const entry of options.exclude || []) {
|
|
139
|
-
const pattern = new
|
|
140
|
-
lodash_1.remove(directories, (path => {
|
|
141
|
-
const _resolve = path_1.join(node_modules_dir, path);
|
|
142
|
-
return
|
|
139
|
+
// const pattern = new Minimatch(entry);
|
|
140
|
+
(0, lodash_1.remove)(directories, (path => {
|
|
141
|
+
const _resolve = (0, path_1.join)(node_modules_dir, path);
|
|
142
|
+
return (0, micromatch_1.isMatch)(_resolve, entry);
|
|
143
|
+
// return pattern.match(_resolve);
|
|
143
144
|
}));
|
|
144
145
|
}
|
|
145
146
|
}
|
|
@@ -148,12 +149,12 @@ class Helper {
|
|
|
148
149
|
}
|
|
149
150
|
static lookupNpmInDirectory(node_modules_dir, directory, modules = [], options) {
|
|
150
151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
-
let _path = path_1.join(node_modules_dir, directory);
|
|
152
|
-
if (!fs_1.existsSync(path_1.join(_path, Constants_1.C_PACKAGE_JSON))) {
|
|
152
|
+
let _path = (0, path_1.join)(node_modules_dir, directory);
|
|
153
|
+
if (!(0, fs_1.existsSync)((0, path_1.join)(_path, Constants_1.C_PACKAGE_JSON))) {
|
|
153
154
|
return;
|
|
154
155
|
}
|
|
155
156
|
let package_json = yield this.getPackageJson(_path);
|
|
156
|
-
let modul_exists = lodash_1.find(modules, x => x.name == directory);
|
|
157
|
+
let modul_exists = (0, lodash_1.find)(modules, x => x.name == directory);
|
|
157
158
|
if (modul_exists) {
|
|
158
159
|
return;
|
|
159
160
|
}
|
|
@@ -168,7 +169,7 @@ class Helper {
|
|
|
168
169
|
modules.push(package_json);
|
|
169
170
|
if (options.subModulePaths) {
|
|
170
171
|
// look in subpath like "node_modules"
|
|
171
|
-
let results = yield Promise.all(lodash_1.map(options.subModulePaths, subpath => {
|
|
172
|
+
let results = yield Promise.all((0, lodash_1.map)(options.subModulePaths, subpath => {
|
|
172
173
|
return this.look(_path, subpath, modules, options);
|
|
173
174
|
}));
|
|
174
175
|
for (let res of results) {
|
|
@@ -190,7 +191,7 @@ class Helper {
|
|
|
190
191
|
static look(_path, subpath, modules = [], options) {
|
|
191
192
|
return __awaiter(this, void 0, void 0, function* () {
|
|
192
193
|
// FIXME detect the node_modules path
|
|
193
|
-
let _new_node_module_dir = path_1.join(_path, subpath);
|
|
194
|
+
let _new_node_module_dir = (0, path_1.join)(_path, subpath);
|
|
194
195
|
let info = {
|
|
195
196
|
subpath: subpath,
|
|
196
197
|
has_modules: false,
|
|
@@ -223,11 +224,11 @@ class Helper {
|
|
|
223
224
|
static checkPaths(paths) {
|
|
224
225
|
let ret_paths = [];
|
|
225
226
|
for (let _path of paths) {
|
|
226
|
-
_path = path_1.resolve(_path);
|
|
227
|
-
let _try_path = path_1.join(_path, Constants_1.C_NODE_MODULES);
|
|
228
|
-
let _try_package = path_1.join(_path, Constants_1.C_PACKAGE_JSON);
|
|
229
|
-
if (fs_1.existsSync(_path)) {
|
|
230
|
-
if (fs_1.existsSync(_try_package) && fs_1.existsSync(_try_path)) {
|
|
227
|
+
_path = (0, path_1.resolve)(_path);
|
|
228
|
+
let _try_path = (0, path_1.join)(_path, Constants_1.C_NODE_MODULES);
|
|
229
|
+
let _try_package = (0, path_1.join)(_path, Constants_1.C_PACKAGE_JSON);
|
|
230
|
+
if ((0, fs_1.existsSync)(_path)) {
|
|
231
|
+
if ((0, fs_1.existsSync)(_try_package) && (0, fs_1.existsSync)(_try_path)) {
|
|
231
232
|
_path = _try_path;
|
|
232
233
|
}
|
|
233
234
|
}
|
package/utils/Helper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/Helper.ts"],"names":[],"mappings":"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","file":"Helper.js","sourcesContent":["import {existsSync, readdir, readFile, stat, Stats} from 'fs';\nimport {join, resolve} from 'path';\nimport {find, has, isEmpty, map, remove} from 'lodash';\nimport {PlatformUtils} from '@allgemein/base';\nimport {INpmlsOptions} from './INpmlsOptions';\nimport {ISubModule} from '../registry/ISubModule';\nimport * as glob from 'glob';\nimport {Minimatch} from 'minimatch';\nimport {C_NODE_MODULES, C_PACKAGE_JSON} from '../Constants';\n\n\nexport class Helper {\n\n static glob(lib_path: string): Promise<string[]> {\n return new Promise((resolve, reject) => {\n glob(lib_path, ((err, matches: string[]) => {\n if (err) {\n reject(err);\n } else {\n resolve(matches);\n }\n }));\n });\n }\n\n static readFile(file: string): Promise<Buffer> {\n return new Promise((resolve, reject) => {\n if (existsSync(file)) {\n readFile(file, (err, buf) => {\n if (err) {\n reject(err);\n } else {\n try {\n resolve(buf);\n } catch (err) {\n reject(err);\n }\n }\n });\n } else {\n reject(new Error('cant find file ' + file));\n }\n });\n\n }\n\n static getPackageJson(_path: string): Promise<any> {\n if (!/package\\.json$/.test(_path)) {\n _path = join(_path, C_PACKAGE_JSON);\n }\n return this.readFile(_path).then(buf => {\n let data = buf.toString('utf8');\n let json = JSON.parse(data);\n return json;\n });\n }\n\n static ucfirst(word: string): string {\n return word[0].toUpperCase() + word.substring(1).toLowerCase();\n }\n\n static async readdir(dir: string): Promise<string[]> {\n return new Promise<string[]>((resolve, reject) => {\n readdir(dir, (err: NodeJS.ErrnoException, files: string[]) => {\n if (err) {\n reject(err);\n } else {\n resolve(files);\n }\n });\n });\n }\n\n static async stat(dir: string): Promise<Stats> {\n return new Promise<Stats>((resolve, reject) => {\n stat(dir, (err: NodeJS.ErrnoException, stats: Stats) => {\n if (err) {\n reject(err);\n } else {\n resolve(stats);\n }\n });\n });\n }\n\n\n static async npmls(node_modules_dir: string, options: INpmlsOptions = {depth: 1, level: 0}): Promise<any[]> {\n let depth = options.depth;\n let inc = options.level;\n\n if (inc >= depth) {\n return [];\n }\n\n options.level = inc + 1;\n\n let modules: any[] = [];\n let directories = await this.getValidDirectories(node_modules_dir, options);\n await Promise.all(map(directories, async (directory: string) => {\n if (/^@/.test(directory)) {\n // is grouped\n let _grouped_node_modules_dir = PlatformUtils.join(node_modules_dir, directory);\n let _directories = await this.getValidDirectories(_grouped_node_modules_dir, options);\n return Promise.all(map(_directories, async (_directory: string) => {\n _directory = PlatformUtils.join(directory, _directory);\n return Helper.lookupNpmInDirectory(node_modules_dir, _directory, modules, options);\n }));\n } else {\n return Helper.lookupNpmInDirectory(node_modules_dir, directory, modules, options);\n }\n\n }));\n return modules;\n }\n\n static async getValidDirectories(node_modules_dir: string, options: INpmlsOptions) {\n let directories = await this.readdir(node_modules_dir);\n if (has(options, 'exclude') || has(options, 'include')) {\n\n if (has(options, 'include') && !isEmpty(options.include)) {\n let includes: string[] = [];\n for (const entry of options.include || []) {\n const pattern = new Minimatch(entry);\n includes = includes.concat(\n directories.filter((path => {\n const _resolve = join(node_modules_dir, path);\n return pattern.match(_resolve);\n }))\n );\n }\n directories = includes;\n }\n\n for (const entry of options.exclude || []) {\n const pattern = new Minimatch(entry);\n remove(directories, (path => {\n const _resolve = join(node_modules_dir, path);\n return pattern.match(_resolve);\n }));\n }\n }\n return directories;\n }\n\n\n static async lookupNpmInDirectory(node_modules_dir: string, directory: string, modules: any[] = [], options?: INpmlsOptions): Promise<any> {\n let _path = join(node_modules_dir, directory);\n if (!existsSync(join(_path, C_PACKAGE_JSON))) {\n return;\n }\n\n let package_json = await this.getPackageJson(_path);\n let modul_exists = find(modules, x => x.name == directory);\n\n if (modul_exists) {\n return;\n }\n\n package_json.path = PlatformUtils.pathResolve(_path);\n package_json.child_modules = [];\n package_json.sub_modules = {};\n\n if (options && options.filter) {\n if (!options.filter(package_json)) {\n return;\n }\n }\n modules.push(package_json);\n\n if (options.subModulePaths) {\n // look in subpath like \"node_modules\"\n let results = await Promise.all(map(options.subModulePaths, subpath => {\n return this.look(_path, subpath, modules, options);\n }));\n\n for (let res of results) {\n if (res.subpath === C_NODE_MODULES) {\n package_json.has_node_modules = res.has_modules;\n package_json.child_modules = res.child_modules;\n } else {\n package_json.sub_modules[res.subpath] = <ISubModule>{\n has_modules: res.has_modules,\n modules: res.child_modules\n };\n }\n }\n }\n return modules;\n }\n\n\n static async look(_path: string, subpath: string, modules: any[] = [], options?: INpmlsOptions) {\n // FIXME detect the node_modules path\n let _new_node_module_dir = join(_path, subpath);\n let info: { subpath: string, has_modules: boolean, child_modules: string[] } = {\n subpath: subpath,\n has_modules: false,\n child_modules: []\n };\n if (PlatformUtils.fileExist(_new_node_module_dir)) {\n try {\n let stat = await this.stat(_new_node_module_dir);\n if (stat && stat.isDirectory()) {\n let _modules = await this.npmls(_new_node_module_dir, options);\n info.has_modules = true;\n for (let _x of _modules) {\n info.child_modules.push(_x.name);\n let _modul_exists = modules.find(function (_m) {\n return _m.name == _x.name;\n });\n if (!_modul_exists) {\n modules.push(_x);\n }\n }\n }\n } catch (err) {\n console.error(err);\n }\n }\n\n return info;\n }\n\n static checkPaths(paths: string[]) {\n let ret_paths = [];\n for (let _path of paths) {\n _path = resolve(_path);\n let _try_path = join(_path, C_NODE_MODULES);\n let _try_package = join(_path, C_PACKAGE_JSON);\n if (existsSync(_path)) {\n if (existsSync(_try_package) && existsSync(_try_path)) {\n _path = _try_path;\n }\n } else {\n throw new Error('checking path ' + _path + ' doesn\\'t exists');\n }\n ret_paths.push(_path);\n }\n return ret_paths;\n }\n\n\n /**\n * Checks if x is an glob pattern\n *\n * @param x\n */\n static isGlobPattern(x: string) {\n return /\\+|\\.|\\(|\\||\\)|\\*/.test(x);\n }\n\n}\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/Helper.ts"],"names":[],"mappings":"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","file":"Helper.js","sourcesContent":["import {existsSync, readdir, readFile, stat, Stats} from 'fs';\nimport {join, resolve} from 'path';\nimport {find, has, isEmpty, map, remove} from 'lodash';\nimport {PlatformUtils} from '@allgemein/base';\nimport {INpmlsOptions} from './INpmlsOptions';\nimport {ISubModule} from '../registry/ISubModule';\nimport * as glob from 'glob';\nimport {isMatch} from 'micromatch';\nimport {C_NODE_MODULES, C_PACKAGE_JSON} from '../Constants';\n\n\nexport class Helper {\n\n static glob(lib_path: string): Promise<string[]> {\n return new Promise((resolve, reject) => {\n glob(lib_path, ((err, matches: string[]) => {\n if (err) {\n reject(err);\n } else {\n resolve(matches);\n }\n }));\n });\n }\n\n static readFile(file: string): Promise<Buffer> {\n return new Promise((resolve, reject) => {\n if (existsSync(file)) {\n readFile(file, (err, buf) => {\n if (err) {\n reject(err);\n } else {\n try {\n resolve(buf);\n } catch (err) {\n reject(err);\n }\n }\n });\n } else {\n reject(new Error('cant find file ' + file));\n }\n });\n\n }\n\n static getPackageJson(_path: string): Promise<any> {\n if (!/package\\.json$/.test(_path)) {\n _path = join(_path, C_PACKAGE_JSON);\n }\n return this.readFile(_path).then(buf => {\n let data = buf.toString('utf8');\n let json = JSON.parse(data);\n return json;\n });\n }\n\n static ucfirst(word: string): string {\n return word[0].toUpperCase() + word.substring(1).toLowerCase();\n }\n\n static async readdir(dir: string): Promise<string[]> {\n return new Promise<string[]>((resolve, reject) => {\n readdir(dir, (err: NodeJS.ErrnoException, files: string[]) => {\n if (err) {\n reject(err);\n } else {\n resolve(files);\n }\n });\n });\n }\n\n static async stat(dir: string): Promise<Stats> {\n return new Promise<Stats>((resolve, reject) => {\n stat(dir, (err: NodeJS.ErrnoException, stats: Stats) => {\n if (err) {\n reject(err);\n } else {\n resolve(stats);\n }\n });\n });\n }\n\n\n static async npmls(node_modules_dir: string, options: INpmlsOptions = {depth: 1, level: 0}): Promise<any[]> {\n let depth = options.depth;\n let inc = options.level;\n\n if (inc >= depth) {\n return [];\n }\n\n options.level = inc + 1;\n\n let modules: any[] = [];\n let directories = await this.getValidDirectories(node_modules_dir, options);\n await Promise.all(map(directories, async (directory: string) => {\n if (/^@/.test(directory)) {\n // is grouped\n let _grouped_node_modules_dir = PlatformUtils.join(node_modules_dir, directory);\n let _directories = await this.getValidDirectories(_grouped_node_modules_dir, options);\n return Promise.all(map(_directories, async (_directory: string) => {\n _directory = PlatformUtils.join(directory, _directory);\n return Helper.lookupNpmInDirectory(node_modules_dir, _directory, modules, options);\n }));\n } else {\n return Helper.lookupNpmInDirectory(node_modules_dir, directory, modules, options);\n }\n\n }));\n return modules;\n }\n\n static async getValidDirectories(node_modules_dir: string, options: INpmlsOptions) {\n let directories = await this.readdir(node_modules_dir);\n if (has(options, 'exclude') || has(options, 'include')) {\n\n if (has(options, 'include') && !isEmpty(options.include)) {\n let includes: string[] = [];\n for (const entry of options.include || []) {\n // const pattern = new Minimatch(entry);\n includes = includes.concat(\n directories.filter((path => {\n const _resolve = join(node_modules_dir, path);\n return isMatch(_resolve, entry);\n }))\n );\n }\n directories = includes;\n }\n\n for (const entry of options.exclude || []) {\n // const pattern = new Minimatch(entry);\n remove(directories, (path => {\n const _resolve = join(node_modules_dir, path);\n return isMatch(_resolve, entry);\n // return pattern.match(_resolve);\n }));\n }\n }\n return directories;\n }\n\n\n static async lookupNpmInDirectory(node_modules_dir: string, directory: string, modules: any[] = [], options?: INpmlsOptions): Promise<any> {\n let _path = join(node_modules_dir, directory);\n if (!existsSync(join(_path, C_PACKAGE_JSON))) {\n return;\n }\n\n let package_json = await this.getPackageJson(_path);\n let modul_exists = find(modules, x => x.name == directory);\n\n if (modul_exists) {\n return;\n }\n\n package_json.path = PlatformUtils.pathResolve(_path);\n package_json.child_modules = [];\n package_json.sub_modules = {};\n\n if (options && options.filter) {\n if (!options.filter(package_json)) {\n return;\n }\n }\n modules.push(package_json);\n\n if (options.subModulePaths) {\n // look in subpath like \"node_modules\"\n let results = await Promise.all(map(options.subModulePaths, subpath => {\n return this.look(_path, subpath, modules, options);\n }));\n\n for (let res of results) {\n if (res.subpath === C_NODE_MODULES) {\n package_json.has_node_modules = res.has_modules;\n package_json.child_modules = res.child_modules;\n } else {\n package_json.sub_modules[res.subpath] = <ISubModule>{\n has_modules: res.has_modules,\n modules: res.child_modules\n };\n }\n }\n }\n return modules;\n }\n\n\n static async look(_path: string, subpath: string, modules: any[] = [], options?: INpmlsOptions) {\n // FIXME detect the node_modules path\n let _new_node_module_dir = join(_path, subpath);\n let info: { subpath: string, has_modules: boolean, child_modules: string[] } = {\n subpath: subpath,\n has_modules: false,\n child_modules: []\n };\n if (PlatformUtils.fileExist(_new_node_module_dir)) {\n try {\n let stat = await this.stat(_new_node_module_dir);\n if (stat && stat.isDirectory()) {\n let _modules = await this.npmls(_new_node_module_dir, options);\n info.has_modules = true;\n for (let _x of _modules) {\n info.child_modules.push(_x.name);\n let _modul_exists = modules.find(function (_m) {\n return _m.name == _x.name;\n });\n if (!_modul_exists) {\n modules.push(_x);\n }\n }\n }\n } catch (err) {\n console.error(err);\n }\n }\n\n return info;\n }\n\n static checkPaths(paths: string[]) {\n let ret_paths = [];\n for (let _path of paths) {\n _path = resolve(_path);\n let _try_path = join(_path, C_NODE_MODULES);\n let _try_package = join(_path, C_PACKAGE_JSON);\n if (existsSync(_path)) {\n if (existsSync(_try_package) && existsSync(_try_path)) {\n _path = _try_path;\n }\n } else {\n throw new Error('checking path ' + _path + ' doesn\\'t exists');\n }\n ret_paths.push(_path);\n }\n return ret_paths;\n }\n\n\n /**\n * Checks if x is an glob pattern\n *\n * @param x\n */\n static isGlobPattern(x: string) {\n return /\\+|\\.|\\(|\\||\\)|\\*/.test(x);\n }\n\n}\n"],"sourceRoot":".."}
|