@trebired/result 0.1.0 → 0.2.1
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/CHANGELOG.md +9 -0
- package/README.md +261 -20
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/instrument_result_exports.d.ts +6 -0
- package/dist/instrument_result_exports.d.ts.map +1 -0
- package/dist/instrument_result_exports.js +62 -0
- package/dist/instrument_result_exports.js.map +1 -0
- package/dist/logging.d.ts +4 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/logging.js +14 -0
- package/dist/logging.js.map +1 -0
- package/dist/module_hooks.d.ts +6 -0
- package/dist/module_hooks.d.ts.map +1 -0
- package/dist/module_hooks.js +90 -0
- package/dist/module_hooks.js.map +1 -0
- package/dist/process_hooks.d.ts +6 -0
- package/dist/process_hooks.d.ts.map +1 -0
- package/dist/process_hooks.js +69 -0
- package/dist/process_hooks.js.map +1 -0
- package/dist/responder.d.ts.map +1 -1
- package/dist/responder.js +6 -4
- package/dist/responder.js.map +1 -1
- package/dist/responder_support.d.ts +2 -2
- package/dist/responder_support.d.ts.map +1 -1
- package/dist/responder_support.js +2 -2
- package/dist/responder_support.js.map +1 -1
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/instrument_result_exports.d.ts +6 -0
- package/dist/src/instrument_result_exports.d.ts.map +1 -0
- package/dist/src/instrument_result_exports.js +62 -0
- package/dist/src/instrument_result_exports.js.map +1 -0
- package/dist/src/logging.d.ts +4 -0
- package/dist/src/logging.d.ts.map +1 -0
- package/dist/src/logging.js +14 -0
- package/dist/src/logging.js.map +1 -0
- package/dist/src/module_hooks.d.ts +6 -0
- package/dist/src/module_hooks.d.ts.map +1 -0
- package/dist/src/module_hooks.js +90 -0
- package/dist/src/module_hooks.js.map +1 -0
- package/dist/src/process_hooks.d.ts +6 -0
- package/dist/src/process_hooks.d.ts.map +1 -0
- package/dist/src/process_hooks.js +69 -0
- package/dist/src/process_hooks.js.map +1 -0
- package/dist/src/responder.d.ts.map +1 -1
- package/dist/src/responder.js +6 -4
- package/dist/src/responder.js.map +1 -1
- package/dist/src/responder_support.d.ts +2 -2
- package/dist/src/responder_support.d.ts.map +1 -1
- package/dist/src/responder_support.js +2 -2
- package/dist/src/responder_support.js.map +1 -1
- package/dist/src/trace/capture.d.ts +8 -0
- package/dist/src/trace/capture.d.ts.map +1 -0
- package/dist/src/trace/capture.js +47 -0
- package/dist/src/trace/capture.js.map +1 -0
- package/dist/src/trace/runtime.d.ts +51 -0
- package/dist/src/trace/runtime.d.ts.map +1 -0
- package/dist/src/trace/runtime.js +151 -0
- package/dist/src/trace/runtime.js.map +1 -0
- package/dist/src/trace/types.d.ts +121 -0
- package/dist/src/trace/types.d.ts.map +1 -0
- package/dist/src/trace/types.js +2 -0
- package/dist/src/trace/types.js.map +1 -0
- package/dist/src/trace/utils.d.ts +14 -0
- package/dist/src/trace/utils.d.ts.map +1 -0
- package/dist/src/trace/utils.js +150 -0
- package/dist/src/trace/utils.js.map +1 -0
- package/dist/src/tracer.d.ts +5 -0
- package/dist/src/tracer.d.ts.map +1 -0
- package/dist/src/tracer.js +76 -0
- package/dist/src/tracer.js.map +1 -0
- package/dist/src/types.d.ts +10 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/wrap/result/function.d.ts +6 -0
- package/dist/src/wrap/result/function.d.ts.map +1 -0
- package/dist/src/wrap/result/function.js +61 -0
- package/dist/src/wrap/result/function.js.map +1 -0
- package/dist/src/wrap/result/promise.d.ts +6 -0
- package/dist/src/wrap/result/promise.d.ts.map +1 -0
- package/dist/src/wrap/result/promise.js +45 -0
- package/dist/src/wrap/result/promise.js.map +1 -0
- package/dist/trace/capture.d.ts +8 -0
- package/dist/trace/capture.d.ts.map +1 -0
- package/dist/trace/capture.js +47 -0
- package/dist/trace/capture.js.map +1 -0
- package/dist/trace/runtime.d.ts +51 -0
- package/dist/trace/runtime.d.ts.map +1 -0
- package/dist/trace/runtime.js +151 -0
- package/dist/trace/runtime.js.map +1 -0
- package/dist/trace/types.d.ts +121 -0
- package/dist/trace/types.d.ts.map +1 -0
- package/dist/trace/types.js +2 -0
- package/dist/trace/types.js.map +1 -0
- package/dist/trace/utils.d.ts +14 -0
- package/dist/trace/utils.d.ts.map +1 -0
- package/dist/trace/utils.js +150 -0
- package/dist/trace/utils.js.map +1 -0
- package/dist/tracer.d.ts +5 -0
- package/dist/tracer.d.ts.map +1 -0
- package/dist/tracer.js +76 -0
- package/dist/tracer.js.map +1 -0
- package/dist/types.d.ts +10 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/wrap/result/function.d.ts +6 -0
- package/dist/wrap/result/function.d.ts.map +1 -0
- package/dist/wrap/result/function.js +61 -0
- package/dist/wrap/result/function.js.map +1 -0
- package/dist/wrap/result/promise.d.ts +6 -0
- package/dist/wrap/result/promise.d.ts.map +1 -0
- package/dist/wrap/result/promise.js +45 -0
- package/dist/wrap/result/promise.js.map +1 -0
- package/package.json +19 -3
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { getResultLevel, isObject, normalizeResultErrorCode, toResultStatus, } from "../../shared.js";
|
|
2
|
+
const STACK_LINE_PREFIX = /^\s*at\s+/u;
|
|
3
|
+
function normalizeTraceLabel(input, fallback = "trebired.result.trace") {
|
|
4
|
+
const label = typeof input === "string" ? input.trim() : "";
|
|
5
|
+
return label || fallback;
|
|
6
|
+
}
|
|
7
|
+
function isFailedResultLike(value) {
|
|
8
|
+
return isObject(value) && value.ok === false && getResultLevel(value) === "error";
|
|
9
|
+
}
|
|
10
|
+
function captureCallSite(input, maxLines = 8) {
|
|
11
|
+
const stack = compactStack(input, maxLines);
|
|
12
|
+
return {
|
|
13
|
+
stack,
|
|
14
|
+
site: stack[0] || null,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function compactStack(input, maxLines = 8) {
|
|
18
|
+
const stackSource = readStackSource(input);
|
|
19
|
+
return stackSource
|
|
20
|
+
.split("\n")
|
|
21
|
+
.map((line) => line.trim())
|
|
22
|
+
.filter(Boolean)
|
|
23
|
+
.filter((line) => STACK_LINE_PREFIX.test(line))
|
|
24
|
+
.map((line) => line.replace(STACK_LINE_PREFIX, ""))
|
|
25
|
+
.filter((line) => !line.includes("/trace/"))
|
|
26
|
+
.slice(0, Math.max(0, maxLines));
|
|
27
|
+
}
|
|
28
|
+
function normalizeThrownValue(value, preview, stackDepth) {
|
|
29
|
+
if (isFailedResultLike(value)) {
|
|
30
|
+
return summarizeFailedResult(value, preview, stackDepth);
|
|
31
|
+
}
|
|
32
|
+
const captured = captureCallSite(value, stackDepth);
|
|
33
|
+
const source = isObject(value) ? value : null;
|
|
34
|
+
return {
|
|
35
|
+
errorCode: normalizeResultErrorCode(source?.error_code || source?.code) || "thrown-error",
|
|
36
|
+
status: Number.isFinite(Number(source?.status)) ? toResultStatus(source?.status, 500) : null,
|
|
37
|
+
message: readThrownMessage(value),
|
|
38
|
+
compactStack: captured.stack,
|
|
39
|
+
failureSite: captured.site,
|
|
40
|
+
metadataSummary: null,
|
|
41
|
+
dataSummary: null,
|
|
42
|
+
detailsSummary: source?.details != null ? previewValue(source.details, preview) : null,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function summarizeFailedResult(result, preview, stackDepth) {
|
|
46
|
+
const captured = captureCallSite(result.stack, stackDepth);
|
|
47
|
+
return {
|
|
48
|
+
errorCode: normalizeResultErrorCode(result.error_code) || "failed",
|
|
49
|
+
status: Number.isFinite(Number(result.status)) ? toResultStatus(result.status, 500) : null,
|
|
50
|
+
message: typeof result.message === "string" && result.message.trim() ? result.message : "Result failed.",
|
|
51
|
+
compactStack: captured.stack,
|
|
52
|
+
failureSite: captured.site,
|
|
53
|
+
metadataSummary: isObject(result.meta) ? previewValue(result.meta, preview) : null,
|
|
54
|
+
dataSummary: result.data != null ? previewValue(result.data, preview) : null,
|
|
55
|
+
detailsSummary: result.details != null ? previewValue(result.details, preview) : null,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function previewCallArguments(args, preview) {
|
|
59
|
+
const maxItems = preview.maxItems || 5;
|
|
60
|
+
return args.slice(0, maxItems).map((value) => previewValue(value, preview));
|
|
61
|
+
}
|
|
62
|
+
function previewValue(value, preview) {
|
|
63
|
+
const state = {
|
|
64
|
+
depth: preview.maxDepth || 2,
|
|
65
|
+
items: preview.maxItems || 5,
|
|
66
|
+
length: preview.maxStringLength || 120,
|
|
67
|
+
seen: new WeakSet(),
|
|
68
|
+
};
|
|
69
|
+
return renderPreviewValue(value, state, 0);
|
|
70
|
+
}
|
|
71
|
+
function matchTraceTarget(target, include, exclude) {
|
|
72
|
+
if (exclude && matchesFilter(exclude, target)) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
return include ? matchesFilter(include, target) : true;
|
|
76
|
+
}
|
|
77
|
+
function isPlainObject(value) {
|
|
78
|
+
if (!isObject(value)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const prototype = Object.getPrototypeOf(value);
|
|
82
|
+
return prototype === Object.prototype || prototype === null;
|
|
83
|
+
}
|
|
84
|
+
function renderPreviewValue(value, state, level) {
|
|
85
|
+
if (value == null)
|
|
86
|
+
return String(value);
|
|
87
|
+
if (typeof value === "string")
|
|
88
|
+
return JSON.stringify(truncateString(value, state.length));
|
|
89
|
+
if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint")
|
|
90
|
+
return String(value);
|
|
91
|
+
if (typeof value === "function")
|
|
92
|
+
return `[Function ${value.name || "anonymous"}]`;
|
|
93
|
+
if (typeof value === "symbol")
|
|
94
|
+
return value.toString();
|
|
95
|
+
if (level >= state.depth)
|
|
96
|
+
return Array.isArray(value) ? "[Array]" : "[Object]";
|
|
97
|
+
if (typeof value !== "object")
|
|
98
|
+
return String(value);
|
|
99
|
+
if (state.seen.has(value))
|
|
100
|
+
return "[Circular]";
|
|
101
|
+
state.seen.add(value);
|
|
102
|
+
return Array.isArray(value)
|
|
103
|
+
? renderArrayPreview(value, state, level)
|
|
104
|
+
: renderObjectPreview(value, state, level);
|
|
105
|
+
}
|
|
106
|
+
function renderArrayPreview(value, state, level) {
|
|
107
|
+
const items = value.slice(0, state.items).map((entry) => renderPreviewValue(entry, state, level + 1));
|
|
108
|
+
return `[${items.join(", ")}${value.length > state.items ? ", ..." : ""}]`;
|
|
109
|
+
}
|
|
110
|
+
function renderObjectPreview(value, state, level) {
|
|
111
|
+
const entries = Object.entries(value)
|
|
112
|
+
.slice(0, state.items)
|
|
113
|
+
.map(([key, entry]) => `${key}: ${renderPreviewValue(entry, state, level + 1)}`);
|
|
114
|
+
return `{ ${entries.join(", ")}${Object.keys(value).length > state.items ? ", ..." : ""} }`;
|
|
115
|
+
}
|
|
116
|
+
function truncateString(value, length) {
|
|
117
|
+
return value.length > length ? `${value.slice(0, Math.max(0, length - 3))}...` : value;
|
|
118
|
+
}
|
|
119
|
+
function matchesFilter(filter, target) {
|
|
120
|
+
if (Array.isArray(filter)) {
|
|
121
|
+
return filter.some((entry) => matchesFilter(entry, target));
|
|
122
|
+
}
|
|
123
|
+
if (typeof filter === "string") {
|
|
124
|
+
return target.includes(filter);
|
|
125
|
+
}
|
|
126
|
+
return filter instanceof RegExp ? filter.test(target) : filter(target);
|
|
127
|
+
}
|
|
128
|
+
function readStackSource(input) {
|
|
129
|
+
if (typeof input === "string") {
|
|
130
|
+
return input;
|
|
131
|
+
}
|
|
132
|
+
if (isObject(input) && typeof input.stack === "string") {
|
|
133
|
+
return input.stack;
|
|
134
|
+
}
|
|
135
|
+
return new Error().stack || "";
|
|
136
|
+
}
|
|
137
|
+
function readThrownMessage(value) {
|
|
138
|
+
if (value instanceof Error && value.message) {
|
|
139
|
+
return value.message;
|
|
140
|
+
}
|
|
141
|
+
if (typeof value === "string" && value.trim()) {
|
|
142
|
+
return value;
|
|
143
|
+
}
|
|
144
|
+
if (isObject(value) && typeof value.message === "string" && value.message.trim()) {
|
|
145
|
+
return value.message;
|
|
146
|
+
}
|
|
147
|
+
return "Unknown failure.";
|
|
148
|
+
}
|
|
149
|
+
export { captureCallSite, compactStack, isFailedResultLike, isPlainObject, matchTraceTarget, normalizeThrownValue, normalizeTraceLabel, previewCallArguments, previewValue, summarizeFailedResult, };
|
|
150
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/trace/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { BootResultTracingOptions, ResultTraceConfig, ResultTracer, ResultTracingBoot } from "./trace/types.js";
|
|
2
|
+
declare function createResultTracer(config?: ResultTraceConfig): ResultTracer;
|
|
3
|
+
declare function bootResultTracing(config?: BootResultTracingOptions): ResultTracingBoot;
|
|
4
|
+
export { createResultTracer, bootResultTracing, };
|
|
5
|
+
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/tracer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,wBAAwB,EAExB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAE1B,iBAAS,kBAAkB,CAAC,MAAM,GAAE,iBAAsB,GAAG,YAAY,CA0CxE;AAED,iBAAS,iBAAiB,CAAC,MAAM,GAAE,wBAA6B,GAAG,iBAAiB,CAQnF;AAgCD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { traceErrorWithRuntime, traceFailureWithRuntime, traceResultWithRuntime, } from "./trace/capture.js";
|
|
2
|
+
import { instrumentResultExportsWithRuntime } from "./instrument_result_exports.js";
|
|
3
|
+
import { installResultModuleHooksWithRuntime } from "./module_hooks.js";
|
|
4
|
+
import { installResultProcessHooksWithRuntime } from "./process_hooks.js";
|
|
5
|
+
import { createResultTraceRuntime, RESULT_TRACER_RUNTIME_SYMBOL } from "./trace/runtime.js";
|
|
6
|
+
import { wrapResultFunctionWithRuntime } from "./wrap/result/function.js";
|
|
7
|
+
import { wrapResultPromiseWithRuntime } from "./wrap/result/promise.js";
|
|
8
|
+
function createResultTracer(config = {}) {
|
|
9
|
+
const runtime = createResultTraceRuntime(config);
|
|
10
|
+
const tracer = {
|
|
11
|
+
config: runtime.config,
|
|
12
|
+
traceFailure(failure, options) {
|
|
13
|
+
return traceFailureWithRuntime(runtime, failure, options);
|
|
14
|
+
},
|
|
15
|
+
traceResult(result, options) {
|
|
16
|
+
return traceResultWithRuntime(runtime, result, options);
|
|
17
|
+
},
|
|
18
|
+
traceError(error, options) {
|
|
19
|
+
return traceErrorWithRuntime(runtime, error, options);
|
|
20
|
+
},
|
|
21
|
+
wrapFunction(fn, options) {
|
|
22
|
+
return wrapResultFunctionWithRuntime(runtime, fn, options);
|
|
23
|
+
},
|
|
24
|
+
wrapPromise(promise, options) {
|
|
25
|
+
return wrapResultPromiseWithRuntime(runtime, promise, options);
|
|
26
|
+
},
|
|
27
|
+
instrumentExports(target, options) {
|
|
28
|
+
return instrumentResultExportsWithRuntime(runtime, target, options);
|
|
29
|
+
},
|
|
30
|
+
installProcessHooks(options) {
|
|
31
|
+
return installResultProcessHooksWithRuntime(runtime, options);
|
|
32
|
+
},
|
|
33
|
+
installModuleHooks(options) {
|
|
34
|
+
return installResultModuleHooksWithRuntime(runtime, options);
|
|
35
|
+
},
|
|
36
|
+
getTraceStack() {
|
|
37
|
+
return runtime.getTraceStack();
|
|
38
|
+
},
|
|
39
|
+
resetForTests() {
|
|
40
|
+
runtime.resetForTests();
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(tracer, RESULT_TRACER_RUNTIME_SYMBOL, {
|
|
44
|
+
value: runtime,
|
|
45
|
+
enumerable: false,
|
|
46
|
+
});
|
|
47
|
+
return tracer;
|
|
48
|
+
}
|
|
49
|
+
function bootResultTracing(config = {}) {
|
|
50
|
+
const tracer = createResultTracer(config);
|
|
51
|
+
return {
|
|
52
|
+
tracer,
|
|
53
|
+
processHooks: resolveBootProcessHooks(tracer, config),
|
|
54
|
+
moduleHooks: resolveBootModuleHooks(tracer, config),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function resolveBootProcessHooks(tracer, config) {
|
|
58
|
+
if (config.processHooks === false) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
if (!config.processHooks) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
return tracer.installProcessHooks(config.processHooks === true ? {} : config.processHooks);
|
|
65
|
+
}
|
|
66
|
+
function resolveBootModuleHooks(tracer, config) {
|
|
67
|
+
if (config.moduleHooks === false) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
if (!config.moduleHooks) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return tracer.installModuleHooks(config.moduleHooks === true ? {} : config.moduleHooks);
|
|
74
|
+
}
|
|
75
|
+
export { createResultTracer, bootResultTracing, };
|
|
76
|
+
//# sourceMappingURL=tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/tracer.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import type { LoggerAdapterEvent, LoggerAdapterGenericLogMethod, LoggerAdapterLogger, LoggerAdapterLogMethod, LoggerAdapterWriter, NormalizedLoggerAdapter } from "@trebired/logger-adapter";
|
|
1
2
|
export type MaybePromise<T> = T | Promise<T>;
|
|
2
3
|
export type ResultLevel = "ok" | "noop" | "error";
|
|
3
4
|
export type ResultMetadata = Record<string, unknown>;
|
|
5
|
+
export type ResultLogMethod = LoggerAdapterLogMethod;
|
|
6
|
+
export type ResultGenericLogMethod = LoggerAdapterGenericLogMethod;
|
|
7
|
+
export type ResultLogger = LoggerAdapterLogger;
|
|
8
|
+
export type ResultLoggerAdapter = LoggerAdapterWriter;
|
|
9
|
+
export type NormalizedResultLogger = NormalizedLoggerAdapter;
|
|
10
|
+
export type ResultLogEvent = LoggerAdapterEvent;
|
|
4
11
|
export type ResultLike<TData = unknown, TDetails = unknown, TMeta extends ResultMetadata = ResultMetadata> = {
|
|
5
12
|
ok: boolean;
|
|
6
13
|
error: boolean;
|
|
@@ -39,9 +46,6 @@ export interface ResolveResultPresetInput<TType extends string = string> {
|
|
|
39
46
|
status?: number | null;
|
|
40
47
|
type?: TType | null;
|
|
41
48
|
}
|
|
42
|
-
export interface ResultResponderLogger {
|
|
43
|
-
error?(scope: string, message: string, meta?: ResultMetadata): void;
|
|
44
|
-
}
|
|
45
49
|
export interface ResultRespondInput<Req = unknown, Res = unknown, TType extends string = string> {
|
|
46
50
|
req?: Req;
|
|
47
51
|
res: Res;
|
|
@@ -92,7 +96,8 @@ export interface ResultTextContext<Req = unknown, Res = unknown, TType extends s
|
|
|
92
96
|
}
|
|
93
97
|
export interface ResultResponderConfig<Req = unknown, Res = unknown, TType extends string = string> {
|
|
94
98
|
presets?: ResultPresetMap<TType>;
|
|
95
|
-
logger?:
|
|
99
|
+
logger?: ResultLogger;
|
|
100
|
+
loggerAdapter?: ResultLoggerAdapter;
|
|
96
101
|
json(context: ResultJsonContext<Req, Res, TType>): MaybePromise<unknown>;
|
|
97
102
|
render?(context: ResultRenderContext<Req, Res, TType>): MaybePromise<unknown>;
|
|
98
103
|
text(context: ResultTextContext<Req, Res, TType>): MaybePromise<unknown>;
|
|
@@ -102,4 +107,5 @@ export interface ResultResponder<Req = unknown, Res = unknown, TType extends str
|
|
|
102
107
|
respond(input: ResultRespondInput<Req, Res, TType>): MaybePromise<unknown>;
|
|
103
108
|
resolvePreset(input: Omit<ResolveResultPresetInput<TType>, "presets">): ResultPreset;
|
|
104
109
|
}
|
|
110
|
+
export type * from "./trace/types.js";
|
|
105
111
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,UAAU,CACpB,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc,IAC3C;IACF,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,WAAW,UAAU,CACzB,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,cAAc,GAAG,cAAc;IAE7C,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IAC9D,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IACvD,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,WAAW,wBAAwB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IACrE,OAAO,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createResultTraceRuntime } from "../../../trace/runtime.js";
|
|
2
|
+
import type { WrapResultFunctionOptions } from "../../../trace/types.js";
|
|
3
|
+
declare function wrapResultFunction<Fn extends (...args: any[]) => any>(fn: Fn, options?: WrapResultFunctionOptions): Fn;
|
|
4
|
+
declare function wrapResultFunctionWithRuntime<Fn extends (...args: any[]) => any>(runtime: ReturnType<typeof createResultTraceRuntime>, fn: Fn, options?: WrapResultFunctionOptions): Fn;
|
|
5
|
+
export { wrapResultFunction, wrapResultFunctionWithRuntime, };
|
|
6
|
+
//# sourceMappingURL=function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../../../src/wrap/result/function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAqD,MAAM,eAAe,CAAC;AAG5G,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAK/D,iBAAS,kBAAkB,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC5D,EAAE,EAAE,EAAE,EACN,OAAO,GAAE,yBAA8B,GACtC,EAAE,CAGJ;AAED,iBAAS,6BAA6B,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACvE,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,EACpD,EAAE,EAAE,EAAE,EACN,OAAO,GAAE,yBAA8B,GACtC,EAAE,CAmBJ;AAsDD,OAAO,EACL,kBAAkB,EAClB,6BAA6B,GAC9B,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { traceErrorWithRuntime, traceResultWithRuntime } from "../../../trace/capture.js";
|
|
2
|
+
import { createResultTraceRuntime, getCachedEntry, readTracerRuntime, setCachedEntry } from "../../../trace/runtime.js";
|
|
3
|
+
import { normalizeTraceLabel } from "../../../trace/utils.js";
|
|
4
|
+
import { isPromiseLike } from "../../../shared.js";
|
|
5
|
+
import { wrapResultPromiseWithRuntime } from "./promise.js";
|
|
6
|
+
const ORIGINAL_FUNCTION_SYMBOL = Symbol.for("@trebired/result/original-function");
|
|
7
|
+
function wrapResultFunction(fn, options = {}) {
|
|
8
|
+
const runtime = readTracerRuntime(options.tracer) || createResultTraceRuntime(options);
|
|
9
|
+
return wrapResultFunctionWithRuntime(runtime, fn, options);
|
|
10
|
+
}
|
|
11
|
+
function wrapResultFunctionWithRuntime(runtime, fn, options = {}) {
|
|
12
|
+
const original = unwrapFunction(fn);
|
|
13
|
+
const label = normalizeTraceLabel(options.label || original.name, "trebired.result.function");
|
|
14
|
+
const cached = getCachedEntry(runtime.functionCache, original, label);
|
|
15
|
+
if (cached) {
|
|
16
|
+
return cached;
|
|
17
|
+
}
|
|
18
|
+
const wrapped = createArityWrapper(original.length, function wrappedInvoker(args) {
|
|
19
|
+
return invokeWrappedFunction(runtime, original, this, args, options, label);
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(wrapped, ORIGINAL_FUNCTION_SYMBOL, {
|
|
22
|
+
value: original,
|
|
23
|
+
enumerable: false,
|
|
24
|
+
});
|
|
25
|
+
return setCachedEntry(runtime.functionCache, original, label, wrapped);
|
|
26
|
+
}
|
|
27
|
+
function invokeWrappedFunction(runtime, fn, thisArg, args, options, label) {
|
|
28
|
+
return runtime.withTraceLabel(label, () => {
|
|
29
|
+
try {
|
|
30
|
+
const output = Reflect.apply(fn, thisArg, args);
|
|
31
|
+
return isPromiseLike(output)
|
|
32
|
+
? wrapResultPromiseWithRuntime(runtime, Promise.resolve(output), { ...options, args, label, source: options.source || label })
|
|
33
|
+
: completeSyncTrace(runtime, output, options, args, label);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
traceErrorWithRuntime(runtime, error, { ...options, args, label });
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function completeSyncTrace(runtime, output, options, args, label) {
|
|
42
|
+
traceResultWithRuntime(runtime, output, { ...options, args, label });
|
|
43
|
+
return output;
|
|
44
|
+
}
|
|
45
|
+
function createArityWrapper(length, invoke) {
|
|
46
|
+
switch (Math.max(0, Math.min(length, 6))) {
|
|
47
|
+
case 0: return function resultWrapper0() { return invoke.call(this, []); };
|
|
48
|
+
case 1: return function resultWrapper1(a) { return invoke.call(this, [a]); };
|
|
49
|
+
case 2: return function resultWrapper2(a, b) { return invoke.call(this, [a, b]); };
|
|
50
|
+
case 3: return function resultWrapper3(a, b, c) { return invoke.call(this, [a, b, c]); };
|
|
51
|
+
case 4: return function resultWrapper4(a, b, c, d) { return invoke.call(this, [a, b, c, d]); };
|
|
52
|
+
case 5: return function resultWrapper5(a, b, c, d, e) { return invoke.call(this, [a, b, c, d, e]); };
|
|
53
|
+
default: return function resultWrapper6(a, b, c, d, e, f) { return invoke.call(this, [a, b, c, d, e, f]); };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function unwrapFunction(fn) {
|
|
57
|
+
const original = fn[ORIGINAL_FUNCTION_SYMBOL];
|
|
58
|
+
return (typeof original === "function" ? original : fn);
|
|
59
|
+
}
|
|
60
|
+
export { wrapResultFunction, wrapResultFunctionWithRuntime, };
|
|
61
|
+
//# sourceMappingURL=function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/wrap/result/function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createResultTraceRuntime } from "../../../trace/runtime.js";
|
|
2
|
+
import type { WrapResultPromiseOptions } from "../../../trace/types.js";
|
|
3
|
+
declare function wrapResultPromise<T>(promise: Promise<T>, options?: WrapResultPromiseOptions): Promise<T>;
|
|
4
|
+
declare function wrapResultPromiseWithRuntime<T>(runtime: ReturnType<typeof createResultTraceRuntime>, promise: Promise<T>, options?: WrapResultPromiseOptions): Promise<T>;
|
|
5
|
+
export { wrapResultPromise, wrapResultPromiseWithRuntime, };
|
|
6
|
+
//# sourceMappingURL=promise.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/wrap/result/promise.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAqD,MAAM,eAAe,CAAC;AAE5G,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAI9D,iBAAS,iBAAiB,CAAC,CAAC,EAC1B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,CAAC,CAAC,CAGZ;AAED,iBAAS,4BAA4B,CAAC,CAAC,EACrC,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,EACpD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,CAAC,CAAC,CAqCZ;AAOD,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAC7B,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { traceErrorWithRuntime, traceResultWithRuntime } from "../../../trace/capture.js";
|
|
2
|
+
import { createResultTraceRuntime, getCachedEntry, readTracerRuntime, setCachedEntry } from "../../../trace/runtime.js";
|
|
3
|
+
import { captureCallSite, normalizeTraceLabel } from "../../../trace/utils.js";
|
|
4
|
+
const ORIGINAL_PROMISE_SYMBOL = Symbol.for("@trebired/result/original-promise");
|
|
5
|
+
function wrapResultPromise(promise, options = {}) {
|
|
6
|
+
const runtime = readTracerRuntime(options.tracer) || createResultTraceRuntime(options);
|
|
7
|
+
return wrapResultPromiseWithRuntime(runtime, promise, options);
|
|
8
|
+
}
|
|
9
|
+
function wrapResultPromiseWithRuntime(runtime, promise, options = {}) {
|
|
10
|
+
const original = unwrapPromise(promise);
|
|
11
|
+
const label = normalizeTraceLabel(options.label, "trebired.result.promise");
|
|
12
|
+
const source = options.source || captureCallSite(undefined, runtime.config.stackDepth).site;
|
|
13
|
+
const cached = getCachedEntry(runtime.promiseCache, original, label);
|
|
14
|
+
if (cached) {
|
|
15
|
+
return cached;
|
|
16
|
+
}
|
|
17
|
+
const traceStack = runtime.getTraceStack();
|
|
18
|
+
const wrapped = Promise.resolve(original).then((value) => runtime.runWithTraceStack(traceStack, () => {
|
|
19
|
+
traceResultWithRuntime(runtime, value, {
|
|
20
|
+
...options,
|
|
21
|
+
label,
|
|
22
|
+
source,
|
|
23
|
+
});
|
|
24
|
+
return value;
|
|
25
|
+
}), (error) => runtime.runWithTraceStack(traceStack, () => {
|
|
26
|
+
traceErrorWithRuntime(runtime, error, {
|
|
27
|
+
...options,
|
|
28
|
+
kind: "reject",
|
|
29
|
+
label,
|
|
30
|
+
source,
|
|
31
|
+
});
|
|
32
|
+
throw error;
|
|
33
|
+
}));
|
|
34
|
+
Object.defineProperty(wrapped, ORIGINAL_PROMISE_SYMBOL, {
|
|
35
|
+
value: original,
|
|
36
|
+
enumerable: false,
|
|
37
|
+
});
|
|
38
|
+
return setCachedEntry(runtime.promiseCache, original, label, wrapped);
|
|
39
|
+
}
|
|
40
|
+
function unwrapPromise(promise) {
|
|
41
|
+
const original = promise[ORIGINAL_PROMISE_SYMBOL];
|
|
42
|
+
return (original instanceof Promise ? original : promise);
|
|
43
|
+
}
|
|
44
|
+
export { wrapResultPromise, wrapResultPromiseWithRuntime, };
|
|
45
|
+
//# sourceMappingURL=promise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../../src/wrap/result/promise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGrE,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AAEhF,SAAS,iBAAiB,CACxB,OAAmB,EACnB,UAAoC,EAAE;IAEtC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvF,OAAO,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAoD,EACpD,OAAmB,EACnB,UAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAC5F,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAErE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE;QACpD,sBAAsB,CAAC,OAAO,EAAE,KAAY,EAAE;YAC5C,GAAG,OAAO;YACV,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,EACF,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE;QACpD,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE;YACpC,GAAG,OAAO;YACV,IAAI,EAAE,QAAQ;YACd,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,uBAAuB,EAAE;QACtD,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAe,CAAC;AACtF,CAAC;AAED,SAAS,aAAa,CAAI,OAAmB;IAC3C,MAAM,QAAQ,GAAI,OAAmD,CAAC,uBAAuB,CAAC,CAAC;IAC/F,OAAO,CAAC,QAAQ,YAAY,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAe,CAAC;AAC1E,CAAC;AAED,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAC7B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createResultTraceRuntime } from "./runtime.js";
|
|
2
|
+
import type { ResultTraceContextInput, ResultTraceRecord } from "./types.js";
|
|
3
|
+
import type { ResultLike } from "../types.js";
|
|
4
|
+
declare function traceResultWithRuntime(runtime: ReturnType<typeof createResultTraceRuntime>, result: ResultLike | null | undefined, options?: ResultTraceContextInput): ResultTraceRecord | null;
|
|
5
|
+
declare function traceErrorWithRuntime(runtime: ReturnType<typeof createResultTraceRuntime>, error: unknown, options?: ResultTraceContextInput): ResultTraceRecord | null;
|
|
6
|
+
declare function traceFailureWithRuntime(runtime: ReturnType<typeof createResultTraceRuntime>, failure: unknown, options?: ResultTraceContextInput): ResultTraceRecord | null;
|
|
7
|
+
export { traceErrorWithRuntime, traceFailureWithRuntime, traceResultWithRuntime, };
|
|
8
|
+
//# sourceMappingURL=capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../src/trace/capture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAmB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,iBAAS,sBAAsB,CAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,EACpD,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EACrC,OAAO,GAAE,uBAA4B,GACpC,iBAAiB,GAAG,IAAI,CAW1B;AAED,iBAAS,qBAAqB,CAC5B,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,EACpD,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,uBAA4B,GACpC,iBAAiB,GAAG,IAAI,CAO1B;AAED,iBAAS,uBAAuB,CAC9B,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,EACpD,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,uBAA4B,GACpC,iBAAiB,GAAG,IAAI,CAI1B;AA+BD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,GACvB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { normalizeResultErrorCode } from "../shared.js";
|
|
2
|
+
import { captureCallSite, isFailedResultLike, normalizeThrownValue, normalizeTraceLabel, previewCallArguments, summarizeFailedResult } from "./utils.js";
|
|
3
|
+
function traceResultWithRuntime(runtime, result, options = {}) {
|
|
4
|
+
if (!isFailedResultLike(result)) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
if (runtime.markTraced(result)) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const summary = summarizeFailedResult(result, runtime.config.summaryPreview, runtime.config.stackDepth);
|
|
11
|
+
return emitTraceRecord(runtime, options.kind || "result", summary, options, runtime.config.failedResultSeverity);
|
|
12
|
+
}
|
|
13
|
+
function traceErrorWithRuntime(runtime, error, options = {}) {
|
|
14
|
+
if (runtime.markTraced(error)) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const summary = normalizeThrownValue(error, runtime.config.summaryPreview, runtime.config.stackDepth);
|
|
18
|
+
return emitTraceRecord(runtime, options.kind || "throw", summary, options, "error");
|
|
19
|
+
}
|
|
20
|
+
function traceFailureWithRuntime(runtime, failure, options = {}) {
|
|
21
|
+
return isFailedResultLike(failure)
|
|
22
|
+
? traceResultWithRuntime(runtime, failure, options)
|
|
23
|
+
: traceErrorWithRuntime(runtime, failure, options);
|
|
24
|
+
}
|
|
25
|
+
function emitTraceRecord(runtime, kind, summary, options, severity) {
|
|
26
|
+
const label = normalizeTraceLabel(options.label || runtime.getTraceStack().slice(-1)[0], "trebired.result.trace");
|
|
27
|
+
const record = {
|
|
28
|
+
createdAt: new Date().toISOString(),
|
|
29
|
+
kind,
|
|
30
|
+
severity: options.severity || severity,
|
|
31
|
+
label,
|
|
32
|
+
errorCode: normalizeResultErrorCode(options.errorCode) || summary.errorCode,
|
|
33
|
+
status: typeof options.status === "number" ? options.status : summary.status,
|
|
34
|
+
message: typeof options.message === "string" && options.message.trim() ? options.message : summary.message,
|
|
35
|
+
compactStack: summary.compactStack,
|
|
36
|
+
failureSite: summary.failureSite || captureCallSite(undefined, runtime.config.stackDepth).site,
|
|
37
|
+
argumentPreview: previewCallArguments(options.args || [], runtime.config.argumentPreview),
|
|
38
|
+
metadataSummary: summary.metadataSummary,
|
|
39
|
+
dataSummary: summary.dataSummary,
|
|
40
|
+
detailsSummary: summary.detailsSummary,
|
|
41
|
+
source: options.source || null,
|
|
42
|
+
traceStack: runtime.getTraceStack(),
|
|
43
|
+
};
|
|
44
|
+
return runtime.emit(record);
|
|
45
|
+
}
|
|
46
|
+
export { traceErrorWithRuntime, traceFailureWithRuntime, traceResultWithRuntime, };
|
|
47
|
+
//# sourceMappingURL=capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../src/trace/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
import type { ResultTraceConfig, ResultTraceRecord, ResultTracer } from "./types.js";
|
|
3
|
+
declare const RESULT_TRACER_RUNTIME_SYMBOL: unique symbol;
|
|
4
|
+
declare function createResultTraceRuntime(config?: ResultTraceConfig): {
|
|
5
|
+
emit(record: ResultTraceRecord): ResultTraceRecord | null;
|
|
6
|
+
getTraceStack(): string[];
|
|
7
|
+
runWithTraceStack<T>(stack: string[], callback: () => T): T;
|
|
8
|
+
withTraceLabel<T>(label: string, callback: () => T): T;
|
|
9
|
+
markTraced(value: unknown): boolean;
|
|
10
|
+
resetForTests(): void;
|
|
11
|
+
config: {
|
|
12
|
+
argumentPreview: {
|
|
13
|
+
maxDepth: number;
|
|
14
|
+
maxItems: number;
|
|
15
|
+
maxStringLength: number;
|
|
16
|
+
};
|
|
17
|
+
summaryPreview: {
|
|
18
|
+
maxDepth: number;
|
|
19
|
+
maxItems: number;
|
|
20
|
+
maxStringLength: number;
|
|
21
|
+
};
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
logger?: import("../types.js").ResultLogger;
|
|
24
|
+
loggerAdapter?: import("../types.js").ResultLoggerAdapter;
|
|
25
|
+
onTrace?(record: ResultTraceRecord): import("../types.js").MaybePromise<void>;
|
|
26
|
+
include?: import("./types.js").ResultTraceFilter;
|
|
27
|
+
exclude?: import("./types.js").ResultTraceFilter;
|
|
28
|
+
objectDepth: number;
|
|
29
|
+
stackDepth: number;
|
|
30
|
+
failedResultSeverity: "warn" | "error";
|
|
31
|
+
};
|
|
32
|
+
storage: AsyncLocalStorage<string[]>;
|
|
33
|
+
functionCache: WeakMap<Function, Map<string, Function>>;
|
|
34
|
+
promiseCache: WeakMap<Promise<unknown>, Map<string, Promise<unknown>>>;
|
|
35
|
+
objectCache: WeakMap<object, Map<string, unknown>>;
|
|
36
|
+
tracedObjects: WeakSet<object>;
|
|
37
|
+
processHooks: Map<object, {
|
|
38
|
+
installed: boolean;
|
|
39
|
+
uninstall(): void;
|
|
40
|
+
}>;
|
|
41
|
+
moduleHooks: Map<object, {
|
|
42
|
+
installed: boolean;
|
|
43
|
+
uninstall(): void;
|
|
44
|
+
}>;
|
|
45
|
+
moduleFailureKeys: Set<string>;
|
|
46
|
+
};
|
|
47
|
+
declare function readTracerRuntime(tracer?: ResultTracer): ReturnType<typeof createResultTraceRuntime> | null;
|
|
48
|
+
declare function getCachedEntry<TKey extends object, TValue>(cache: WeakMap<TKey, Map<string, TValue>>, key: TKey, cacheKey: string): TValue | undefined;
|
|
49
|
+
declare function setCachedEntry<TKey extends object, TValue>(cache: WeakMap<TKey, Map<string, TValue>>, key: TKey, cacheKey: string, value: TValue): TValue;
|
|
50
|
+
export { RESULT_TRACER_RUNTIME_SYMBOL, createResultTraceRuntime, getCachedEntry, readTracerRuntime, setCachedEntry, };
|
|
51
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/trace/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,QAAA,MAAM,4BAA4B,eAAyC,CAAC;AAS5E,iBAAS,wBAAwB,CAAC,MAAM,GAAE,iBAAsB;iBAO/C,iBAAiB;;sBAYZ,CAAC,SAAS,MAAM,EAAE,YAAY,MAAM,CAAC,GAAG,CAAC;mBAG5C,CAAC,SAAS,MAAM,YAAY,MAAM,CAAC,GAAG,CAAC;sBAGpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA6CkB,OAAO;qBAAe,IAAI;;;mBAC3B,OAAO;qBAAe,IAAI;;;EA9BvE;AAqDD,iBAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,GAAG,IAAI,CAKpG;AAED,iBAAS,cAAc,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,EACjD,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzC,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAEpB;AAED,iBAAS,cAAc,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,EACjD,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzC,GAAG,EAAE,IAAI,EACT,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,MAAM,CAKR;AA2DD,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,CAAC"}
|