@orion-agents/orion-code 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -3
- package/README.zh-CN.md +34 -4
- package/dist/framework/tool.d.ts +3 -0
- package/dist/framework/tool.d.ts.map +1 -1
- package/dist/framework/tool.js.map +1 -1
- package/dist/memory/embeddings.d.ts.map +1 -1
- package/dist/memory/embeddings.js +3 -2
- package/dist/memory/embeddings.js.map +1 -1
- package/dist/memory/semantic-search.d.ts.map +1 -1
- package/dist/memory/semantic-search.js +2 -1
- package/dist/memory/semantic-search.js.map +1 -1
- package/dist/memory/vector-store.d.ts.map +1 -1
- package/dist/memory/vector-store.js +7 -3
- package/dist/memory/vector-store.js.map +1 -1
- package/dist/migration/migrate.d.ts.map +1 -1
- package/dist/migration/migrate.js +7 -11
- package/dist/migration/migrate.js.map +1 -1
- package/dist/runtime/agent-runtime-protocol.d.ts +4 -1
- package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-protocol.js +6 -0
- package/dist/runtime/agent-runtime-protocol.js.map +1 -1
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +52 -2
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/model-coordinator.d.ts.map +1 -1
- package/dist/runtime/model-coordinator.js.map +1 -1
- package/dist/runtime/subagents/child-executor-guard.d.ts.map +1 -1
- package/dist/runtime/subagents/child-executor-guard.js +4 -0
- package/dist/runtime/subagents/child-executor-guard.js.map +1 -1
- package/dist/runtime/subagents/index.d.ts +10 -3
- package/dist/runtime/subagents/index.d.ts.map +1 -1
- package/dist/runtime/subagents/index.js +24 -1
- package/dist/runtime/subagents/index.js.map +1 -1
- package/dist/runtime/subagents/provider-gate.d.ts.map +1 -1
- package/dist/runtime/subagents/provider-gate.js +0 -1
- package/dist/runtime/subagents/provider-gate.js.map +1 -1
- package/dist/runtime/subagents/research-artifact.d.ts +94 -0
- package/dist/runtime/subagents/research-artifact.d.ts.map +1 -0
- package/dist/runtime/subagents/research-artifact.js +164 -0
- package/dist/runtime/subagents/research-artifact.js.map +1 -0
- package/dist/runtime/subagents/research-citation.d.ts +66 -0
- package/dist/runtime/subagents/research-citation.d.ts.map +1 -0
- package/dist/runtime/subagents/research-citation.js +185 -0
- package/dist/runtime/subagents/research-citation.js.map +1 -0
- package/dist/runtime/subagents/research-contract.d.ts +69 -0
- package/dist/runtime/subagents/research-contract.d.ts.map +1 -0
- package/dist/runtime/subagents/research-contract.js +232 -0
- package/dist/runtime/subagents/research-contract.js.map +1 -0
- package/dist/runtime/subagents/research-quality.d.ts +47 -0
- package/dist/runtime/subagents/research-quality.d.ts.map +1 -0
- package/dist/runtime/subagents/research-quality.js +125 -0
- package/dist/runtime/subagents/research-quality.js.map +1 -0
- package/dist/runtime/subagents/research-renderer.d.ts +79 -0
- package/dist/runtime/subagents/research-renderer.d.ts.map +1 -0
- package/dist/runtime/subagents/research-renderer.js +154 -0
- package/dist/runtime/subagents/research-renderer.js.map +1 -0
- package/dist/runtime/subagents/research-types.d.ts +105 -0
- package/dist/runtime/subagents/research-types.d.ts.map +1 -0
- package/dist/runtime/subagents/research-types.js +16 -0
- package/dist/runtime/subagents/research-types.js.map +1 -0
- package/dist/runtime/subagents/runtime-integration.d.ts +1 -1
- package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
- package/dist/runtime/subagents/runtime-integration.js.map +1 -1
- package/dist/runtime/subagents/supervisor.d.ts +1 -1
- package/dist/runtime/subagents/supervisor.d.ts.map +1 -1
- package/dist/runtime/subagents/supervisor.js +1 -1
- package/dist/runtime/subagents/supervisor.js.map +1 -1
- package/dist/runtime/subagents/web-research-adapter.d.ts +83 -0
- package/dist/runtime/subagents/web-research-adapter.d.ts.map +1 -0
- package/dist/runtime/subagents/web-research-adapter.js +262 -0
- package/dist/runtime/subagents/web-research-adapter.js.map +1 -0
- package/dist/runtime/ui-events.d.ts +4 -0
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/services/auth/auth.d.ts.map +1 -1
- package/dist/services/auth/auth.js +17 -4
- package/dist/services/auth/auth.js.map +1 -1
- package/dist/services/concurrent-sessions.d.ts.map +1 -1
- package/dist/services/concurrent-sessions.js +33 -17
- package/dist/services/concurrent-sessions.js.map +1 -1
- package/dist/services/config-dir.d.ts.map +1 -1
- package/dist/services/config-dir.js +19 -5
- package/dist/services/config-dir.js.map +1 -1
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js.map +1 -1
- package/dist/services/goal-storage.d.ts.map +1 -1
- package/dist/services/goal-storage.js +22 -8
- package/dist/services/goal-storage.js.map +1 -1
- package/dist/services/llm.d.ts +17 -0
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +88 -31
- package/dist/services/llm.js.map +1 -1
- package/dist/services/provider-resilience/coordinator.d.ts +1 -1
- package/dist/services/provider-resilience/coordinator.d.ts.map +1 -1
- package/dist/services/provider-resilience/coordinator.js +4 -4
- package/dist/services/provider-resilience/coordinator.js.map +1 -1
- package/dist/services/provider-resilience/error-classifier.js +20 -8
- package/dist/services/provider-resilience/error-classifier.js.map +1 -1
- package/dist/services/provider-resilience/stream-recovery.d.ts +1 -1
- package/dist/services/provider-resilience/stream-recovery.d.ts.map +1 -1
- package/dist/services/provider-resilience/stream-recovery.js +1 -1
- package/dist/services/provider-resilience/stream-recovery.js.map +1 -1
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +45 -14
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/storage-maintenance.d.ts.map +1 -1
- package/dist/services/storage-maintenance.js +44 -9
- package/dist/services/storage-maintenance.js.map +1 -1
- package/dist/services/task-manager.d.ts +3 -3
- package/dist/services/task-manager.d.ts.map +1 -1
- package/dist/services/web-search-adapters.d.ts.map +1 -1
- package/dist/services/web-search-adapters.js +48 -18
- package/dist/services/web-search-adapters.js.map +1 -1
- package/dist/services/web-search-mcp.d.ts.map +1 -1
- package/dist/services/web-search-mcp.js +27 -11
- package/dist/services/web-search-mcp.js.map +1 -1
- package/dist/services/yaml-config.d.ts.map +1 -1
- package/dist/services/yaml-config.js +2 -1
- package/dist/services/yaml-config.js.map +1 -1
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +3 -2
- package/dist/skills/loader.js.map +1 -1
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +5 -0
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/terminal-ui/raw-editor.js.map +1 -1
- package/dist/tools/bash_security.d.ts +50 -18
- package/dist/tools/bash_security.d.ts.map +1 -1
- package/dist/tools/bash_security.js +394 -61
- package/dist/tools/bash_security.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +31 -18
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp.d.ts +8 -2
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/mcp.js +44 -23
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tui-core/frame.js.map +1 -1
- package/dist/tui-ui/layout.js.map +1 -1
- package/dist/tui-ui/runner.js.map +1 -1
- package/dist/utils/debug-log.d.ts +52 -0
- package/dist/utils/debug-log.d.ts.map +1 -0
- package/dist/utils/debug-log.js +91 -0
- package/dist/utils/debug-log.js.map +1 -0
- package/dist/utils/errors.d.ts +25 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +47 -0
- package/dist/utils/errors.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostics boundary for intentionally-swallowed errors.
|
|
3
|
+
*
|
|
4
|
+
* A large part of the codebase deliberately tolerates failures: a missing
|
|
5
|
+
* config file, a non-git directory, a corrupt session record. The historical
|
|
6
|
+
* pattern for those paths was a parameterless `catch {}`, which discards the
|
|
7
|
+
* error object entirely. That is fine for control flow and catastrophic for
|
|
8
|
+
* diagnosis — once the exception is gone there is nothing left to explain why
|
|
9
|
+
* a session failed to persist or why a provider silently fell back.
|
|
10
|
+
*
|
|
11
|
+
* `debugError` keeps the tolerant behaviour but preserves the signal: the
|
|
12
|
+
* error is routed to stderr only when the user opts in via `ORION_CODE_DEBUG`.
|
|
13
|
+
* Default runs stay completely silent, so the TUI is never polluted.
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* try {
|
|
19
|
+
* writeFileSync(path, data);
|
|
20
|
+
* } catch (error) {
|
|
21
|
+
* debugError('session-storage.save', error, path);
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
/** Environment variable that opts into diagnostic output. */
|
|
26
|
+
export declare const DEBUG_ENV_VAR = "ORION_CODE_DEBUG";
|
|
27
|
+
/**
|
|
28
|
+
* Whether diagnostics are enabled.
|
|
29
|
+
*
|
|
30
|
+
* Read on every call (not cached) so tests and long-lived processes can flip
|
|
31
|
+
* the flag at runtime.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isDebugEnabled(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Render an unknown thrown value as a single-line, human-readable string.
|
|
36
|
+
*
|
|
37
|
+
* `catch` can receive anything, not just `Error`, so this normalises strings,
|
|
38
|
+
* plain objects and `undefined` instead of printing `[object Object]`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatError(error: unknown): string;
|
|
41
|
+
/**
|
|
42
|
+
* Report a swallowed error.
|
|
43
|
+
*
|
|
44
|
+
* No-op unless `ORION_CODE_DEBUG` is set, and never throws — a diagnostics
|
|
45
|
+
* helper must not be able to break the path it is instrumenting.
|
|
46
|
+
*
|
|
47
|
+
* @param scope Dotted identifier of the call site, e.g. `auth.load`.
|
|
48
|
+
* @param error The caught value.
|
|
49
|
+
* @param detail Optional extra context (a path, an id, a provider name).
|
|
50
|
+
*/
|
|
51
|
+
export declare function debugError(scope: string, error: unknown, detail?: string): void;
|
|
52
|
+
//# sourceMappingURL=debug-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-log.d.ts","sourceRoot":"","sources":["../../src/utils/debug-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,6DAA6D;AAC7D,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAKhD;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAGxC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAalD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAU/E"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Diagnostics boundary for intentionally-swallowed errors.
|
|
4
|
+
*
|
|
5
|
+
* A large part of the codebase deliberately tolerates failures: a missing
|
|
6
|
+
* config file, a non-git directory, a corrupt session record. The historical
|
|
7
|
+
* pattern for those paths was a parameterless `catch {}`, which discards the
|
|
8
|
+
* error object entirely. That is fine for control flow and catastrophic for
|
|
9
|
+
* diagnosis — once the exception is gone there is nothing left to explain why
|
|
10
|
+
* a session failed to persist or why a provider silently fell back.
|
|
11
|
+
*
|
|
12
|
+
* `debugError` keeps the tolerant behaviour but preserves the signal: the
|
|
13
|
+
* error is routed to stderr only when the user opts in via `ORION_CODE_DEBUG`.
|
|
14
|
+
* Default runs stay completely silent, so the TUI is never polluted.
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* try {
|
|
20
|
+
* writeFileSync(path, data);
|
|
21
|
+
* } catch (error) {
|
|
22
|
+
* debugError('session-storage.save', error, path);
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.DEBUG_ENV_VAR = void 0;
|
|
28
|
+
exports.isDebugEnabled = isDebugEnabled;
|
|
29
|
+
exports.formatError = formatError;
|
|
30
|
+
exports.debugError = debugError;
|
|
31
|
+
/** Environment variable that opts into diagnostic output. */
|
|
32
|
+
exports.DEBUG_ENV_VAR = 'ORION_CODE_DEBUG';
|
|
33
|
+
/** Prefix used for every diagnostic line so output is greppable. */
|
|
34
|
+
const LOG_PREFIX = '[orion:debug]';
|
|
35
|
+
/**
|
|
36
|
+
* Whether diagnostics are enabled.
|
|
37
|
+
*
|
|
38
|
+
* Read on every call (not cached) so tests and long-lived processes can flip
|
|
39
|
+
* the flag at runtime.
|
|
40
|
+
*/
|
|
41
|
+
function isDebugEnabled() {
|
|
42
|
+
const value = process.env[exports.DEBUG_ENV_VAR];
|
|
43
|
+
return value === '1' || value === 'true';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Render an unknown thrown value as a single-line, human-readable string.
|
|
47
|
+
*
|
|
48
|
+
* `catch` can receive anything, not just `Error`, so this normalises strings,
|
|
49
|
+
* plain objects and `undefined` instead of printing `[object Object]`.
|
|
50
|
+
*/
|
|
51
|
+
function formatError(error) {
|
|
52
|
+
if (error instanceof Error) {
|
|
53
|
+
return error.stack ? error.stack.split('\n').slice(0, 3).join(' | ') : error.message;
|
|
54
|
+
}
|
|
55
|
+
if (typeof error === 'string')
|
|
56
|
+
return error;
|
|
57
|
+
if (error === undefined)
|
|
58
|
+
return '(no error value)';
|
|
59
|
+
try {
|
|
60
|
+
return JSON.stringify(error) ?? String(error);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// The value is not serialisable (cycles, getters that throw); its string
|
|
64
|
+
// form is the best remaining signal and cannot itself fail here.
|
|
65
|
+
return String(error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Report a swallowed error.
|
|
70
|
+
*
|
|
71
|
+
* No-op unless `ORION_CODE_DEBUG` is set, and never throws — a diagnostics
|
|
72
|
+
* helper must not be able to break the path it is instrumenting.
|
|
73
|
+
*
|
|
74
|
+
* @param scope Dotted identifier of the call site, e.g. `auth.load`.
|
|
75
|
+
* @param error The caught value.
|
|
76
|
+
* @param detail Optional extra context (a path, an id, a provider name).
|
|
77
|
+
*/
|
|
78
|
+
function debugError(scope, error, detail) {
|
|
79
|
+
if (!isDebugEnabled())
|
|
80
|
+
return;
|
|
81
|
+
try {
|
|
82
|
+
const suffix = detail ? ` [${detail}]` : '';
|
|
83
|
+
console.error(`${LOG_PREFIX} ${scope}${suffix}: ${formatError(error)}`);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// Writing diagnostics must never escalate into a real failure (closed
|
|
87
|
+
// stderr, EPIPE on a killed pager). Dropping the line is the correct
|
|
88
|
+
// outcome here — there is nowhere left to report it to.
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=debug-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-log.js","sourceRoot":"","sources":["../../src/utils/debug-log.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAcH,wCAGC;AAQD,kCAaC;AAYD,gCAUC;AA1DD,6DAA6D;AAChD,QAAA,aAAa,GAAG,kBAAkB,CAAC;AAEhD,oEAAoE;AACpE,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC;;;;;GAKG;AACH,SAAgB,cAAc;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAa,CAAC,CAAC;IACzC,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IACvF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC;IACnD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,iEAAiE;QACjE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,UAAU,CAAC,KAAa,EAAE,KAAc,EAAE,MAAe;IACvE,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,KAAK,GAAG,MAAM,KAAK,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,qEAAqE;QACrE,wDAAwD;IAC1D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers for reading a caught value safely.
|
|
3
|
+
*
|
|
4
|
+
* TypeScript types `catch` bindings as `unknown`, and the codebase used to
|
|
5
|
+
* work around that by writing `catch (err: any)` and reaching for
|
|
6
|
+
* `err.message`. That silently produces the string `"undefined"` whenever
|
|
7
|
+
* something other than an `Error` is thrown — a rejected promise carrying a
|
|
8
|
+
* string, an axios object, a `throw { code }` — which is exactly when a clear
|
|
9
|
+
* message matters most.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Extract a human-readable message from any thrown value.
|
|
13
|
+
*
|
|
14
|
+
* - `Error` -> `error.message`
|
|
15
|
+
* - `string` -> the string itself
|
|
16
|
+
* - `{ message: '…' }` -> that message (axios/node-fetch style error objects)
|
|
17
|
+
* - anything else -> `String(value)`
|
|
18
|
+
*/
|
|
19
|
+
export declare function errorMessage(error: unknown): string;
|
|
20
|
+
/**
|
|
21
|
+
* Read the `code` property that Node's `ErrnoException` and most HTTP clients
|
|
22
|
+
* attach (`ENOENT`, `EACCES`, `ECONNREFUSED`, …), without asserting a type.
|
|
23
|
+
*/
|
|
24
|
+
export declare function errorCode(error: unknown): string | undefined;
|
|
25
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQnD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAM5D"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Helpers for reading a caught value safely.
|
|
4
|
+
*
|
|
5
|
+
* TypeScript types `catch` bindings as `unknown`, and the codebase used to
|
|
6
|
+
* work around that by writing `catch (err: any)` and reaching for
|
|
7
|
+
* `err.message`. That silently produces the string `"undefined"` whenever
|
|
8
|
+
* something other than an `Error` is thrown — a rejected promise carrying a
|
|
9
|
+
* string, an axios object, a `throw { code }` — which is exactly when a clear
|
|
10
|
+
* message matters most.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.errorMessage = errorMessage;
|
|
14
|
+
exports.errorCode = errorCode;
|
|
15
|
+
/**
|
|
16
|
+
* Extract a human-readable message from any thrown value.
|
|
17
|
+
*
|
|
18
|
+
* - `Error` -> `error.message`
|
|
19
|
+
* - `string` -> the string itself
|
|
20
|
+
* - `{ message: '…' }` -> that message (axios/node-fetch style error objects)
|
|
21
|
+
* - anything else -> `String(value)`
|
|
22
|
+
*/
|
|
23
|
+
function errorMessage(error) {
|
|
24
|
+
if (error instanceof Error)
|
|
25
|
+
return error.message;
|
|
26
|
+
if (typeof error === 'string')
|
|
27
|
+
return error;
|
|
28
|
+
if (typeof error === 'object' && error !== null) {
|
|
29
|
+
const message = error.message;
|
|
30
|
+
if (typeof message === 'string' && message)
|
|
31
|
+
return message;
|
|
32
|
+
}
|
|
33
|
+
return String(error);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Read the `code` property that Node's `ErrnoException` and most HTTP clients
|
|
37
|
+
* attach (`ENOENT`, `EACCES`, `ECONNREFUSED`, …), without asserting a type.
|
|
38
|
+
*/
|
|
39
|
+
function errorCode(error) {
|
|
40
|
+
if (typeof error === 'object' && error !== null) {
|
|
41
|
+
const code = error.code;
|
|
42
|
+
if (typeof code === 'string')
|
|
43
|
+
return code;
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAUH,oCAQC;AAMD,8BAMC;AA5BD;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,OAAO,GAAI,KAA+B,CAAC,OAAO,CAAC;QACzD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;QAChD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|