@k11r/nx-cloudflare-wrangler
Version:
Nx Plugin for Cloudflare Wrangler
66 lines • 2.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.runWranglerCommandForProject = runWranglerCommandForProject;
const devkit_1 = require("@nx/devkit");
const child_process_1 = require("child_process");
const tree_1 = require("nx/src/generators/tree");
function runWranglerCommandForProject(options, context, command) {
var _a;
const { projectName } = context;
const tree = new tree_1.FsTree(process.cwd(), false);
const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, projectName);
const wranglerOptions = [];
if (command === 'pages deploy') {
wranglerOptions.push(options.dist);
wranglerOptions.push('--project-name="' +
((_a = options.projectName) !== null && _a !== void 0 ? _a : projectName) +
'"');
wranglerOptions.push('--branch="' + options.branch + '"');
wranglerOptions.push('--commit-hash=' +
options.commitHash);
wranglerOptions.push('--commit-message="' +
options.commitMessage +
'"');
wranglerOptions.push('--commit-dirty=' +
(options.commitDirty
? 'true'
: 'false'));
}
else if (command === 'pages dev') {
wranglerOptions.push(options.dist);
}
else if (command === 'deploy') {
// no extra optiones needed
}
else if (command === 'dev') {
wranglerOptions.push((0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, projectConfiguration.targets.build.options.main));
}
return new Promise((resolve) => {
try {
console.log(`npx wrangler ${command} ${wranglerOptions.join(' ')}`);
const childProcess = (0, child_process_1.spawn)('npx', ['wrangler', command, ...wranglerOptions], {
cwd: projectConfiguration.root,
stdio: 'inherit',
shell: true,
});
childProcess.on('error', (error) => {
resolve({ success: false, message: error });
});
childProcess.on('exit', (code) => {
if (code === 0) {
resolve({ success: true });
}
else {
resolve({
success: false,
message: `Process exited with code ${code}`,
});
}
});
}
catch (e) {
resolve({ success: false, message: e });
}
});
}
//# sourceMappingURL=wrangler.js.map