@shivaedev/effect-trpc 0.1.0 → 0.1.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 +7 -0
- package/dist/internal/procedure-handler.d.ts.map +1 -1
- package/dist/internal/procedure-handler.js +5 -2
- package/dist/internal/procedure-handler.js.map +1 -1
- package/dist/internal/runtime.d.ts +1 -0
- package/dist/internal/runtime.d.ts.map +1 -1
- package/dist/internal/runtime.js +5 -5
- package/dist/internal/runtime.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/procedure-handler.ts +5 -4
- package/src/internal/runtime.ts +9 -7
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedure-handler.d.ts","sourceRoot":"","sources":["../../src/internal/procedure-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,UAAU,mBAAmB,CAAC,OAAO,EAAE,KAAK;IAC3C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,eAAO,MAAM,oBAAoB,GAChC,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,MAAM,EAEN,SAAS,aAAa,CAAC,mBAAmB,CAAC,EAC3C,UAAU,uBAAuB,CAChC,KAAK,EACL,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAC/C,MAAM,CACN,EACD,iBAAiB,8BAA8B,CAC9C,OAAO,EACP,gBAAgB,EAChB,UAAU,CACV,EACD,WAAW,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,MAIxB,YAAY,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"procedure-handler.d.ts","sourceRoot":"","sources":["../../src/internal/procedure-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,UAAU,mBAAmB,CAAC,OAAO,EAAE,KAAK;IAC3C,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,eAAO,MAAM,oBAAoB,GAChC,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,MAAM,EAEN,SAAS,aAAa,CAAC,mBAAmB,CAAC,EAC3C,UAAU,uBAAuB,CAChC,KAAK,EACL,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAC/C,MAAM,CACN,EACD,iBAAiB,8BAA8B,CAC9C,OAAO,EACP,gBAAgB,EAChB,UAAU,CACV,EACD,WAAW,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,MAIxB,YAAY,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,oBAY7D,CAAC"}
|
|
@@ -2,9 +2,12 @@ import { Effect } from "effect";
|
|
|
2
2
|
export const makeProcedureHandler = (runtime, resolver, requestServices, procedure) => {
|
|
3
3
|
const tracedResolver = Effect.fnUntraced(resolver);
|
|
4
4
|
return async (invocation) => {
|
|
5
|
-
const
|
|
5
|
+
const info = { ...procedure, path: invocation.path };
|
|
6
|
+
const provided = Effect.suspend(() => runtime
|
|
7
|
+
.instrument(tracedResolver(invocation.input), info)
|
|
8
|
+
.pipe(Effect.provide(requestServices.layer(invocation.ctx))));
|
|
6
9
|
return await runtime.runEffect(provided, {
|
|
7
|
-
procedure:
|
|
10
|
+
procedure: info,
|
|
8
11
|
...(invocation.signal === undefined ? {} : { signal: invocation.signal }),
|
|
9
12
|
});
|
|
10
13
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedure-handler.js","sourceRoot":"","sources":["../../src/internal/procedure-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAahC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAQnC,OAA2C,EAC3C,QAIC,EACD,eAIC,EACD,SAAsC,EACrC,EAAE;IACH,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEnD,OAAO,KAAK,EAAE,UAA+C,EAAE,EAAE;QAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CACpC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"procedure-handler.js","sourceRoot":"","sources":["../../src/internal/procedure-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAahC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAQnC,OAA2C,EAC3C,QAIC,EACD,eAIC,EACD,SAAsC,EACrC,EAAE;IACH,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEnD,OAAO,KAAK,EAAE,UAA+C,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CACpC,OAAO;aACL,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;aAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAC7D,CAAC;QACF,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE;YACxC,SAAS,EAAE,IAAI;YACf,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;SACzE,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ interface RunEffectOptions {
|
|
|
6
6
|
readonly signal?: AbortSignal;
|
|
7
7
|
}
|
|
8
8
|
export interface RuntimeBridge<Requirements> {
|
|
9
|
+
readonly instrument: EffectTRPCInstrument;
|
|
9
10
|
readonly runEffect: <Value>(effect: Effect.Effect<Value, unknown, Requirements>, options: RunEffectOptions) => Promise<Value>;
|
|
10
11
|
}
|
|
11
12
|
export declare const makeRuntimeBridge: <Requirements, RuntimeError>(runtime: ManagedRuntime.ManagedRuntime<Requirements, RuntimeError>, contextBridge: ContextBridge, options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/internal/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,MAAM,EAEN,KAAK,cAAc,EAGnB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACX,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,UAAU,gBAAgB;IACzB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa,CAAC,YAAY;IAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EACnD,OAAO,EAAE,gBAAgB,KACrB,OAAO,CAAC,KAAK,CAAC,CAAC;CACpB;AA4BD,eAAO,MAAM,iBAAiB,GAAI,YAAY,EAAE,YAAY,EAC3D,SAAS,cAAc,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,EAClE,eAAe,aAAa,EAC5B,SAAS;IACR,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAC1C,KACC,aAAa,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/internal/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAGN,MAAM,EAEN,KAAK,cAAc,EAGnB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACX,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,UAAU,gBAAgB;IACzB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa,CAAC,YAAY;IAC1C,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EACnD,OAAO,EAAE,gBAAgB,KACrB,OAAO,CAAC,KAAK,CAAC,CAAC;CACpB;AA4BD,eAAO,MAAM,iBAAiB,GAAI,YAAY,EAAE,YAAY,EAC3D,SAAS,cAAc,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,EAClE,eAAe,aAAa,EAC5B,SAAS;IACR,QAAQ,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAC1C,KACC,aAAa,CAAC,YAAY,CAqE3B,CAAC"}
|
package/dist/internal/runtime.js
CHANGED
|
@@ -17,6 +17,9 @@ const mapError = (error, origin, procedure, consumerMapper) => {
|
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
export const makeRuntimeBridge = (runtime, contextBridge, options) => ({
|
|
20
|
+
instrument: (effect, procedure) => Effect.suspend(() => options.instrument === undefined
|
|
21
|
+
? effect
|
|
22
|
+
: options.instrument(effect, procedure)),
|
|
20
23
|
runEffect: async (effect, runOptions) => {
|
|
21
24
|
const traced = effect.pipe(Effect.withSpan(runOptions.procedure.path, {
|
|
22
25
|
attributes: {
|
|
@@ -27,13 +30,10 @@ export const makeRuntimeBridge = (runtime, contextBridge, options) => ({
|
|
|
27
30
|
}, {
|
|
28
31
|
captureStackTrace: runOptions.procedure.captureStackTrace,
|
|
29
32
|
}));
|
|
30
|
-
const instrumented = Effect.suspend(() => options.instrument === undefined
|
|
31
|
-
? traced
|
|
32
|
-
: options.instrument(traced, runOptions.procedure));
|
|
33
33
|
const ambient = contextBridge.current();
|
|
34
34
|
const runnable = ambient === undefined
|
|
35
|
-
?
|
|
36
|
-
: Effect.flatMap(runtime.contextEffect, (base) => Effect.provideContext(
|
|
35
|
+
? traced
|
|
36
|
+
: Effect.flatMap(runtime.contextEffect, (base) => Effect.provideContext(traced, Context.merge(base, ambient)));
|
|
37
37
|
const exit = await runtime.runPromiseExit(runnable, runOptions.signal === undefined
|
|
38
38
|
? undefined
|
|
39
39
|
: { signal: runOptions.signal });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/internal/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACN,KAAK,EACL,OAAO,EACP,MAAM,EACN,IAAI,EAEJ,MAAM,EACN,MAAM,GACN,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/internal/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -35,13 +35,14 @@ export const makeProcedureHandler = <
|
|
|
35
35
|
const tracedResolver = Effect.fnUntraced(resolver);
|
|
36
36
|
|
|
37
37
|
return async (invocation: ProcedureInvocation<Context, Input>) => {
|
|
38
|
+
const info = { ...procedure, path: invocation.path };
|
|
38
39
|
const provided = Effect.suspend(() =>
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
runtime
|
|
41
|
+
.instrument(tracedResolver(invocation.input), info)
|
|
42
|
+
.pipe(Effect.provide(requestServices.layer(invocation.ctx))),
|
|
42
43
|
);
|
|
43
44
|
return await runtime.runEffect(provided, {
|
|
44
|
-
procedure:
|
|
45
|
+
procedure: info,
|
|
45
46
|
...(invocation.signal === undefined ? {} : { signal: invocation.signal }),
|
|
46
47
|
});
|
|
47
48
|
};
|
package/src/internal/runtime.ts
CHANGED
|
@@ -21,6 +21,7 @@ interface RunEffectOptions {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export interface RuntimeBridge<Requirements> {
|
|
24
|
+
readonly instrument: EffectTRPCInstrument;
|
|
24
25
|
readonly runEffect: <Value>(
|
|
25
26
|
effect: Effect.Effect<Value, unknown, Requirements>,
|
|
26
27
|
options: RunEffectOptions,
|
|
@@ -61,6 +62,12 @@ export const makeRuntimeBridge = <Requirements, RuntimeError>(
|
|
|
61
62
|
readonly mapError?: EffectTRPCErrorMapper;
|
|
62
63
|
},
|
|
63
64
|
): RuntimeBridge<Requirements> => ({
|
|
65
|
+
instrument: (effect, procedure) =>
|
|
66
|
+
Effect.suspend(() =>
|
|
67
|
+
options.instrument === undefined
|
|
68
|
+
? effect
|
|
69
|
+
: options.instrument(effect, procedure),
|
|
70
|
+
),
|
|
64
71
|
runEffect: async (effect, runOptions) => {
|
|
65
72
|
const traced = effect.pipe(
|
|
66
73
|
Effect.withSpan(
|
|
@@ -77,17 +84,12 @@ export const makeRuntimeBridge = <Requirements, RuntimeError>(
|
|
|
77
84
|
},
|
|
78
85
|
),
|
|
79
86
|
);
|
|
80
|
-
const instrumented = Effect.suspend(() =>
|
|
81
|
-
options.instrument === undefined
|
|
82
|
-
? traced
|
|
83
|
-
: options.instrument(traced, runOptions.procedure),
|
|
84
|
-
);
|
|
85
87
|
const ambient = contextBridge.current();
|
|
86
88
|
const runnable =
|
|
87
89
|
ambient === undefined
|
|
88
|
-
?
|
|
90
|
+
? traced
|
|
89
91
|
: Effect.flatMap(runtime.contextEffect, (base) =>
|
|
90
|
-
Effect.provideContext(
|
|
92
|
+
Effect.provideContext(traced, Context.merge(base, ambient)),
|
|
91
93
|
);
|
|
92
94
|
const exit = await runtime.runPromiseExit(
|
|
93
95
|
runnable,
|