@allgemein/moduls
Version:
Commons-moduls handles and manages contextual moduls for complex and modular applications.
50 lines • 1.62 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ModuleDescriptor = void 0;
class ModuleDescriptor {
constructor() {
this.id = ModuleDescriptor.INC++;
this.weight = 0;
this.dependencies = {};
this.peerDependencies = {};
this.child_modules = [];
/**
* if modul is declared outside a node_modules directory
*
* @type {boolean}
*/
this.internal = false;
this.sub_modules = {};
this.submodule = false;
this.name = null;
this.version = null;
this.path = null;
this.weight = 0;
this.dependencies = {};
this.peerDependencies = {};
this.child_modules = [];
}
static fromOptions(options) {
let m = new ModuleDescriptor();
m.name = options.name;
m.version = options.version || null;
m.path = options.path || null;
m.main = options.main || null;
m.internal = !/(\/|\\)node_modules(\/|\\)/.test(m.path);
m.dependencies = options.dependencies || {};
m.peerDependencies = options.peerDependencies || {};
m.child_modules = options.child_modules || [];
m.sub_modules = options.sub_modules || {};
return m; //merge(m,options)
}
getMain(sep = '/') {
let chain = [this.path];
if (this.main) {
chain.push(this.main.replace(/.\w+$/, ''));
}
return chain.join(sep);
}
}
exports.ModuleDescriptor = ModuleDescriptor;
ModuleDescriptor.INC = 0;
//# sourceMappingURL=ModuleDescriptor.js.map