@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,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":"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,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AAElF,SAAS,kBAAkB,CACzB,EAAM,EACN,UAAqC,EAAE;IAEvC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvF,OAAO,6BAA6B,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,6BAA6B,CACpC,OAAoD,EACpD,EAAM,EACN,UAAqC,EAAE;IAEvC,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAY,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,CAAgB,IAAe;QACxG,OAAO,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,wBAAwB,EAAE;QACvD,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAO,CAAC;AAC/E,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAoD,EACpD,EAA2B,EAC3B,OAAgB,EAChB,IAAe,EACf,OAAkC,EAClC,KAAa;IAEb,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,aAAa,CAAC,MAAM,CAAC;gBAC1B,CAAC,CAAC,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC9H,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAoD,EACpD,MAAe,EACf,OAAkC,EAClC,IAAe,EACf,KAAa;IAEb,sBAAsB,CAAC,OAAO,EAAE,MAAa,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAc,EACd,MAAmD;IAEnD,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS,cAAc,KAAkB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS,cAAc,CAAgB,CAAU,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS,cAAc,CAAgB,CAAU,EAAE,CAAU,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpH,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS,cAAc,CAAgB,CAAU,EAAE,CAAU,EAAE,CAAU,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnI,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS,cAAc,CAAgB,CAAU,EAAE,CAAU,EAAE,CAAU,EAAE,CAAU,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClJ,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS,cAAc,CAAgB,CAAU,EAAE,CAAU,EAAE,CAAU,EAAE,CAAU,EAAE,CAAU,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjK,OAAO,CAAC,CAAC,OAAO,SAAS,cAAc,CAAgB,CAAU,EAAE,CAAU,EAAE,CAAU,EAAE,CAAU,EAAE,CAAU,EAAE,CAAU,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnL,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAqC,EAAM;IAChE,MAAM,QAAQ,GAAI,EAA8C,CAAC,wBAAwB,CAAC,CAAC;IAC3F,OAAO,CAAC,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAO,CAAC;AAChE,CAAC;AAED,OAAO,EACL,kBAAkB,EAClB,6BAA6B,GAC9B,CAAC"}
|
|
@@ -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"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
"bugs": {
|
|
3
3
|
"url": "https://github.com/Trebired/result/issues"
|
|
4
4
|
},
|
|
5
|
-
"
|
|
5
|
+
"dependencies": {
|
|
6
|
+
"@trebired/logger-adapter": "^0.2.2"
|
|
7
|
+
},
|
|
8
|
+
"description": "Shared result builders, response orchestration, and failure tracing for Bun and Node.js products.",
|
|
6
9
|
"devDependencies": {
|
|
7
10
|
"@trebired/code-discipline": "^3.1.1",
|
|
8
11
|
"@types/bun": "^1.3.4",
|
|
@@ -27,17 +30,30 @@
|
|
|
27
30
|
],
|
|
28
31
|
"homepage": "https://github.com/Trebired/result#readme",
|
|
29
32
|
"imports": {
|
|
33
|
+
"#0231fmpa2dc7": "./dist/trace/runtime.js",
|
|
34
|
+
"#0g27abpmv4cx": "./dist/process_hooks.js",
|
|
35
|
+
"#49kqgj47729a": "./dist/module_hooks.js",
|
|
36
|
+
"#9u38bvr71ysb": "./dist/logging.js",
|
|
37
|
+
"#f50kks3ik0zv": "./dist/instrument_result_exports.js",
|
|
30
38
|
"#fkl0t1n99da1": "./dist/responder_support.js",
|
|
31
39
|
"#index": "./dist/index.js",
|
|
40
|
+
"#j7kz1s2wcwqd": "./dist/tracer.js",
|
|
41
|
+
"#lm07mhb4j68n": "./dist/wrap/result/function.js",
|
|
42
|
+
"#mht13ofmb0kj": "./dist/wrap/result/promise.js",
|
|
43
|
+
"#ovyuo31bgsj9": "./dist/trace/capture.js",
|
|
32
44
|
"#presets": "./dist/presets.js",
|
|
45
|
+
"#qsb8x4t06m0e": "./dist/trace/types.js",
|
|
33
46
|
"#responder": "./dist/responder.js",
|
|
34
47
|
"#result": "./dist/result.js",
|
|
35
48
|
"#shared": "./dist/shared.js",
|
|
36
|
-
"#types": "./dist/types.js"
|
|
49
|
+
"#types": "./dist/types.js",
|
|
50
|
+
"#ypczi4qi4ap6": "./dist/trace/utils.js"
|
|
37
51
|
},
|
|
38
52
|
"keywords": [
|
|
39
53
|
"result",
|
|
40
54
|
"response",
|
|
55
|
+
"tracing",
|
|
56
|
+
"errors",
|
|
41
57
|
"http",
|
|
42
58
|
"rendering",
|
|
43
59
|
"backend",
|
|
@@ -67,5 +83,5 @@
|
|
|
67
83
|
},
|
|
68
84
|
"type": "module",
|
|
69
85
|
"types": "./dist/index.d.ts",
|
|
70
|
-
"version": "0.1
|
|
86
|
+
"version": "0.2.1"
|
|
71
87
|
}
|