@allgemein/moduls 1.6.5 → 1.6.7

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
  }
@@ -67,7 +67,7 @@ class ClassesLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
67
67
  for (let _path of lib.refs) {
68
68
  let lib_path = base_1.PlatformUtils.join(modul.path, _path);
69
69
  let res = yield ClassesLoader.glob(lib_path);
70
- if (!lodash_1.isEmpty(res)) {
70
+ if (!(0, lodash_1.isEmpty)(res)) {
71
71
  for (let r of res) {
72
72
  if (base_1.PlatformUtils.fileExist(r) && base_1.PlatformUtils.isDir(r)) {
73
73
  _lib.refs.push(base_1.PlatformUtils.join(r, '*'));
@@ -85,7 +85,7 @@ class ClassesLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
85
85
  _lib.refs.push(lib_path + '.ts');
86
86
  }
87
87
  }
88
- if (!lodash_1.isEmpty(_lib.refs)) {
88
+ if (!(0, lodash_1.isEmpty)(_lib.refs)) {
89
89
  _lib.classes = yield this.loadClasses(_lib.refs, modul.name, topic);
90
90
  // handle: ClassesHandle,
91
91
  }
@@ -105,7 +105,7 @@ class ClassesLoader extends AbstractModuleLoader_1.AbstractModuleLoader {
105
105
  loadClasses(refs, modulName, topic) {
106
106
  return __awaiter(this, void 0, void 0, function* () {
107
107
  let classes = yield base_1.ClassLoader.importClassesFromAnyAsync(refs);
108
- if (!lodash_1.isEmpty(classes)) {
108
+ if (!(0, lodash_1.isEmpty)(classes)) {
109
109
  if (Reflect && Reflect['getOwnMetadata']) {
110
110
  classes.forEach(cls => {
111
111
  Reflect['defineMetadata'](MODULE_NAME, modulName, 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 {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":"../.."}
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.5",
3
+ "version": "1.6.7",
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.5"
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":";;;;;;;;;;;;AAAA,mCAAiF;AACjF,yDAAoD;AACpD,4CAAuC;AAEvC,0CAA0D;AAG1D,mEAA8D;AAC9D,mEAA8D;AAG9D,sEAAiE;AACjE,2CAA2D;AAG3D,4CAA4D;AAG5D,MAAa,cAAc;IASzB,YAAY,OAA+B;QALnC,aAAQ,GAAuB,EAAE,CAAC;QAE1C,UAAK,GAAa,EAAE,CAAC;QAInB,iBAAQ,CAAC,OAAO,EAAE,0CAA8B,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,0CAA0C;QACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,0BAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,aAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAGD;;OAEG;IACH,QAAQ;QACN,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAGK,OAAO;;YACX,mCAAgB,CAAC,GAAG,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YAEnB,IAAI,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,YAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACnD,CAAC;YAEF,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC;YAE3C,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;gBAC5B,IAAI,MAAM,GAAG,aAAI,CAAC,WAAW,EAAE,UAAU,EAAE;oBACzC,OAAO,EAAE,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,EAAE;oBACX,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC3B;qBAAM;oBACL,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC/B,gEAAgE;iBACjE;aACF;YAED,0DAA0D;YAC1D,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAGa,iBAAiB,CAAC,gBAAwB;;YAEtD,MAAM,QAAQ,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,iBAAiB,EAAE,iBAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3H,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACnB,IAAI;oBACF,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACpD;gBAAC,OAAO,CAAC,EAAE;iBACX;aACF;YAED,IAAI,OAAO,GAAkB;gBAC3B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;gBACnC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;gBAC1B,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;aACtC,CAAC;YACF,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACzB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;aACzC;YACD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACzB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;aACzC;YAED,IAAI,eAAM,CAAC,YAAY,CAAC,EAAE;gBACxB,YAAY,GAAG,EAAE,CAAC;gBAClB,IAAI,oBAAa,CAAC,SAAS,CAAC,oBAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,0BAAc,CAAC,CAAC,EAAE;oBACjF,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,OAAO,GAAG,oBAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;oBACtD,IAAI,QAAQ,GAAG,oBAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;oBACxD,WAAW;oBACX,YAAY,GAAG,MAAM,eAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;iBAClF;qBAAM;oBACL,YAAY,GAAG,MAAM,eAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;iBAC9D;gBAED,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,YAAY,EAAE;oBACnC,IAAI;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;qBAC7C;oBAAC,OAAO,CAAC,EAAE;qBAEX;iBACF;aACF;YAED,OAAO,YAAG,CAAC,YAAY,EAAE,CAAC,MAAW,EAAE,EAAE;gBACvC,OAAO,mCAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAGO,eAAe,CAAC,OAA2B;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,YAAY,GAAG,eAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACtG,IAAI,SAAS,GAAa,EAAE,CAAC;YAC7B,YAAG,CAAC,eAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE;gBAClC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,GAAG,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;gBAC/C,OAAO,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,KAAK,IAAI,UAAU,IAAI,QAAQ,EAAE;gBAC/B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC5C;YACD,MAAM,CAAC,aAAa,GAAG,aAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAElD,IAAI,UAAU,GAAG,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC5C,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;YACrB,CAAC,CAAC,CAAC;SAEJ;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,CAAmB,EAAE,EAAE;YAC9D,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAE/B,IAAI,UAAU,GAAG,eAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,KAAK;gBACpD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;oBAC5B,OAAO,KAAK,CAAC;iBACd;gBAED,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;oBAChD,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,IAAI,UAAU,CAAC,MAAM,EAAE;gBACrB,KAAK,IAAI,CAAC,IAAI,UAAU,EAAE;oBACxB,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;iBAChC;aACF;iBAAM;gBACL,MAAM;aACP;SACF;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;gBACzB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrC;YACD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAGK,MAAM,CAAoC,WAAqB,EAAE,OAAa;;YAClF,IAAI,QAAQ,GAAM,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAED,mBAAmB,CAAC,OAAyB;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAiC,6BAAa,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAEK,mBAAmB,CAAC,OAAyB;;YACjD,OAAO,IAAI,CAAC,MAAM,CAAiC,6BAAa,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;KAAA;IAEK,oBAAoB,CAAC,OAA0B;;YACnD,OAAO,IAAI,CAAC,MAAM,CAAmC,+BAAc,EAAE,OAAO,CAAC,CAAC;QAChF,CAAC;KAAA;CACF;AAtND,wCAsNC","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,21 @@ 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);
131
130
  includes = includes.concat(directories.filter((path => {
132
- const _resolve = path_1.join(node_modules_dir, path);
133
- return pattern.match(_resolve);
131
+ const _resolve = (0, path_1.join)(node_modules_dir, path);
132
+ return (0, micromatch_1.isMatch)(_resolve, entry, options.matcherOptions || { dot: true });
134
133
  })));
135
134
  }
136
135
  directories = includes;
137
136
  }
138
137
  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);
138
+ (0, lodash_1.remove)(directories, (path => {
139
+ const _resolve = (0, path_1.join)(node_modules_dir, path);
140
+ return (0, micromatch_1.isMatch)(_resolve, entry, options.matcherOptions || { dot: true });
143
141
  }));
144
142
  }
145
143
  }
@@ -148,12 +146,12 @@ class Helper {
148
146
  }
149
147
  static lookupNpmInDirectory(node_modules_dir, directory, modules = [], options) {
150
148
  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))) {
149
+ let _path = (0, path_1.join)(node_modules_dir, directory);
150
+ if (!(0, fs_1.existsSync)((0, path_1.join)(_path, Constants_1.C_PACKAGE_JSON))) {
153
151
  return;
154
152
  }
155
153
  let package_json = yield this.getPackageJson(_path);
156
- let modul_exists = lodash_1.find(modules, x => x.name == directory);
154
+ let modul_exists = (0, lodash_1.find)(modules, x => x.name == directory);
157
155
  if (modul_exists) {
158
156
  return;
159
157
  }
@@ -168,7 +166,7 @@ class Helper {
168
166
  modules.push(package_json);
169
167
  if (options.subModulePaths) {
170
168
  // look in subpath like "node_modules"
171
- let results = yield Promise.all(lodash_1.map(options.subModulePaths, subpath => {
169
+ let results = yield Promise.all((0, lodash_1.map)(options.subModulePaths, subpath => {
172
170
  return this.look(_path, subpath, modules, options);
173
171
  }));
174
172
  for (let res of results) {
@@ -190,7 +188,7 @@ class Helper {
190
188
  static look(_path, subpath, modules = [], options) {
191
189
  return __awaiter(this, void 0, void 0, function* () {
192
190
  // FIXME detect the node_modules path
193
- let _new_node_module_dir = path_1.join(_path, subpath);
191
+ let _new_node_module_dir = (0, path_1.join)(_path, subpath);
194
192
  let info = {
195
193
  subpath: subpath,
196
194
  has_modules: false,
@@ -223,11 +221,11 @@ class Helper {
223
221
  static checkPaths(paths) {
224
222
  let ret_paths = [];
225
223
  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)) {
224
+ _path = (0, path_1.resolve)(_path);
225
+ let _try_path = (0, path_1.join)(_path, Constants_1.C_NODE_MODULES);
226
+ let _try_package = (0, path_1.join)(_path, Constants_1.C_PACKAGE_JSON);
227
+ if ((0, fs_1.existsSync)(_path)) {
228
+ if ((0, fs_1.existsSync)(_try_package) && (0, fs_1.existsSync)(_try_path)) {
231
229
  _path = _try_path;
232
230
  }
233
231
  }
@@ -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 includes = includes.concat(\n directories.filter((path => {\n const _resolve = join(node_modules_dir, path);\n return isMatch(_resolve, entry, options.matcherOptions || {dot: true});\n }))\n );\n }\n directories = includes;\n }\n\n for (const entry of options.exclude || []) {\n remove(directories, (path => {\n const _resolve = join(node_modules_dir, path);\n return isMatch(_resolve, entry, options.matcherOptions || {dot: true});\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":".."}
@@ -11,4 +11,8 @@ export interface INpmlsOptions {
11
11
  * Glob pattern to include some directories.
12
12
  */
13
13
  include?: string[];
14
+ /**
15
+ * Options for micromatch dirname pattern match
16
+ */
17
+ matcherOptions?: any;
14
18
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/INpmlsOptions.ts"],"names":[],"mappings":"","file":"INpmlsOptions.js","sourcesContent":["export interface INpmlsOptions {\n filter?: (packageJson: any) => boolean\n depth: number\n level?: number\n subModulePaths?: string[],\n\n /**\n * Glob pattern to exclude some directories.\n */\n exclude?: string[];\n\n /**\n * Glob pattern to include some directories.\n */\n include?: string[];\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/utils/INpmlsOptions.ts"],"names":[],"mappings":"","file":"INpmlsOptions.js","sourcesContent":["export interface INpmlsOptions {\n filter?: (packageJson: any) => boolean\n depth: number\n level?: number\n subModulePaths?: string[],\n\n /**\n * Glob pattern to exclude some directories.\n */\n exclude?: string[];\n\n /**\n * Glob pattern to include some directories.\n */\n include?: string[];\n\n\n /**\n * Options for micromatch dirname pattern match\n */\n matcherOptions?: any;\n}\n"],"sourceRoot":".."}