errors.mjs
19 lines 660 B
Raw
sha256:700fafdd1afa490919f9515d660ca6e75456bcd5bb67513abcd8757a634c01f6 docs: record AIP-b SD-21 land (KN #308) Human 9 days ago
1 /**
2 * CLI error handling: exit 1 (usage) / 2 (runtime), optional JSON error object. SPEC §4.2, §4.3.
3 */
4
5 /**
6 * Print error and exit. With useJson, writes { "error": message, "code": code } to stderr and exits.
7 * @param {string} message
8 * @param {1|2} code - 1 = usage, 2 = runtime
9 * @param {boolean} useJson - If true, output JSON error object to stderr
10 */
11 export function exitWithError(message, code = 1, useJson = false) {
12 if (useJson) {
13 const err = { error: message, code: code === 1 ? 'USAGE_ERROR' : 'RUNTIME_ERROR' };
14 process.stderr.write(JSON.stringify(err) + '\n');
15 } else {
16 console.error(message);
17 }
18 process.exit(code);
19 }
File History 1 commit
sha256:700fafdd1afa490919f9515d660ca6e75456bcd5bb67513abcd8757a634c01f6 docs: record AIP-b SD-21 land (KN #308) Human 9 days ago