@storm-software/cloudflare-tools
Version:
A Nx plugin package that contains various executors, generators, and utilities that assist in managing Cloudflare services.
85 lines (77 loc) • 3.85 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
var _chunkNU34IEWNjs = require('./chunk-NU34IEWN.js');
var _chunkMCKGQKYUjs = require('./chunk-MCKGQKYU.js');
// src/executors/cloudflare-publish/executor.ts
var _devkit = require('@nx/devkit');
var _child_process = require('child_process');
async function runExecutor(options, context) {
const isDryRun = process.env.NX_DRY_RUN === "true" || options.dryRun || false;
if (!context.projectName) {
throw new Error("The executor requires a projectName.");
}
console.info(
`\u{1F680} Running Storm Cloudflare Publish executor on the ${context.projectName} worker`
);
if (!context.projectName || !_optionalChain([context, 'access', _ => _.projectsConfigurations, 'optionalAccess', _2 => _2.projects]) || !context.projectsConfigurations.projects[context.projectName] || !_optionalChain([context, 'access', _3 => _3.projectsConfigurations, 'access', _4 => _4.projects, 'access', _5 => _5[context.projectName], 'optionalAccess', _6 => _6.root])) {
throw new Error("The executor requires projectsConfigurations.");
}
const packageRoot = _devkit.joinPathFragments.call(void 0,
context.root,
_optionalChain([context, 'access', _7 => _7.projectsConfigurations, 'access', _8 => _8.projects, 'access', _9 => _9[context.projectName], 'optionalAccess', _10 => _10.root])
);
try {
const args = _chunkNU34IEWNjs.createCliOptions.call(void 0, { ...options });
if (isDryRun) {
args.push("--dry-run");
}
console.log("");
console.log(`Running "wrangler deploy ${args.join(" ")}"...`);
console.log("");
let proc;
try {
_child_process.fork.call(void 0, _chunkMCKGQKYUjs.__require.resolve("wrangler/bin/wrangler"), ["deploy", ...args], {
env: {
CLOUDFLARE_ACCOUNT_ID: process.env.STORM_BOT_CLOUDFLARE_ACCOUNT,
CLOUDFLARE_API_TOKEN: process.env.STORM_BOT_CLOUDFLARE_TOKEN,
WRANGLER_LOG: "debug",
...process.env,
FORCE_COLOR: "true"
},
cwd: packageRoot,
stdio: ["pipe", "pipe", "pipe", "ipc"]
});
} catch (e) {
console.error(e);
throw new Error(
"Unable to run Wrangler. Please ensure Wrangler is installed."
);
}
_optionalChain([proc, 'optionalAccess', _11 => _11.stdout, 'optionalAccess', _12 => _12.on, 'call', _13 => _13("data", (message) => {
process.stdout.write(message);
})]);
_optionalChain([proc, 'optionalAccess', _14 => _14.stderr, 'optionalAccess', _15 => _15.on, 'call', _16 => _16("data", (message) => {
process.stderr.write(message);
})]);
return new Promise((resolve) => {
_optionalChain([proc, 'optionalAccess', _17 => _17.on, 'call', _18 => _18("close", (code) => {
console.log("");
if (isDryRun) {
console.log(
"Would publish to Cloudflare Workers Registry, but [dry-run] was set"
);
} else {
console.log("Published to Cloudflare Workers Registry");
}
return resolve({ success: code === 0 });
})]);
});
} catch (error) {
console.error("Failed to publish to Cloudflare Workers Registry");
console.error(error);
console.log("");
return {
success: false
};
}
}
exports.runExecutor = runExecutor;