@shivaedev/effect-trpc 0.3.4 → 0.4.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 +47 -1
- package/README.md +93 -0
- package/dist/adapter.d.ts +6 -5
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +2 -1
- package/dist/adapter.js.map +1 -1
- package/dist/client/rejection.d.ts +11 -0
- package/dist/client/rejection.d.ts.map +1 -0
- package/dist/client/rejection.js +9 -0
- package/dist/client/rejection.js.map +1 -0
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/context-bridge.d.ts.map +1 -1
- package/dist/internal/context-bridge.js +1 -2
- package/dist/internal/context-bridge.js.map +1 -1
- package/dist/internal/loose.d.ts +4 -0
- package/dist/internal/loose.d.ts.map +1 -0
- package/dist/internal/loose.js +7 -0
- package/dist/internal/loose.js.map +1 -0
- package/dist/internal/procedure-handler.d.ts +5 -12
- package/dist/internal/procedure-handler.d.ts.map +1 -1
- package/dist/internal/procedure-handler.js +3 -4
- package/dist/internal/procedure-handler.js.map +1 -1
- package/dist/internal/procedure-types.d.ts +17 -4
- package/dist/internal/procedure-types.d.ts.map +1 -1
- package/dist/internal/runtime.d.ts +4 -4
- package/dist/internal/runtime.d.ts.map +1 -1
- package/dist/internal/runtime.js +5 -13
- package/dist/internal/runtime.js.map +1 -1
- package/dist/internal/subscription-handler.d.ts +5 -12
- package/dist/internal/subscription-handler.d.ts.map +1 -1
- package/dist/internal/subscription-handler.js +5 -6
- package/dist/internal/subscription-handler.js.map +1 -1
- package/dist/procedure.d.ts +6 -8
- package/dist/procedure.d.ts.map +1 -1
- package/dist/procedure.js +8 -17
- package/dist/procedure.js.map +1 -1
- package/dist/rejection-formatter.d.ts +18 -0
- package/dist/rejection-formatter.d.ts.map +1 -0
- package/dist/rejection-formatter.js +24 -0
- package/dist/rejection-formatter.js.map +1 -0
- package/dist/rejection.d.ts +26 -0
- package/dist/rejection.d.ts.map +1 -0
- package/dist/rejection.js +32 -0
- package/dist/rejection.js.map +1 -0
- package/dist/request-services.d.ts.map +1 -1
- package/dist/request-services.js.map +1 -1
- package/dist/request-signal.d.ts.map +1 -1
- package/dist/request-signal.js.map +1 -1
- package/dist/testing/any-test-layer.d.ts +3 -0
- package/dist/testing/any-test-layer.d.ts.map +1 -0
- package/dist/testing/any-test-layer.js +2 -0
- package/dist/testing/any-test-layer.js.map +1 -0
- package/dist/testing/caller.d.ts +5 -3
- package/dist/testing/caller.d.ts.map +1 -1
- package/dist/testing/caller.js +12 -11
- package/dist/testing/caller.js.map +1 -1
- package/dist/testing/types.d.ts +5 -4
- package/dist/testing/types.d.ts.map +1 -1
- package/dist/testing/vitest.d.ts +4 -3
- package/dist/testing/vitest.d.ts.map +1 -1
- package/dist/testing/vitest.js +13 -14
- package/dist/testing/vitest.js.map +1 -1
- package/dist/testing.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -3
- package/src/adapter.ts +24 -76
- package/src/client/rejection.ts +19 -0
- package/src/client.ts +1 -0
- package/src/errors.ts +8 -19
- package/src/index.ts +9 -6
- package/src/internal/context-bridge.ts +3 -10
- package/src/internal/loose.ts +14 -0
- package/src/internal/procedure-handler.ts +11 -34
- package/src/internal/procedure-types.ts +37 -50
- package/src/internal/runtime.ts +14 -49
- package/src/internal/subscription-handler.ts +15 -47
- package/src/procedure.ts +33 -142
- package/src/rejection-formatter.ts +33 -0
- package/src/rejection.ts +60 -0
- package/src/request-services.ts +5 -25
- package/src/request-signal.ts +1 -4
- package/src/testing/any-test-layer.ts +3 -0
- package/src/testing/caller.ts +29 -32
- package/src/testing/types.ts +15 -47
- package/src/testing/vitest.ts +19 -51
- package/src/testing.ts +3 -3
- package/src/types.ts +3 -12
package/src/testing/vitest.ts
CHANGED
|
@@ -1,79 +1,47 @@
|
|
|
1
1
|
import { it as effectIt, type Vitest } from "@effect/vitest";
|
|
2
2
|
import { makeEffectIt } from "@shivaedev/effect-test";
|
|
3
3
|
import { Effect, type Layer } from "effect";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
CallerResult,
|
|
8
|
-
MakeTrpcHarnessItOptions,
|
|
9
|
-
MakeTrpcItOptions,
|
|
10
|
-
TrpcHarnessIt,
|
|
11
|
-
TrpcIt,
|
|
12
|
-
} from "./types.js";
|
|
4
|
+
import type { AnyTestLayer } from "./any-test-layer.ts";
|
|
5
|
+
import { makeEffectCallerFactory } from "./caller.ts";
|
|
6
|
+
import type { CallerOptions, CallerResult, MakeTrpcHarnessItOptions, MakeTrpcItOptions, TrpcHarnessIt, TrpcIt } from "./types.ts";
|
|
13
7
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
readonly effectTRPC: Tester;
|
|
18
|
-
} =>
|
|
19
|
-
new Proxy(effectIt, {
|
|
8
|
+
function withEffectTRPC<Tester>(tester: Tester): Vitest.Methods & { readonly effectTRPC: Tester };
|
|
9
|
+
function withEffectTRPC(tester: unknown): unknown {
|
|
10
|
+
return new Proxy(effectIt, {
|
|
20
11
|
get(target, property, receiver) {
|
|
21
12
|
if (property === "effectTRPC") {
|
|
22
13
|
return tester;
|
|
23
14
|
}
|
|
24
15
|
return Reflect.get(target, property, receiver);
|
|
25
16
|
},
|
|
26
|
-
})
|
|
17
|
+
});
|
|
18
|
+
}
|
|
27
19
|
|
|
28
|
-
export
|
|
29
|
-
CreateCaller extends (...arguments_: never[]) => object,
|
|
30
|
-
// biome-ignore lint/suspicious/noExplicitAny: Layer output and error are recovered with Layer utility types
|
|
31
|
-
TestLayer extends Layer.Layer<any, any, never>,
|
|
32
|
-
Harness,
|
|
33
|
-
>(
|
|
20
|
+
export function makeTrpcHarnessIt<CreateCaller extends (...arguments_: never[]) => object, TestLayer extends AnyTestLayer, Harness>(
|
|
34
21
|
options: MakeTrpcHarnessItOptions<CreateCaller, TestLayer, Harness>,
|
|
35
|
-
): TrpcHarnessIt<Harness, Layer.Success<TestLayer
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
22
|
+
): TrpcHarnessIt<Harness, Layer.Success<TestLayer>>;
|
|
23
|
+
export function makeTrpcHarnessIt<TestLayer extends AnyTestLayer, Harness>(
|
|
24
|
+
options: MakeTrpcHarnessItOptions<(options?: unknown) => object, TestLayer, Harness>,
|
|
25
|
+
): unknown {
|
|
40
26
|
const { effectApp } = makeEffectIt({
|
|
41
27
|
around: options.around,
|
|
42
28
|
clock: options.clock,
|
|
43
29
|
layer: options.layer,
|
|
44
30
|
makeHarness: (context) =>
|
|
45
31
|
Effect.gen(function* () {
|
|
46
|
-
const services = yield* Effect.context<
|
|
47
|
-
const trpc = makeEffectCallerFactory(
|
|
48
|
-
options.adapter,
|
|
49
|
-
// CreateCaller is a rest-never function type. The option and
|
|
50
|
-
// result aliases are the factory TypeScript cannot recover here.
|
|
51
|
-
options.createCaller as unknown as (options?: Options) => Caller,
|
|
52
|
-
services,
|
|
53
|
-
);
|
|
32
|
+
const services = yield* Effect.context<Layer.Success<TestLayer>>();
|
|
33
|
+
const trpc = makeEffectCallerFactory(options.adapter, options.createCaller, services);
|
|
54
34
|
return yield* options.makeHarness(trpc, context);
|
|
55
35
|
}),
|
|
56
36
|
});
|
|
57
37
|
|
|
58
38
|
return withEffectTRPC(effectApp);
|
|
59
|
-
}
|
|
39
|
+
}
|
|
60
40
|
|
|
61
|
-
export const makeTrpcIt = <
|
|
62
|
-
CreateCaller extends (...arguments_: never[]) => object,
|
|
63
|
-
// biome-ignore lint/suspicious/noExplicitAny: Layer output and error are recovered with Layer utility types
|
|
64
|
-
TestLayer extends Layer.Layer<any, any, never>,
|
|
65
|
-
>(
|
|
41
|
+
export const makeTrpcIt = <CreateCaller extends (...arguments_: never[]) => object, TestLayer extends AnyTestLayer>(
|
|
66
42
|
options: MakeTrpcItOptions<CreateCaller, TestLayer>,
|
|
67
|
-
): TrpcIt<
|
|
68
|
-
CallerOptions<CreateCaller>,
|
|
69
|
-
CallerResult<CreateCaller>,
|
|
70
|
-
Layer.Success<TestLayer>
|
|
71
|
-
> =>
|
|
43
|
+
): TrpcIt<CallerOptions<CreateCaller>, CallerResult<CreateCaller>, Layer.Success<TestLayer>> =>
|
|
72
44
|
makeTrpcHarnessIt({
|
|
73
45
|
...options,
|
|
74
46
|
makeHarness: (trpc) => Effect.succeed(trpc),
|
|
75
|
-
})
|
|
76
|
-
CallerOptions<CreateCaller>,
|
|
77
|
-
CallerResult<CreateCaller>,
|
|
78
|
-
Layer.Success<TestLayer>
|
|
79
|
-
>;
|
|
47
|
+
});
|
package/src/testing.ts
CHANGED
|
@@ -3,7 +3,7 @@ export {
|
|
|
3
3
|
type EffectCallerFactory,
|
|
4
4
|
makeEffectCaller,
|
|
5
5
|
makeEffectCallerFactory,
|
|
6
|
-
} from "./testing/caller.
|
|
6
|
+
} from "./testing/caller.ts";
|
|
7
7
|
export type {
|
|
8
8
|
CallerOptions,
|
|
9
9
|
CallerResult,
|
|
@@ -15,5 +15,5 @@ export type {
|
|
|
15
15
|
TrpcIt,
|
|
16
16
|
TrpcTest,
|
|
17
17
|
TrpcTester,
|
|
18
|
-
} from "./testing/types.
|
|
19
|
-
export { makeTrpcHarnessIt, makeTrpcIt } from "./testing/vitest.
|
|
18
|
+
} from "./testing/types.ts";
|
|
19
|
+
export { makeTrpcHarnessIt, makeTrpcIt } from "./testing/vitest.ts";
|
package/src/types.ts
CHANGED
|
@@ -13,17 +13,8 @@ export interface EffectTRPCErrorContext extends ProcedureInfo {
|
|
|
13
13
|
readonly origin: "defect" | "failure";
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export type EffectTRPCErrorMapper = (
|
|
17
|
-
error: unknown,
|
|
18
|
-
context: EffectTRPCErrorContext,
|
|
19
|
-
) => TRPCError | undefined;
|
|
16
|
+
export type EffectTRPCErrorMapper = (error: unknown, context: EffectTRPCErrorContext) => TRPCError | undefined;
|
|
20
17
|
|
|
21
|
-
export type EffectTRPCInstrument = <A, E, R>(
|
|
22
|
-
effect: Effect.Effect<A, E, R>,
|
|
23
|
-
procedure: ProcedureInfo,
|
|
24
|
-
) => Effect.Effect<A, E, R>;
|
|
18
|
+
export type EffectTRPCInstrument = <A, E, R>(effect: Effect.Effect<A, E, R>, procedure: ProcedureInfo) => Effect.Effect<A, E, R>;
|
|
25
19
|
|
|
26
|
-
export type EffectTRPCStreamInstrument = <A, E, R>(
|
|
27
|
-
stream: Stream.Stream<A, E, R>,
|
|
28
|
-
procedure: ProcedureInfo,
|
|
29
|
-
) => Stream.Stream<A, E, R>;
|
|
20
|
+
export type EffectTRPCStreamInstrument = <A, E, R>(stream: Stream.Stream<A, E, R>, procedure: ProcedureInfo) => Stream.Stream<A, E, R>;
|