78 lines
2.4 KiB
JavaScript
78 lines
2.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.has = exports.get = exports.read = exports.complete = void 0;
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const url = require("url");
|
|
const exists_1 = require("@xblox/fs/exists");
|
|
const lib_1 = require("./lib");
|
|
const module_1 = require("./module");
|
|
const lodash = require("lodash");
|
|
const complete = (module, root) => {
|
|
const repo = module.options.repository || '';
|
|
const parts = url.parse(repo);
|
|
module.repoName = path.basename(parts.path || '', path.extname(repo));
|
|
module.exists = (0, exists_1.sync)(path.join(root, module.options.directory)) !== false;
|
|
const cwd = path.join(root, module.options.directory);
|
|
if ((0, exists_1.sync)(cwd)) {
|
|
module.cwd = cwd;
|
|
}
|
|
else {
|
|
module.cwd = root;
|
|
}
|
|
module.isGithub = module.options.repository.indexOf('github.com') !== -1;
|
|
return module;
|
|
};
|
|
exports.complete = complete;
|
|
const read = (source, target, profile) => {
|
|
let pkginfo = null;
|
|
let packageJSON = '';
|
|
try {
|
|
if (fs.statSync(source).isDirectory()) {
|
|
if (fs.statSync(path.join(source + '/package.json'))) {
|
|
packageJSON = path.join(source + '/package.json');
|
|
}
|
|
}
|
|
else if (fs.statSync(path.join(process.cwd(), source)).isFile()) {
|
|
packageJSON = path.join(process.cwd(), source);
|
|
}
|
|
}
|
|
catch (e) {
|
|
console.warn('error reading modules', e);
|
|
}
|
|
if (packageJSON) {
|
|
pkginfo = require(packageJSON);
|
|
}
|
|
else {
|
|
pkginfo = {};
|
|
}
|
|
if (pkginfo && pkginfo.modules) {
|
|
return pkginfo.modules.map((module) => (0, exports.complete)(module, target));
|
|
}
|
|
else {
|
|
return [];
|
|
}
|
|
};
|
|
exports.read = read;
|
|
const get = (source, target, profile = '') => {
|
|
let modules = (0, exports.read)(source, target, profile);
|
|
if (profile) {
|
|
modules = (0, lib_1.profileFilter)(modules, profile);
|
|
}
|
|
//return modules;
|
|
return modules.map((module) => {
|
|
return module_1.Module.from(module);
|
|
});
|
|
};
|
|
exports.get = get;
|
|
const has = (modules, repository, directory) => {
|
|
const module = lodash.find(modules, {
|
|
options: {
|
|
directory,
|
|
repository
|
|
}
|
|
});
|
|
return module;
|
|
};
|
|
exports.has = has;
|
|
//# sourceMappingURL=modules.js.map
|