projen
Version:
CDK for software projects
41 lines • 4.63 kB
JavaScript
;
// Small helpers shared by the release builtin task entrypoints
// (`resolve-tag`, `decide-bump-type`, `apply-bump`).
Object.defineProperty(exports, "__esModule", { value: true });
exports.runBuiltin = runBuiltin;
exports.requireEnv = requireEnv;
exports.intEnv = intEnv;
/**
* Runs a builtin's async body, exiting non-zero on failure. Prints the error's
* stack when available, otherwise its message/string form - dax parse errors
* are not `Error` instances and have no `.stack`, so a naive `console.log(e.stack)`
* would print a bare "undefined".
*/
function runBuiltin(body) {
body().catch((e) => {
const err = e;
console.error(err?.stack ?? err?.message ?? String(e));
process.exit(1);
});
}
/** Returns a required env var, throwing a clear error when it is missing. */
function requireEnv(name) {
const value = process.env[name];
if (!value) {
throw new Error(`${name} is required`);
}
return value;
}
/** Parses an optional integer env var, throwing when it is set but not a number. */
function intEnv(name) {
const raw = process.env[name];
if (raw == null || raw === "") {
return undefined;
}
const value = parseInt(raw, 10);
if (Number.isNaN(value)) {
throw new Error(`${name} must be a number: ${raw}`);
}
return value;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1lbnYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC90YXNrLWVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0RBQStEO0FBQy9ELHFEQUFxRDs7QUFRckQsZ0NBTUM7QUFHRCxnQ0FNQztBQUdELHdCQVVDO0FBbENEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLElBQXlCO0lBQ2xELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVUsRUFBRSxFQUFFO1FBQzFCLE1BQU0sR0FBRyxHQUFHLENBQXlDLENBQUM7UUFDdEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsU0FBZ0IsVUFBVSxDQUFDLElBQVk7SUFDckMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsb0ZBQW9GO0FBQ3BGLFNBQWdCLE1BQU0sQ0FBQyxJQUFZO0lBQ2pDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUM5QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxzQkFBc0IsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU21hbGwgaGVscGVycyBzaGFyZWQgYnkgdGhlIHJlbGVhc2UgYnVpbHRpbiB0YXNrIGVudHJ5cG9pbnRzXG4vLyAoYHJlc29sdmUtdGFnYCwgYGRlY2lkZS1idW1wLXR5cGVgLCBgYXBwbHktYnVtcGApLlxuXG4vKipcbiAqIFJ1bnMgYSBidWlsdGluJ3MgYXN5bmMgYm9keSwgZXhpdGluZyBub24temVybyBvbiBmYWlsdXJlLiBQcmludHMgdGhlIGVycm9yJ3NcbiAqIHN0YWNrIHdoZW4gYXZhaWxhYmxlLCBvdGhlcndpc2UgaXRzIG1lc3NhZ2Uvc3RyaW5nIGZvcm0gLSBkYXggcGFyc2UgZXJyb3JzXG4gKiBhcmUgbm90IGBFcnJvcmAgaW5zdGFuY2VzIGFuZCBoYXZlIG5vIGAuc3RhY2tgLCBzbyBhIG5haXZlIGBjb25zb2xlLmxvZyhlLnN0YWNrKWBcbiAqIHdvdWxkIHByaW50IGEgYmFyZSBcInVuZGVmaW5lZFwiLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuQnVpbHRpbihib2R5OiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogdm9pZCB7XG4gIGJvZHkoKS5jYXRjaCgoZTogdW5rbm93bikgPT4ge1xuICAgIGNvbnN0IGVyciA9IGUgYXMgeyBzdGFjaz86IHN0cmluZzsgbWVzc2FnZT86IHN0cmluZyB9O1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyPy5zdGFjayA/PyBlcnI/Lm1lc3NhZ2UgPz8gU3RyaW5nKGUpKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH0pO1xufVxuXG4vKiogUmV0dXJucyBhIHJlcXVpcmVkIGVudiB2YXIsIHRocm93aW5nIGEgY2xlYXIgZXJyb3Igd2hlbiBpdCBpcyBtaXNzaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVFbnYobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdmFsdWUgPSBwcm9jZXNzLmVudltuYW1lXTtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtuYW1lfSBpcyByZXF1aXJlZGApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqIFBhcnNlcyBhbiBvcHRpb25hbCBpbnRlZ2VyIGVudiB2YXIsIHRocm93aW5nIHdoZW4gaXQgaXMgc2V0IGJ1dCBub3QgYSBudW1iZXIuICovXG5leHBvcnQgZnVuY3Rpb24gaW50RW52KG5hbWU6IHN0cmluZyk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJhdyA9IHByb2Nlc3MuZW52W25hbWVdO1xuICBpZiAocmF3ID09IG51bGwgfHwgcmF3ID09PSBcIlwiKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCB2YWx1ZSA9IHBhcnNlSW50KHJhdywgMTApO1xuICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtuYW1lfSBtdXN0IGJlIGEgbnVtYmVyOiAke3Jhd31gKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG4iXX0=