makit
Version:
Make in JavaScript done right!
36 lines (35 loc) • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parse = void 0;
const logger_1 = require("./utils/logger");
const path_1 = require("path");
const fs_1 = require("fs");
const dot_reporter_1 = require("./reporters/dot-reporter");
const text_reporter_1 = require("./reporters/text-reporter");
const reporters = {
dot: () => new dot_reporter_1.DotReporter(),
text: () => new text_reporter_1.TextReporter()
};
function parse(args, pkg) {
const defaults = {
database: './.makit.db',
makefile: ['makefile.js', 'makefile.ts'],
graph: false
};
const raw = Object.assign(defaults, pkg.makit, args);
const loglevel = raw.debug ? logger_1.LogLevel.debug : (raw.verbose ? logger_1.LogLevel.verbose : (raw.loglevel || logger_1.LogLevel.default));
const database = raw.database;
const graph = raw.graph;
const require = raw.require;
const makefile = lookupMakefile(Array.isArray(raw.makefile) ? raw.makefile : [raw.makefile]);
const reporter = reporters[raw.reporter]();
return { loglevel, database, graph, require, makefile, reporter };
}
exports.parse = parse;
function lookupMakefile(makefiles) {
for (const makefile of makefiles) {
if (fs_1.existsSync(makefile))
return path_1.resolve(makefile);
}
throw new Error('makefile not found');
}