@applicaster/zapplicaster-cli
Version:
CLI Tool for the zapp app and Quick Brick project
44 lines (36 loc) • 1.03 kB
JavaScript
const R = require("ramda");
const { resolve } = require("path");
function getNameFromPackageJson(cwd) {
try {
return R.prop("name", require(resolve(cwd, "package.json")));
} catch (e) {
throw new Error("there is no package.json file in " + cwd);
}
}
function prependWithApplicasterIfNeeded(projectName) {
const SCOPE = "@applicaster/";
return R.unless(
(R.includes || R.contains)(SCOPE),
R.concat(SCOPE)
)(projectName);
}
function configurator({ cliOptions }) {
const {
projectName = null,
entryPoint = "./src/App",
iosZappifest = "plugin-manifest.ios.json",
androidZappifest = "plugin-manifest.android.json",
projectRoot = process.cwd(),
} = cliOptions;
const zappifests = { ios: iosZappifest, android: androidZappifest };
return {
name: R.compose(
R.toLower,
prependWithApplicasterIfNeeded
)(projectName || getNameFromPackageJson(projectRoot)),
entryPoint,
cwd: projectRoot,
zappifests,
};
}
module.exports = { configurator };