create-nx-workspace
Version:
44 lines (43 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPreset = createPreset;
const error_utils_1 = require("./utils/error-utils");
const package_manager_1 = require("./utils/package-manager");
const child_process_utils_1 = require("./utils/child-process-utils");
const unparse_1 = require("./utils/unparse");
async function createPreset(preset, parsedArgs, packageManager, directory) {
const { skipGit, commit, nxCloud, ...restArgs } = parsedArgs;
// Delete verbose because it will conflict with the --quiet flag
if (!restArgs.verbose) {
delete restArgs.verbose;
}
let args = (0, unparse_1.unparse)({
interactive: true,
...restArgs,
}).join(' ');
const pmc = (0, package_manager_1.getPackageManagerCommand)(packageManager);
const workingDir = process.cwd().replace(/\\/g, '/');
let nxWorkspaceRoot = `"${workingDir}"`;
// If path contains spaces there is a problem in Windows for npm@6.
// In this case we have to escape the wrapping quotes.
if (process.platform === 'win32' &&
/\s/.test(nxWorkspaceRoot) &&
packageManager === 'npm') {
const pmVersion = +(0, package_manager_1.getPackageManagerVersion)(packageManager, workingDir).split('.')[0];
if (pmVersion < 7) {
nxWorkspaceRoot = `\\"${nxWorkspaceRoot.slice(1, -1)}\\"`;
}
}
if (!(process.env.NX_VERBOSE_LOGGING === 'true' || args.includes('--verbose'))) {
args = '--quiet ' + args;
}
const command = `g ${preset}:preset ${args}`;
try {
const [exec, ...args] = pmc.exec.split(' ');
args.push('nx', `--nxWorkspaceRoot=${nxWorkspaceRoot}`, ...command.split(' '));
await (0, child_process_utils_1.spawnAndWait)(exec, args, directory);
}
catch (e) {
throw new error_utils_1.CnwError('PRESET_FAILED', `Failed to apply preset: ${preset}`);
}
}