UNPKG

@bitrix/cli

Version:
67 lines (58 loc) 1.73 kB
'use strict'; 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;