aem-clientlib-generator
Version:
Creates configuration files for AEM ClientLibs and synchronizes assets.
55 lines (45 loc) • 1.53 kB
JavaScript
import url from 'node:url';
var DEFAULT_FILE = "clientlib.config.js";
import clientlib from "../lib/clientlib.js";
import path from "node:path";
import fs from "fs";
import yargs from "yargs"
import { hideBin } from "yargs/helpers"
var argv = yargs(hideBin(process.argv))
.usage("aem-clientlib-generator " + process.env.npm_package_version + "\n" +
"Usage with config file: clientlib [path] [options]" + "\n\n" +
"Default config path: " + DEFAULT_FILE)
.help("help")
.alias("help", "h")
.version()
.alias("version", "v")
.options({
"dry": {
type: "boolean",
describe: "'Dry run' without write operations."
},
"verbose": {
type: "boolean",
describe: "Prints more details"
}
}).argv;
var configPath = path.resolve(process.cwd(), DEFAULT_FILE);
if (argv._ && argv._.length > 0) {
configPath = argv._[0];
if (!path.isAbsolute(configPath)) {
configPath = path.resolve(process.cwd(), configPath);
}
}
if (!fs.existsSync(configPath)) {
console.error("Could not find config file: " + configPath);
process.exit(1);
}
import(path.isAbsolute(configPath) ? url.pathToFileURL(configPath).toString() : configPath ).then(conf => {
var libs = Array.isArray(conf.default.libs) ? [...conf.default.libs] : [conf.default.libs];
var clientLibConf = conf.default;
delete conf.default.libs;
clientLibConf.dry = argv.dry;
clientLibConf.verbose = argv.verbose || argv.dry;
clientlib(libs, clientLibConf);
}).catch(err => console.error(err));