@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 CHANGED
@@ -1,9 +1,6 @@
1
1
 
2
2
  # @allgemein/moduls
3
3
 
4
- [![Build Status](https://travis-ci.org/allgemein-node/moduls.svg?branch=master)](https://travis-ci.org/allgemein-node/moduls)
5
- [![codecov](https://codecov.io/gh/allgemein-node/moduls/branch/master/graph/badge.svg)](https://codecov.io/gh/thinkbaer/node-commons-modules)
6
- [![Dependency Status](https://www.versioneye.com/user/projects/596932736725bd004ea696cd/badge.svg?style=flat-square)](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,CAAC,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,gBAAO,CAAC,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,gBAAO,CAAC,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":".."}
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 promises = [];
59
- for (let lib of this._options.libs) {
60
- let refs = [];
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
- promises.push(this.loadClasses(handle, refs, modul.name, lib.topic));
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
- if (promises.length > 0) {
87
- yield Promise.all(promises);
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(handle, refs, modulName, topic) {
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
- handle.add(topic, refs, classes);
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":"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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 {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 let promises = [];\n for (let lib of this._options.libs) {\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 refs.push(PlatformUtils.join(r, '*'));\n } else if (PlatformUtils.fileExist(r) && PlatformUtils.isFile(r)) {\n refs.push(r);\n }\n }\n } else if (PlatformUtils.fileExist(lib_path + '.js') && PlatformUtils.isFile(lib_path + '.js')) {\n 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 refs.push(lib_path + '.ts');\n }\n }\n\n if (!isEmpty(refs)) {\n promises.push(this.loadClasses(handle, refs, modul.name, lib.topic));\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(handle: ClassesHandle, 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 handle.add(topic, refs, classes);\n }\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":"../.."}
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":"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","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":"../.."}
1
+ {"version":3,"sources":["../../../src/loader/require/RequireLoader.ts"],"names":[],"mappings":"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","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,CAAC,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":"../.."}
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.4",
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.1.1",
34
+ "@allgemein/packaging": "^1.2.14",
35
35
  "@testdeck/mocha": "^0.1.2",
36
- "@types/chai": "^4.2.18",
37
- "@types/glob": "^7.1.3",
38
- "@types/gulp": "^4.0.8",
39
- "@types/lodash": "^4.14.169",
40
- "@types/mocha": "^8.2.2",
41
- "@types/node": "^15.3.1",
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.2",
44
+ "codecov": "^3.8.3",
44
45
  "codelyzer": "^6.0.2",
45
46
  "del": "6.0.0",
46
- "glob": "^7.1.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": "^8.4.0",
56
+ "mocha": "^9.1.3",
56
57
  "nyc": "^15.1.0",
57
- "ts-node": "^9.1.1",
58
+ "ts-node": "^10.3.0",
58
59
  "tslint": "^6.1.2",
59
- "typescript": "4.2.4"
60
+ "typescript": "4.4.4"
60
61
  },
61
62
  "dependencies": {
62
- "@allgemein/base": "^1.5.3"
63
+ "@allgemein/base": "^1.6.2",
64
+ "micromatch": "^4.0.5"
63
65
  },
64
66
  "peerDependencies": {
65
- "glob": "^7.1.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 == __modul.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 minimatch_1 = require("minimatch");
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 minimatch_1.Minimatch(entry);
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 pattern.match(_resolve);
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 minimatch_1.Minimatch(entry);
140
- lodash_1.remove(directories, (path => {
141
- const _resolve = path_1.join(node_modules_dir, path);
142
- return pattern.match(_resolve);
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
  }
@@ -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":".."}