@bitrix/cli
Version:
Bitrix CLI tools
67 lines (58 loc) • 1.73 kB
JavaScript
;
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var minimist = _interopDefault(require('minimist'));
var slash = _interopDefault(require('slash'));
var glob = _interopDefault(require('fast-glob'));
var path = _interopDefault(require('path'));
var fs = _interopDefault(require('fs'));
var alias = {
w: 'watch',
p: 'path',
m: 'modules',
t: 'test',
h: 'help',
v: 'version',
c: 'create',
n: 'name',
e: 'extensions'
};
var argv = minimist(process.argv.slice(2), {
alias
});
function getDirectories(dir) {
if (fs.existsSync(path.resolve(dir))) {
const pattern = slash(path.resolve(dir, '**'));
const options = {
onlyDirectories: true,
deep: 0
};
return glob.sync(pattern, options).map(dirPath => path.basename(dirPath));
}
return [];
}
function isRepositoryRoot(dirPath) {
const dirs = getDirectories(dirPath);
return dirs.includes('main') && dirs.includes('fileman') && dirs.includes('iblock') && dirs.includes('ui') && dirs.includes('translate');
}
var params = {
get path() {
return path.resolve(argv.path || process.cwd());
},
get modules() {
const modules = (argv.modules || '').split(',').map(module => module.trim()).filter(module => !!module).map(module => path.resolve(this.path, module));
if (isRepositoryRoot(this.path) && modules.length === 0) {
return getDirectories(this.path);
}
return modules;
},
get extensions() {
if (typeof argv.extensions === 'string') {
return argv.extensions.split(',').map(module => module.trim());
}
return [];
},
get name() {
return argv.name || argv._[1];
}
};
module.exports = params;