@lunora/cli
Version:
The Lunora CLI: init, dev, deploy, codegen, run, reset, and migrate commands
50 lines (47 loc) • 1.77 kB
JavaScript
import { execFile } from 'node:child_process';
import { e as execArgsFor, d as detectPackageManager } from './detect-package-manager-v4hHpQd0.mjs';
const execCode = (error) => {
if (!error) {
return 0;
}
return typeof error.code === "number" ? error.code : 1;
};
const defaultRunner = (command, args, cwd) => new Promise((resolve) => {
execFile(command, [...args], { cwd }, (error, stdout, stderr) => {
resolve({ code: execCode(error), stderr, stdout });
});
});
const parseSecretNames = (stdout) => {
let parsed;
try {
parsed = JSON.parse(stdout);
} catch {
return void 0;
}
if (!Array.isArray(parsed)) {
return void 0;
}
const names = parsed.map((entry) => entry !== null && typeof entry === "object" ? entry.name : void 0).filter((name) => typeof name === "string" && name.length > 0);
return [...names].toSorted((a, b) => a.localeCompare(b));
};
const listRemoteSecrets = async (inputs) => {
const wranglerArgs = ["secret", "list", "--format", "json"];
if (inputs.env !== void 0) {
wranglerArgs.push("--env", inputs.env);
}
if (inputs.temporary) {
wranglerArgs.push("--temporary");
}
const { args, command } = execArgsFor(detectPackageManager(inputs.cwd), "wrangler", wranglerArgs);
const runner = inputs.runner ?? defaultRunner;
const result = await runner(command, args, inputs.cwd);
if (result.code !== 0) {
return { error: result.stderr.trim() || `wrangler secret list exited ${String(result.code)}`, names: [], ok: false };
}
const names = parseSecretNames(result.stdout);
if (names === void 0) {
return { error: "could not parse `wrangler secret list --format json` output", names: [], ok: false };
}
return { names, ok: true };
};
export { listRemoteSecrets as l };