intradoc
Version:
In-place document content replacer CLI utility.
91 lines (87 loc) • 3.11 kB
JavaScript
;
var index = require('./CLIApp/index.js');
var index$1 = require('./parse/parseArgV/index.js');
var index$5 = require('./parse/parseData/index.js');
var index$4 = require('./parse/parseFiles/index.js');
var index$6 = require('./parse/parseInput/index.js');
var index$2 = require('./parse/parseHelp/index.js');
var index$3 = require('./parse/parseVersion/index.js');
var index$7 = require('./process/processInput/index.js');
var printHelp = require('./print/printHelp.js');
var printVersion = require('./print/printVersion.js');
var flags = require('./parse/parseData/flags.js');
var flags$1 = require('./parse/parseFiles/flags.js');
var flags$2 = require('./parse/parseHelp/flags.js');
var flags$3 = require('./parse/parseVersion/flags.js');
// TODO: CLI input improvements
const run = async (options) => {
const app = new index({
name: options.app.name,
version: options.app.version,
homepage: options.app.homepage,
license: options.app.license,
author: options.app.author
});
app
.addFlags(flags)
.addFlags(flags$1)
.addFlags(flags$2)
.addFlags(flags$3);
const { cwd: parsedCWD, args } = index$1.parseArgV(options.argv);
const cwd = options.cwd ?? parsedCWD;
// ---------------------------------------------------------------------------
const { hasHelp } = index$2.parseHelp(args);
if (hasHelp) {
printHelp.printHelp(app);
return;
}
// ---------------------------------------------------------------------------
const { hasVersion } = index$3.parseVersion(args);
if (hasVersion) {
printVersion.printVersion(app);
return;
}
// ---------------------------------------------------------------------------
const parsedFiles = index$4.parseFiles(args, app);
const parsedData = index$5.parseData(args, app);
let hasFiles = parsedFiles.hasFiles;
let hasData = parsedData.hasData;
let files = parsedFiles.files;
let data = parsedData.data;
if (!hasFiles && !hasData) {
const parsedInput = index$6.parseInput(args, app);
hasFiles = parsedInput.hasFiles;
hasData = parsedInput.hasData;
files = parsedInput.files;
data = parsedInput.data;
}
const $metadata = {
options,
app: options.app,
argv: options.argv,
args
};
if (hasFiles && !hasData) {
const error = new Error('At least 1 input data must be specified.');
error.$metadata = $metadata;
throw error;
}
if (hasData && !hasFiles) {
const error = new Error('At least 1 input file must be specified.');
error.$metadata = $metadata;
throw error;
}
if (hasFiles && hasData) {
return await index$7.processInput({
files,
data,
app,
replacer: options.replacer,
cwd
});
}
// ---------------------------------------------------------------------------
printHelp.printHelp(app);
};
exports.run = run;
//# sourceMappingURL=index.js.map