esmodule-builder
Version:
ECMAScript-Module (ES Module) builder.
82 lines • 6.71 kB
JavaScript
import meta from './meta.mjs';
import { FILENAME as CONFIG_FILENAME } from './config.mjs';
import { load as loadProject, build as buildProject } from './project.mjs';
import P from './platform.mjs';
import chalk, { supportsColor } from 'chalk';
import log from 'npmlog';
import { Command } from 'commander';
const LOG_LEVELS = [
"silly",
"verbose",
"info",
// "timing",
// "http",
"notice",
"warn",
"error",
"silent",
];
function processCommandLine(args) {
const program = new Command();
let config = '.';
let logLevel = 'info';
program
.version(meta.version, '-v, --version')
.arguments('[config]')
.action(arg1 => {
if (arg1) {
config = arg1;
}
})
.option('-l, --log <level>', 'Log level', value => {
let level = value.toLowerCase();
if (!LOG_LEVELS.includes(level)) {
log.warn(meta.program, chalk.red('invalid log-level:'), chalk.white.bgRed(value));
return;
}
logLevel = level;
})
.option('--color <mode>', 'Color Mode')
.parse(args);
return {
configFilePath: P.testDirectoryExists(config)
? P.joinPath(config, CONFIG_FILENAME)
: config,
logLevel: logLevel,
};
}
async function run(program) {
configureLogLibrary(program);
const configFilePath = P.resolvePath(program.configFilePath);
log.info(meta.program, chalk.green('ES Module builder'));
log.info(meta.program, chalk.yellow('Version: ') + meta.version);
log.info(meta.program, chalk.yellow('CWD: ') + process.cwd());
log.info(meta.program, chalk.yellow('Config: ') + configFilePath);
if (!P.testFileExists(configFilePath)) {
log.error(meta.program, chalk.red('Config file not found:'), chalk.white.bgRed(configFilePath));
return false;
}
const project = loadProject(configFilePath);
log.verbose(meta.program, "...config loaded");
log.silly(meta.program, JSON.stringify(project.config, null, 2));
log.verbose(meta.program, chalk.yellow('Path: '), configFilePath);
log.verbose(meta.program, chalk.yellow('Version: '), project.config.version);
log.verbose(meta.program, chalk.yellow('Files: '), project.codePaths);
await buildProject(project);
return true;
}
function configureLogLibrary(program) {
// Configure color mode
if (supportsColor !== false) {
log.enableColor();
}
else {
log.disableColor();
}
log.level = program.logLevel || 'info';
}
export default {
processCommandLine,
run,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLm1qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9jbGkubXRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQTtBQUM3QixPQUFPLEVBQUUsUUFBUSxJQUFJLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsSUFBSSxJQUFJLFdBQVcsRUFBRSxLQUFLLElBQUksWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFFLE9BQU8sQ0FBQyxNQUFNLGdCQUFnQixDQUFBO0FBQzlCLE9BQU8sS0FBSyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzVDLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQTtBQUN4QixPQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVM5QyxNQUFNLFVBQVUsR0FBRztJQUNsQixPQUFPO0lBQ1AsU0FBUztJQUNULE1BQU07SUFDTixZQUFZO0lBQ1osVUFBVTtJQUNWLFFBQVE7SUFDUixNQUFNO0lBQ04sT0FBTztJQUNQLFFBQVE7Q0FDUixDQUFBO0FBRUQsU0FBUyxrQkFBa0IsQ0FDMUIsSUFBYztJQUVkLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7SUFFN0IsSUFBSSxNQUFNLEdBQVcsR0FBRyxDQUFBO0lBQ3hCLElBQUksUUFBUSxHQUFXLE1BQU0sQ0FBQTtJQUU3QixPQUFPO1NBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDO1NBQ3RDLFNBQVMsQ0FBQyxVQUFVLENBQUM7U0FDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2QsSUFBSSxJQUFJLEVBQUU7WUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFBO1NBQUU7SUFDNUIsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNqRCxJ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