@shivaedev/effect-trpc 0.3.4 → 0.4.0

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.
Files changed (96) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/README.md +76 -0
  3. package/dist/adapter.d.ts +6 -5
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +2 -1
  6. package/dist/adapter.js.map +1 -1
  7. package/dist/client/rejection.d.ts +10 -0
  8. package/dist/client/rejection.d.ts.map +1 -0
  9. package/dist/client/rejection.js +9 -0
  10. package/dist/client/rejection.js.map +1 -0
  11. package/dist/client.d.ts +2 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +2 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js.map +1 -1
  17. package/dist/index.d.ts +9 -6
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/internal/context-bridge.d.ts.map +1 -1
  22. package/dist/internal/context-bridge.js +1 -2
  23. package/dist/internal/context-bridge.js.map +1 -1
  24. package/dist/internal/loose.d.ts +4 -0
  25. package/dist/internal/loose.d.ts.map +1 -0
  26. package/dist/internal/loose.js +7 -0
  27. package/dist/internal/loose.js.map +1 -0
  28. package/dist/internal/procedure-handler.d.ts +5 -12
  29. package/dist/internal/procedure-handler.d.ts.map +1 -1
  30. package/dist/internal/procedure-handler.js +3 -4
  31. package/dist/internal/procedure-handler.js.map +1 -1
  32. package/dist/internal/procedure-types.d.ts +17 -4
  33. package/dist/internal/procedure-types.d.ts.map +1 -1
  34. package/dist/internal/runtime.d.ts +4 -4
  35. package/dist/internal/runtime.d.ts.map +1 -1
  36. package/dist/internal/runtime.js +5 -13
  37. package/dist/internal/runtime.js.map +1 -1
  38. package/dist/internal/subscription-handler.d.ts +5 -12
  39. package/dist/internal/subscription-handler.d.ts.map +1 -1
  40. package/dist/internal/subscription-handler.js +5 -6
  41. package/dist/internal/subscription-handler.js.map +1 -1
  42. package/dist/procedure.d.ts +6 -8
  43. package/dist/procedure.d.ts.map +1 -1
  44. package/dist/procedure.js +8 -17
  45. package/dist/procedure.js.map +1 -1
  46. package/dist/rejection-formatter.d.ts +18 -0
  47. package/dist/rejection-formatter.d.ts.map +1 -0
  48. package/dist/rejection-formatter.js +21 -0
  49. package/dist/rejection-formatter.js.map +1 -0
  50. package/dist/rejection.d.ts +15 -0
  51. package/dist/rejection.d.ts.map +1 -0
  52. package/dist/rejection.js +31 -0
  53. package/dist/rejection.js.map +1 -0
  54. package/dist/request-services.d.ts.map +1 -1
  55. package/dist/request-services.js.map +1 -1
  56. package/dist/request-signal.d.ts.map +1 -1
  57. package/dist/request-signal.js.map +1 -1
  58. package/dist/testing/any-test-layer.d.ts +3 -0
  59. package/dist/testing/any-test-layer.d.ts.map +1 -0
  60. package/dist/testing/any-test-layer.js +2 -0
  61. package/dist/testing/any-test-layer.js.map +1 -0
  62. package/dist/testing/caller.d.ts +5 -3
  63. package/dist/testing/caller.d.ts.map +1 -1
  64. package/dist/testing/caller.js +12 -11
  65. package/dist/testing/caller.js.map +1 -1
  66. package/dist/testing/types.d.ts +5 -4
  67. package/dist/testing/types.d.ts.map +1 -1
  68. package/dist/testing/vitest.d.ts +4 -3
  69. package/dist/testing/vitest.d.ts.map +1 -1
  70. package/dist/testing/vitest.js +13 -14
  71. package/dist/testing/vitest.js.map +1 -1
  72. package/dist/testing.d.ts +3 -3
  73. package/dist/types.d.ts.map +1 -1
  74. package/package.json +11 -2
  75. package/src/adapter.ts +24 -76
  76. package/src/client/rejection.ts +16 -0
  77. package/src/client.ts +1 -0
  78. package/src/errors.ts +8 -19
  79. package/src/index.ts +9 -6
  80. package/src/internal/context-bridge.ts +3 -10
  81. package/src/internal/loose.ts +14 -0
  82. package/src/internal/procedure-handler.ts +11 -34
  83. package/src/internal/procedure-types.ts +37 -50
  84. package/src/internal/runtime.ts +14 -49
  85. package/src/internal/subscription-handler.ts +15 -47
  86. package/src/procedure.ts +33 -142
  87. package/src/rejection-formatter.ts +29 -0
  88. package/src/rejection.ts +47 -0
  89. package/src/request-services.ts +5 -25
  90. package/src/request-signal.ts +1 -4
  91. package/src/testing/any-test-layer.ts +3 -0
  92. package/src/testing/caller.ts +29 -32
  93. package/src/testing/types.ts +15 -47
  94. package/src/testing/vitest.ts +19 -51
  95. package/src/testing.ts +3 -3
  96. package/src/types.ts +3 -12
@@ -1,16 +1,15 @@
1
- import type { TRPCMutationProcedure, TRPCProcedureBuilder, TRPCQueryProcedure, TRPCSubscriptionProcedure } from "@trpc/server";
1
+ import type { TRPCMutationProcedure, TRPCQueryProcedure, TRPCSubscriptionProcedure } from "@trpc/server";
2
2
  import { Schema } from "effect";
3
- import type { DefaultValue, EffectProcedureResolver, EffectSubscriptionResolver, IntersectIfDefined, ResolverContext } from "./internal/procedure-types.js";
4
- import type { RuntimeBridge } from "./internal/runtime.js";
5
- import type { EffectProcedureRequestServices } from "./request-services.js";
6
- type Builder<Context, Meta, ContextOverrides, InputIn, InputOut, OutputIn, OutputOut> = TRPCProcedureBuilder<Context, Meta, ContextOverrides, InputIn, InputOut, OutputIn, OutputOut, false>;
3
+ import type { DefaultValue, EffectProcedureResolver, EffectSubscriptionResolver, IntersectIfDefined, ProcedureBuilderSurface, ResolverContext } from "./internal/procedure-types.ts";
4
+ import type { RuntimeBridge } from "./internal/runtime.ts";
5
+ import type { EffectProcedureRequestServices } from "./request-services.ts";
7
6
  export declare class EffectProcedureBuilder<Context, Meta, ContextOverrides, InputIn, InputOut, OutputIn, OutputOut, ProvidedServices, LayerError, RuntimeRequirements> {
8
7
  private readonly builder;
9
8
  private readonly requestServices;
10
9
  private readonly runtime;
11
10
  private readonly subscriptionBuilder;
12
11
  private readonly subscriptionOutput?;
13
- constructor(builder: Builder<Context, Meta, ContextOverrides, InputIn, InputOut, OutputIn, OutputOut>, requestServices: EffectProcedureRequestServices<ResolverContext<Builder<Context, Meta, ContextOverrides, InputIn, InputOut, OutputIn, OutputOut>>, ProvidedServices, LayerError>, runtime: RuntimeBridge<RuntimeRequirements>, subscriptionBuilder?: Builder<Context, Meta, ContextOverrides, InputIn, InputOut, OutputIn, OutputOut>, subscriptionOutput?: Schema.ConstraintDecoder<unknown> | undefined);
12
+ constructor(builder: ProcedureBuilderSurface<ResolverContext<Context, Meta, ContextOverrides>>, requestServices: EffectProcedureRequestServices<ResolverContext<Context, Meta, ContextOverrides>, ProvidedServices, LayerError>, runtime: RuntimeBridge<RuntimeRequirements>, subscriptionBuilder?: ProcedureBuilderSurface<ResolverContext<Context, Meta, ContextOverrides>>, subscriptionOutput?: Schema.ConstraintDecoder<unknown> | undefined);
14
13
  input<SchemaValue extends Schema.ConstraintDecoder<unknown>>(schema: SchemaValue): EffectProcedureBuilder<Context, Meta, ContextOverrides, IntersectIfDefined<InputIn, SchemaValue["Encoded"]>, IntersectIfDefined<InputOut, SchemaValue["Type"]>, OutputIn, OutputOut, ProvidedServices, LayerError, RuntimeRequirements>;
15
14
  output<SchemaValue extends Schema.ConstraintDecoder<unknown>>(schema: SchemaValue): EffectProcedureBuilder<Context, Meta, ContextOverrides, InputIn, InputOut, IntersectIfDefined<OutputIn, SchemaValue["Encoded"]>, IntersectIfDefined<OutputOut, SchemaValue["Type"]>, ProvidedServices, LayerError, RuntimeRequirements>;
16
15
  query<Output>(resolver: EffectProcedureResolver<DefaultValue<InputOut, undefined>, ProvidedServices | NoInfer<RuntimeRequirements>, DefaultValue<OutputIn, Output>>): TRPCQueryProcedure<{
@@ -28,7 +27,6 @@ export declare class EffectProcedureBuilder<Context, Meta, ContextOverrides, Inp
28
27
  output: AsyncIterable<DefaultValue<OutputOut, Output>, void, unknown>;
29
28
  meta: Meta;
30
29
  }>;
31
- private dispatch;
30
+ private handler;
32
31
  }
33
- export {};
34
32
  //# sourceMappingURL=procedure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../src/procedure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../src/procedure.ts"],"names":[],"mappings":"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"}
package/dist/procedure.js CHANGED
@@ -16,32 +16,23 @@ export class EffectProcedureBuilder {
16
16
  this.subscriptionOutput = subscriptionOutput;
17
17
  }
18
18
  input(schema) {
19
- const next = this.builder.input(Schema.toStandardSchemaV1(schema));
20
- const subscriptionNext = this.subscriptionBuilder.input(Schema.toStandardSchemaV1(schema));
21
- return new EffectProcedureBuilder(next, this.requestServices, this.runtime, subscriptionNext, this.subscriptionOutput);
19
+ const parser = Schema.toStandardSchemaV1(schema);
20
+ return new EffectProcedureBuilder(this.builder.input(parser), this.requestServices, this.runtime, this.subscriptionBuilder.input(parser), this.subscriptionOutput);
22
21
  }
23
22
  output(schema) {
24
- const next = this.builder.output(Schema.toStandardSchemaV1(schema));
25
- return new EffectProcedureBuilder(next, this.requestServices, this.runtime, this.subscriptionBuilder, schema);
23
+ return new EffectProcedureBuilder(this.builder.output(Schema.toStandardSchemaV1(schema)), this.requestServices, this.runtime, this.subscriptionBuilder, schema);
26
24
  }
27
25
  query(resolver) {
28
- return this.dispatch("query", resolver);
26
+ return this.builder.query(this.handler("query", resolver));
29
27
  }
30
28
  mutation(resolver) {
31
- return this.dispatch("mutation", resolver);
29
+ return this.builder.mutation(this.handler("mutation", resolver));
32
30
  }
33
31
  subscription(resolver) {
34
- const handler = makeSubscriptionHandler(this.runtime, resolver, this.requestServices, {
35
- captureStackTrace: captureStackTrace(),
36
- type: "subscription",
37
- }, this.subscriptionOutput);
38
- return this.subscriptionBuilder.subscription(handler);
32
+ return this.subscriptionBuilder.subscription(makeSubscriptionHandler(this.runtime, resolver, this.requestServices, { captureStackTrace: captureStackTrace(), type: "subscription" }, this.subscriptionOutput));
39
33
  }
40
- dispatch(type, resolver) {
41
- const handler = makeProcedureHandler(this.runtime, resolver, this.requestServices, { captureStackTrace: captureStackTrace(), type });
42
- return type === "query"
43
- ? this.builder.query(handler)
44
- : this.builder.mutation(handler);
34
+ handler(type, resolver) {
35
+ return makeProcedureHandler(this.runtime, resolver, this.requestServices, { captureStackTrace: captureStackTrace(), type });
45
36
  }
46
37
  }
47
38
  //# sourceMappingURL=procedure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"procedure.js","sourceRoot":"","sources":["../src/procedure.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AASvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAsB7E,MAAM,OAAO,sBAAsB;IAahB;IASA;IAeA;IACA;IACA;IA3BlB,YACkB,OAQhB,EACgB,eAchB,EACgB,OAA2C,EAC3C,sBAAsB,OAAO,EAC7B,kBAAsD;QA1BtD,YAAO,GAAP,OAAO,CAQvB;QACgB,oBAAe,GAAf,eAAe,CAc/B;QACgB,YAAO,GAAP,OAAO,CAAoC;QAC3C,wBAAmB,GAAnB,mBAAmB,CAAU;QAC7B,uBAAkB,GAAlB,kBAAkB,CAAoC;IACrE,CAAC;IAEJ,KAAK,CACJ,MAAmB;QAanB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAU,CAAC,CAAC;QAC5E,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CACtD,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAU,CAC1C,CAAC;QACF,OAAO,IAAI,sBAAsB,CAChC,IAQC,EACD,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,EACZ,gBAQC,EACD,IAAI,CAAC,kBAAkB,CACvB,CAAC;IACH,CAAC;IAED,MAAM,CACL,MAAmB;QAanB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,sBAAsB,CAChC,IAQC,EACD,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,mBAQJ,EACD,MAAM,CACN,CAAC;IACH,CAAC;IAED,KAAK,CACJ,QAIC;QAMD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAIpC,CAAC;IACJ,CAAC;IAED,QAAQ,CACP,QAIC;QAMD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAIvC,CAAC;IACJ,CAAC;IAED,YAAY,CACX,QAIC;QAMD,MAAM,OAAO,GAAG,uBAAuB,CACtC,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR,IAAI,CAAC,eAAe,EACpB;YACC,iBAAiB,EAAE,iBAAiB,EAAE;YACtC,IAAI,EAAE,cAAc;SACpB,EACD,IAAI,CAAC,kBAAkB,CACd,CAAC;QACX,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAC3C,OAAO,CAKN,CAAC;IACJ,CAAC;IAEO,QAAQ,CACf,IAA0B,EAC1B,QAIC;QAED,MAAM,OAAO,GAAG,oBAAoB,CACnC,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR,IAAI,CAAC,eAAe,EACpB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CACvC,CAAC;QACX,OAAO,IAAI,KAAK,OAAO;YACtB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACD"}
1
+ {"version":3,"file":"procedure.js","sourceRoot":"","sources":["../src/procedure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAUvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,MAAM,OAAO,sBAAsB;IAahB;IACA;IACA;IACA;IACA;IALlB,YACkB,OAAkF,EAClF,eAA+H,EAC/H,OAA2C,EAC3C,sBAAsB,OAAO,EAC7B,kBAAsD;QAJtD,YAAO,GAAP,OAAO,CAA2E;QAClF,oBAAe,GAAf,eAAe,CAAgH;QAC/H,YAAO,GAAP,OAAO,CAAoC;QAC3C,wBAAmB,GAAnB,mBAAmB,CAAU;QAC7B,uBAAkB,GAAlB,kBAAkB,CAAoC;IACrE,CAAC;IAEJ,KAAK,CACJ,MAAmB;QAanB,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,sBAAsB,CAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAC1B,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,EACtC,IAAI,CAAC,kBAAkB,CACvB,CAAC;IACH,CAAC;IAED,MAAM,CACL,MAAmB;QAanB,OAAO,IAAI,sBAAsB,CAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EACtD,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,mBAAmB,EACxB,MAAM,CACN,CAAC;IACH,CAAC;IAaD,KAAK,CAAC,QAAyF;QAC9F,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5D,CAAC;IAaD,QAAQ,CAAC,QAAyF;QACjG,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,CAAC;IAaD,YAAY,CAAC,QAA4F;QACxG,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAC3C,uBAAuB,CACtB,IAAI,CAAC,OAAO,EACZ,QAAQ,EACR,IAAI,CAAC,eAAe,EACpB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAChE,IAAI,CAAC,kBAAkB,CACvB,CACD,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,IAA0B,EAAE,QAAyF;QACpI,OAAO,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7H,CAAC;CACD"}
@@ -0,0 +1,18 @@
1
+ import { type TRPCDefaultErrorShape, type TRPCError } from "@trpc/server";
2
+ import type { EncodedRejection } from "./client/rejection.ts";
3
+ export interface RejectionData {
4
+ readonly rejection?: EncodedRejection;
5
+ }
6
+ export type RejectionErrorShape = TRPCDefaultErrorShape & {
7
+ readonly data: RejectionData;
8
+ };
9
+ export declare const withRejection: <Shape extends {
10
+ readonly data: object;
11
+ }>(shape: Shape, error: TRPCError) => Shape & {
12
+ readonly data: RejectionData;
13
+ };
14
+ export declare const rejectionFormatter: ({ shape, error }: {
15
+ readonly shape: TRPCDefaultErrorShape;
16
+ readonly error: TRPCError;
17
+ }) => RejectionErrorShape;
18
+ //# sourceMappingURL=rejection-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejection-formatter.d.ts","sourceRoot":"","sources":["../src/rejection-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CACtC;AAED,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAc3F,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,KAAK,EAAE,OAAO,SAAS,KAAG,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAG7I,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,kBAAkB;IAAE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,KAAG,mBAChG,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { StandardSchemaV1Error } from "@trpc/server";
2
+ import { RejectionError } from "./rejection.js";
3
+ const inputRejection = ({ issues: [issue] }) => {
4
+ if (issue === undefined)
5
+ return undefined;
6
+ const field = (issue.path ?? []).map((segment) => String(typeof segment === "object" ? segment.key : segment)).join(".");
7
+ return field === "" ? { _tag: "BadRequest", message: issue.message } : { _tag: "BadRequest", message: issue.message, field };
8
+ };
9
+ const rejectionFrom = (error) => {
10
+ if (error instanceof RejectionError)
11
+ return error.rejection;
12
+ if (error.code === "BAD_REQUEST" && error.cause instanceof StandardSchemaV1Error)
13
+ return inputRejection(error.cause);
14
+ return undefined;
15
+ };
16
+ export const withRejection = (shape, error) => {
17
+ const rejection = rejectionFrom(error);
18
+ return rejection === undefined ? shape : { ...shape, data: { ...shape.data, rejection } };
19
+ };
20
+ export const rejectionFormatter = ({ shape, error }) => withRejection(shape, error);
21
+ //# sourceMappingURL=rejection-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejection-formatter.js","sourceRoot":"","sources":["../src/rejection-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAA8C,MAAM,cAAc,CAAC;AAEjG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQhD,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAyB,EAAgC,EAAE;IACnG,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzH,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;AAC9H,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAgB,EAAgC,EAAE;IACxE,IAAI,KAAK,YAAY,cAAc;QAAE,OAAO,KAAK,CAAC,SAAS,CAAC;IAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,YAAY,qBAAqB;QAAE,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrH,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAA0C,KAAY,EAAE,KAAgB,EAA4C,EAAE;IAClJ,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAwE,EAAuB,EAAE,CACjJ,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type TRPC_ERROR_CODE_KEY, TRPCError } from "@trpc/server";
2
+ import { Effect, Schema } from "effect";
3
+ import { EncodedRejection } from "./client/rejection.ts";
4
+ export declare const rejectionCode: (tag: string) => TRPC_ERROR_CODE_KEY;
5
+ export declare class RejectionError extends TRPCError {
6
+ readonly rejection: EncodedRejection;
7
+ constructor(rejection: EncodedRejection, code?: TRPC_ERROR_CODE_KEY);
8
+ }
9
+ export interface RejectWithOptions<Tag extends string> {
10
+ readonly code?: (tag: Tag) => TRPC_ERROR_CODE_KEY;
11
+ }
12
+ export declare function rejectWith<S extends Schema.ConstraintDecoder<{
13
+ readonly _tag: string;
14
+ }, unknown>>(schema: S, options?: RejectWithOptions<S["Type"]["_tag"]>): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, Exclude<E, S["Type"]> | RejectionError, R | S["EncodingServices"]>;
15
+ //# sourceMappingURL=rejection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejection.d.ts","sourceRoot":"","sources":["../src/rejection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAWzD,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,mBAA+D,CAAC;AAE5G,qBAAa,cAAe,SAAQ,SAAS;IAC5C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBAEzB,SAAS,EAAE,gBAAgB,EAAE,IAAI,GAAE,mBAAmD;CAIlG;AAED,MAAM,WAAW,iBAAiB,CAAC,GAAG,SAAS,MAAM;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,mBAAmB,CAAC;CAClD;AAQD,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,iBAAiB,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAChG,MAAM,EAAE,CAAC,EACT,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAC5C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { TRPCError } from "@trpc/server";
2
+ import { Effect, Schema } from "effect";
3
+ import { EncodedRejection } from "./client/rejection.js";
4
+ const TAXONOMY_CODES = new Map([
5
+ ["NotFound", "NOT_FOUND"],
6
+ ["Unauthorized", "UNAUTHORIZED"],
7
+ ["Forbidden", "FORBIDDEN"],
8
+ ["Conflict", "CONFLICT"],
9
+ ["PreconditionFailed", "PRECONDITION_FAILED"],
10
+ ["AuthUnavailable", "SERVICE_UNAVAILABLE"],
11
+ ]);
12
+ export const rejectionCode = (tag) => TAXONOMY_CODES.get(tag) ?? "BAD_REQUEST";
13
+ export class RejectionError extends TRPCError {
14
+ rejection;
15
+ constructor(rejection, code = rejectionCode(rejection._tag)) {
16
+ super({ code, message: typeof rejection.message === "string" ? rejection.message : rejection._tag });
17
+ this.rejection = rejection;
18
+ }
19
+ }
20
+ const encodeRejection = (schema) => {
21
+ const encode = Schema.encodeUnknownEffect(schema);
22
+ const tagged = Schema.decodeUnknownEffect(EncodedRejection);
23
+ return (rejection) => Effect.orDie(Effect.flatMap(encode(rejection), tagged));
24
+ };
25
+ export function rejectWith(schema, options) {
26
+ const is = Schema.is(schema);
27
+ const encode = encodeRejection(schema);
28
+ const code = options?.code ?? rejectionCode;
29
+ return (self) => Effect.catchIf(self, is, (rejection) => Effect.flatMap(encode(rejection), (encoded) => Effect.fail(new RejectionError(encoded, code(encoded._tag)))));
30
+ }
31
+ //# sourceMappingURL=rejection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejection.js","sourceRoot":"","sources":["../src/rejection.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,SAAS,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,cAAc,GAAG,IAAI,GAAG,CAA8B;IAC3D,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,cAAc,EAAE,cAAc,CAAC;IAChC,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IAC7C,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAuB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC;AAE5G,MAAM,OAAO,cAAe,SAAQ,SAAS;IACnC,SAAS,CAAmB;IAErC,YAAY,SAA2B,EAAE,OAA4B,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC;QACjG,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;CACD;AAMD,MAAM,eAAe,GAAG,CAAC,MAAyB,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC5D,OAAO,CAAC,SAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAMF,MAAM,UAAU,UAAU,CAAC,MAAyB,EAAE,OAAmC;IACxF,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,aAAa,CAAC;IAC5C,OAAO,CAAU,IAA4B,EAAE,EAAE,CAChD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAC5G,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-services.d.ts","sourceRoot":"","sources":["../src/request-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,IAAI,WAAW,EAAS,MAAM,QAAQ,CAAC;AAE1D,MAAM,WAAW,8BAA8B,CAC9C,OAAO,EACP,YAAY,EACZ,KAAK,GAAG,KAAK;IAEb,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;CAC7E;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,KAAK,EACvE,OAAO,CAAC,OAAO,EAAE,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,KACjE,8BAA8B,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAgB,CAAC;AAE/E,eAAO,MAAM,qBAAqB,GACjC,WAAW,EACX,OAAO,SAAS,WAAW,EAC3B,gBAAgB,EAChB,SAAS,EACT,sBAAsB,EACtB,eAAe,EACf,sBAAsB,SAAS,gBAAgB,GAAG,gBAAgB,EAElE,MAAM,8BAA8B,CACnC,WAAW,EACX,gBAAgB,EAChB,SAAS,CACT,EACD,YAAY,CACX,OAAO,EAAE,OAAO,KACZ,WAAW,CAAC,KAAK,CACrB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,CACtB,KACC,8BAA8B,CAChC,OAAO,EACP,gBAAgB,GAAG,sBAAsB,EACzC,SAAS,GAAG,eAAe,CAI1B,CAAC"}
1
+ {"version":3,"file":"request-services.d.ts","sourceRoot":"","sources":["../src/request-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,IAAI,WAAW,EAAS,MAAM,QAAQ,CAAC;AAE1D,MAAM,WAAW,8BAA8B,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,KAAK;IACnF,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;CAC7E;AAED,eAAO,MAAM,mBAAmB,GAAI,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,KAAK,EACvE,OAAO,CAAC,OAAO,EAAE,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,KACjE,8BAA8B,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAgB,CAAC;AAE/E,eAAO,MAAM,qBAAqB,GACjC,WAAW,EACX,OAAO,SAAS,WAAW,EAC3B,gBAAgB,EAChB,SAAS,EACT,sBAAsB,EACtB,eAAe,EACf,sBAAsB,SAAS,gBAAgB,GAAG,gBAAgB,EAElE,MAAM,8BAA8B,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAC9E,YAAY,CAAC,OAAO,EAAE,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,sBAAsB,EAAE,eAAe,EAAE,sBAAsB,CAAC,KAClH,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG,sBAAsB,EAAE,SAAS,GAAG,eAAe,CACT,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-services.js","sourceRoot":"","sources":["../src/request-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,EAAE,MAAM,QAAQ,CAAC;AAU1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAClC,KAAmE,EACJ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CASpC,IAIC,EACD,UAMC,EAKA,EAAE,CACH,mBAAmB,CAAC,CAAC,OAAgB,EAAE,EAAE,CACxC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAC5D,CAAC"}
1
+ {"version":3,"file":"request-services.js","sourceRoot":"","sources":["../src/request-services.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,EAAE,MAAM,QAAQ,CAAC;AAM1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAClC,KAAmE,EACJ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CASpC,IAA8E,EAC9E,UAAoH,EACF,EAAE,CACpH,mBAAmB,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-signal.d.ts","sourceRoot":"","sources":["../src/request-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,wEAAwE;AACxE,eAAO,MAAM,aAAa,4CAGzB,CAAC"}
1
+ {"version":3,"file":"request-signal.d.ts","sourceRoot":"","sources":["../src/request-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,wEAAwE;AACxE,eAAO,MAAM,aAAa,4CAAwH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-signal.js","sourceRoot":"","sources":["../src/request-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAC7C,sCAAsC,EACtC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CACjC,CAAC"}
1
+ {"version":3,"file":"request-signal.js","sourceRoot":"","sources":["../src/request-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,wEAAwE;AACxE,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAA0B,sCAAsC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Layer } from "effect";
2
+ export type AnyTestLayer = Layer.Layer<any, any, never>;
3
+ //# sourceMappingURL=any-test-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"any-test-layer.d.ts","sourceRoot":"","sources":["../../src/testing/any-test-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=any-test-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"any-test-layer.js","sourceRoot":"","sources":["../../src/testing/any-test-layer.ts"],"names":[],"mappings":""}
@@ -1,10 +1,12 @@
1
1
  import { type TRPCError } from "@trpc/server";
2
2
  import { type Context, Effect } from "effect";
3
- import type { EffectTRPCAdapter } from "../adapter.js";
3
+ import type { EffectTRPCAdapter } from "../adapter.ts";
4
4
  export type EffectCaller<Caller> = {
5
5
  readonly [Key in keyof Caller]: Caller[Key] extends (...arguments_: infer Arguments) => Promise<infer Result> ? (...arguments_: Arguments) => Effect.Effect<Result, TRPCError> : Caller[Key] extends (...arguments_: infer Arguments) => infer Result ? (...arguments_: Arguments) => Result : Caller[Key] extends Record<string, unknown> ? EffectCaller<Caller[Key]> : Caller[Key];
6
6
  };
7
7
  export type EffectCallerFactory<Options, Caller> = EffectCaller<Caller> & ((options?: Options) => EffectCaller<Caller>);
8
- export declare const makeEffectCaller: <Caller extends object, Services>(adapter: Pick<EffectTRPCAdapter<never>, "runWithServices">, promiseCaller: Caller, services: Context.Context<Services>) => EffectCaller<Caller>;
9
- export declare const makeEffectCallerFactory: <Options, Caller extends object, Services>(adapter: Pick<EffectTRPCAdapter<never>, "runWithServices">, createCaller: (options?: Options) => Caller, services: Context.Context<Services>) => EffectCallerFactory<Options, Caller>;
8
+ type Adapter = Pick<EffectTRPCAdapter<never>, "runWithServices">;
9
+ export declare function makeEffectCaller<Caller extends object, Services>(adapter: Adapter, promiseCaller: Caller, services: Context.Context<Services>): EffectCaller<Caller>;
10
+ export declare function makeEffectCallerFactory<Options, Caller extends object, Services>(adapter: Adapter, createCaller: (options?: Options) => Caller, services: Context.Context<Services>): EffectCallerFactory<Options, Caller>;
11
+ export {};
10
12
  //# sourceMappingURL=caller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caller.d.ts","sourceRoot":"","sources":["../../src/testing/caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,MAAM,YAAY,CAAC,MAAM,IAAI;IAClC,QAAQ,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CACnD,GAAG,UAAU,EAAE,MAAM,SAAS,KAC1B,OAAO,CAAC,MAAM,MAAM,CAAC,GACvB,CAAC,GAAG,UAAU,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAC9D,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,EAAE,MAAM,SAAS,KAAK,MAAM,MAAM,GACnE,CAAC,GAAG,UAAU,EAAE,SAAS,KAAK,MAAM,GACpC,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1C,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GACzB,MAAM,CAAC,GAAG,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,GACtE,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/C,eAAO,MAAM,gBAAgB,GAAI,MAAM,SAAS,MAAM,EAAE,QAAQ,EAC/D,SAAS,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,EAC1D,eAAe,MAAM,EACrB,UAAU,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KACjC,YAAY,CAAC,MAAM,CA8BrB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GACnC,OAAO,EACP,MAAM,SAAS,MAAM,EACrB,QAAQ,EAER,SAAS,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,EAC1D,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,MAAM,EAC3C,UAAU,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KACjC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAgBrC,CAAC"}
1
+ {"version":3,"file":"caller.d.ts","sourceRoot":"","sources":["../../src/testing/caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,MAAM,YAAY,CAAC,MAAM,IAAI;IAClC,QAAQ,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,EAAE,MAAM,SAAS,KAAK,OAAO,CAAC,MAAM,MAAM,CAAC,GAC1G,CAAC,GAAG,UAAU,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAC9D,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,UAAU,EAAE,MAAM,SAAS,KAAK,MAAM,MAAM,GACnE,CAAC,GAAG,UAAU,EAAE,SAAS,KAAK,MAAM,GACpC,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1C,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GACzB,MAAM,CAAC,GAAG,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAExH,KAAK,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAYjE,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,MAAM,EAAE,QAAQ,EAC/D,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GACjC,YAAY,CAAC,MAAM,CAAC,CAAC;AAwBxB,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,SAAS,MAAM,EAAE,QAAQ,EAC/E,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,MAAM,EAC3C,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GACjC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC"}
@@ -1,17 +1,18 @@
1
1
  import { getTRPCErrorFromUnknown } from "@trpc/server";
2
2
  import { Effect } from "effect";
3
- export const makeEffectCaller = (adapter, promiseCaller, services) => {
3
+ const member = (node, segment) => (typeof node === "object" && node !== null) || typeof node === "function" ? Reflect.get(node, segment) : undefined;
4
+ const invoke = (promiseCaller, path, argumentsList) => {
5
+ const leaf = path.reduce(member, promiseCaller);
6
+ return typeof leaf === "function"
7
+ ? Promise.resolve(Reflect.apply(leaf, undefined, argumentsList))
8
+ : Promise.reject(new TypeError(`${path.join(".")} is not a procedure`));
9
+ };
10
+ export function makeEffectCaller(adapter, promiseCaller, services) {
4
11
  const build = (path) => new Proxy(Object.assign(() => undefined, { path }), {
5
12
  apply(_target, _this, argumentsList) {
6
13
  return Effect.tryPromise({
7
14
  catch: getTRPCErrorFromUnknown,
8
- try: () => adapter.runWithServices(services, () => {
9
- let leaf = promiseCaller;
10
- for (const segment of path) {
11
- leaf = leaf[segment];
12
- }
13
- return leaf(...argumentsList);
14
- }),
15
+ try: () => adapter.runWithServices(services, () => invoke(promiseCaller, path, argumentsList)),
15
16
  });
16
17
  },
17
18
  get(_target, property) {
@@ -22,8 +23,8 @@ export const makeEffectCaller = (adapter, promiseCaller, services) => {
22
23
  },
23
24
  });
24
25
  return build([]);
25
- };
26
- export const makeEffectCallerFactory = (adapter, createCaller, services) => {
26
+ }
27
+ export function makeEffectCallerFactory(adapter, createCaller, services) {
27
28
  const defaultCaller = makeEffectCaller(adapter, createCaller(), services);
28
29
  const target = (options) => makeEffectCaller(adapter, createCaller(options), services);
29
30
  return new Proxy(target, {
@@ -37,5 +38,5 @@ export const makeEffectCallerFactory = (adapter, createCaller, services) => {
37
38
  return Reflect.get(defaultCaller, property);
38
39
  },
39
40
  });
40
- };
41
+ }
41
42
  //# sourceMappingURL=caller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"caller.js","sourceRoot":"","sources":["../../src/testing/caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAkB,MAAM,cAAc,CAAC;AACvE,OAAO,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAkB9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,OAA0D,EAC1D,aAAqB,EACrB,QAAmC,EACZ,EAAE;IACzB,MAAM,KAAK,GAAG,CAAC,IAA2B,EAAW,EAAE,CACtD,IAAI,KAAK,CACR,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EACxC;QACC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa;YAClC,OAAO,MAAM,CAAC,UAAU,CAAC;gBACxB,KAAK,EAAE,uBAAuB;gBAC9B,GAAG,EAAE,GAAG,EAAE,CACT,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACtC,IAAI,IAAI,GAAY,aAAa,CAAC;oBAClC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;wBAC5B,IAAI,GAAI,IAAgC,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC;oBACD,OAAQ,IAAiD,CACxD,GAAG,aAAa,CAChB,CAAC;gBACH,CAAC,CAAC;aACH,CAAC,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,OAAO,EAAE,QAAQ;YACpB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACzD,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;KACD,CACD,CAAC;IAEH,OAAO,KAAK,CAAC,EAAE,CAAyB,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAKtC,OAA0D,EAC1D,YAA2C,EAC3C,QAAmC,EACI,EAAE;IACzC,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,CAAC,OAAiB,EAAE,EAAE,CACpC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE5D,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACxB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ;YAC9B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACD,CAAyC,CAAC;AAC5C,CAAC,CAAC"}
1
+ {"version":3,"file":"caller.js","sourceRoot":"","sources":["../../src/testing/caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAkB,MAAM,cAAc,CAAC;AACvE,OAAO,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAiB9C,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,OAAe,EAAW,EAAE,CAC1D,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEpH,MAAM,MAAM,GAAG,CAAC,aAAqB,EAAE,IAA2B,EAAE,aAAqC,EAAoB,EAAE;IAC9H,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAU,MAAM,EAAE,aAAa,CAAC,CAAC;IACzD,OAAO,OAAO,IAAI,KAAK,UAAU;QAChC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAChE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAOF,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,aAAqB,EAAE,QAAgC;IACzG,MAAM,KAAK,GAAG,CAAC,IAA2B,EAAW,EAAE,CACtD,IAAI,KAAK,CACR,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EACxC;QACC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa;YAClC,OAAO,MAAM,CAAC,UAAU,CAAC;gBACxB,KAAK,EAAE,uBAAuB;gBAC9B,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;aAC9F,CAAC,CAAC;QACJ,CAAC;QACD,GAAG,CAAC,OAAO,EAAE,QAAQ;YACpB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACzD,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnC,CAAC;KACD,CACD,CAAC;IAEH,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAOD,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,YAA2C,EAAE,QAAgC;IACtI,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,CAAC,OAAiB,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEjG,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACxB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ;YAC9B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import type { TestContext, Vitest } from "@effect/vitest";
2
2
  import type { EffectClock, EffectTestOptions } from "@shivaedev/effect-test";
3
3
  import type { Effect, Layer } from "effect";
4
- import type { EffectTRPCAdapter } from "../adapter.js";
5
- import type { EffectCallerFactory } from "./caller.js";
4
+ import type { EffectTRPCAdapter } from "../adapter.ts";
5
+ import type { AnyTestLayer } from "./any-test-layer.ts";
6
+ import type { EffectCallerFactory } from "./caller.ts";
6
7
  export type TrpcHarnessTest<Harness, Provided> = <A, Eff extends Effect.Effect<unknown, unknown, Provided>>(name: string, body: (harness: Harness, context: TestContext) => Generator<Eff, A, never>, options?: number | EffectTestOptions) => void;
7
8
  export interface TrpcHarnessTester<Harness, Provided> extends TrpcHarnessTest<Harness, Provided> {
8
9
  readonly skip: TrpcHarnessTest<Harness, Provided>;
@@ -20,14 +21,14 @@ export type TrpcIt<Options, Caller, Provided> = Vitest.Methods & {
20
21
  export type TrpcHarnessIt<Harness, Provided> = Vitest.Methods & {
21
22
  readonly effectTRPC: TrpcHarnessTester<Harness, Provided>;
22
23
  };
23
- export interface MakeTrpcItOptions<CreateCaller extends (...arguments_: never[]) => object, TestLayer extends Layer.Layer<any, any, never>> {
24
+ export interface MakeTrpcItOptions<CreateCaller extends (...arguments_: never[]) => object, TestLayer extends AnyTestLayer> {
24
25
  readonly adapter: Pick<EffectTRPCAdapter<never>, "runWithServices">;
25
26
  readonly around?: <A, E>(effect: Effect.Effect<A, E, Layer.Success<TestLayer>>) => Effect.Effect<A, unknown, Layer.Success<TestLayer>>;
26
27
  readonly clock?: EffectClock;
27
28
  readonly createCaller: CreateCaller;
28
29
  readonly layer: TestLayer;
29
30
  }
30
- export interface MakeTrpcHarnessItOptions<CreateCaller extends (...arguments_: never[]) => object, TestLayer extends Layer.Layer<any, any, never>, Harness> extends MakeTrpcItOptions<CreateCaller, TestLayer> {
31
+ export interface MakeTrpcHarnessItOptions<CreateCaller extends (...arguments_: never[]) => object, TestLayer extends AnyTestLayer, Harness> extends MakeTrpcItOptions<CreateCaller, TestLayer> {
31
32
  readonly makeHarness: (trpc: EffectCallerFactory<CallerOptions<CreateCaller>, CallerResult<CreateCaller>>, context: TestContext) => Effect.Effect<Harness, unknown, Layer.Success<TestLayer>>;
32
33
  }
33
34
  export type CallerOptions<CreateCaller> = CreateCaller extends (...arguments_: infer Arguments) => object ? Arguments[0] : never;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/testing/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/testing/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type Layer } from "effect";
2
- import type { CallerOptions, CallerResult, MakeTrpcHarnessItOptions, MakeTrpcItOptions, TrpcHarnessIt, TrpcIt } from "./types.js";
3
- export declare const makeTrpcHarnessIt: <CreateCaller extends (...arguments_: never[]) => object, TestLayer extends Layer.Layer<any, any, never>, Harness>(options: MakeTrpcHarnessItOptions<CreateCaller, TestLayer, Harness>) => TrpcHarnessIt<Harness, Layer.Success<TestLayer>>;
4
- export declare const makeTrpcIt: <CreateCaller extends (...arguments_: never[]) => object, TestLayer extends Layer.Layer<any, any, never>>(options: MakeTrpcItOptions<CreateCaller, TestLayer>) => TrpcIt<CallerOptions<CreateCaller>, CallerResult<CreateCaller>, Layer.Success<TestLayer>>;
2
+ import type { AnyTestLayer } from "./any-test-layer.ts";
3
+ import type { CallerOptions, CallerResult, MakeTrpcHarnessItOptions, MakeTrpcItOptions, TrpcHarnessIt, TrpcIt } from "./types.ts";
4
+ export declare function makeTrpcHarnessIt<CreateCaller extends (...arguments_: never[]) => object, TestLayer extends AnyTestLayer, Harness>(options: MakeTrpcHarnessItOptions<CreateCaller, TestLayer, Harness>): TrpcHarnessIt<Harness, Layer.Success<TestLayer>>;
5
+ export declare const makeTrpcIt: <CreateCaller extends (...arguments_: never[]) => object, TestLayer extends AnyTestLayer>(options: MakeTrpcItOptions<CreateCaller, TestLayer>) => TrpcIt<CallerOptions<CreateCaller>, CallerResult<CreateCaller>, Layer.Success<TestLayer>>;
5
6
  //# sourceMappingURL=vitest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,wBAAwB,EACxB,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,MAAM,YAAY,CAAC;AAgBpB,eAAO,MAAM,iBAAiB,GAC7B,YAAY,SAAS,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,MAAM,EAEvD,SAAS,SAAS,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAC9C,OAAO,EAEP,SAAS,wBAAwB,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,KACjE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAwBjD,CAAC;AAEF,eAAO,MAAM,UAAU,GACtB,YAAY,SAAS,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,MAAM,EAEvD,SAAS,SAAS,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAE9C,SAAS,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,KACjD,MAAM,CACR,aAAa,CAAC,YAAY,CAAC,EAC3B,YAAY,CAAC,YAAY,CAAC,EAC1B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CASvB,CAAC"}
1
+ {"version":3,"file":"vitest.d.ts","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAclI,wBAAgB,iBAAiB,CAAC,YAAY,SAAS,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,SAAS,SAAS,YAAY,EAAE,OAAO,EACjI,OAAO,EAAE,wBAAwB,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,GACjE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAmBpD,eAAO,MAAM,UAAU,GAAI,YAAY,SAAS,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,SAAS,SAAS,YAAY,EACjH,SAAS,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,KACjD,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAIxF,CAAC"}
@@ -2,30 +2,29 @@ import { it as effectIt } from "@effect/vitest";
2
2
  import { makeEffectIt } from "@shivaedev/effect-test";
3
3
  import { Effect } from "effect";
4
4
  import { makeEffectCallerFactory } from "./caller.js";
5
- const withEffectTRPC = (tester) => new Proxy(effectIt, {
6
- get(target, property, receiver) {
7
- if (property === "effectTRPC") {
8
- return tester;
9
- }
10
- return Reflect.get(target, property, receiver);
11
- },
12
- });
13
- export const makeTrpcHarnessIt = (options) => {
5
+ function withEffectTRPC(tester) {
6
+ return new Proxy(effectIt, {
7
+ get(target, property, receiver) {
8
+ if (property === "effectTRPC") {
9
+ return tester;
10
+ }
11
+ return Reflect.get(target, property, receiver);
12
+ },
13
+ });
14
+ }
15
+ export function makeTrpcHarnessIt(options) {
14
16
  const { effectApp } = makeEffectIt({
15
17
  around: options.around,
16
18
  clock: options.clock,
17
19
  layer: options.layer,
18
20
  makeHarness: (context) => Effect.gen(function* () {
19
21
  const services = yield* Effect.context();
20
- const trpc = makeEffectCallerFactory(options.adapter,
21
- // CreateCaller is a rest-never function type. The option and
22
- // result aliases are the factory TypeScript cannot recover here.
23
- options.createCaller, services);
22
+ const trpc = makeEffectCallerFactory(options.adapter, options.createCaller, services);
24
23
  return yield* options.makeHarness(trpc, context);
25
24
  }),
26
25
  });
27
26
  return withEffectTRPC(effectApp);
28
- };
27
+ }
29
28
  export const makeTrpcIt = (options) => makeTrpcHarnessIt({
30
29
  ...options,
31
30
  makeHarness: (trpc) => Effect.succeed(trpc),
@@ -1 +1 @@
1
- {"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAc,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAUtD,MAAM,cAAc,GAAG,CACtB,MAAc,EAGb,EAAE,CACH,IAAI,KAAK,CAAC,QAAQ,EAAE;IACnB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;QAC7B,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QACf,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;CACD,CAAqD,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAMhC,OAAmE,EAChB,EAAE;IAKrD,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAY,CAAC;YACnD,MAAM,IAAI,GAAG,uBAAuB,CACnC,OAAO,CAAC,OAAO;YACf,6DAA6D;YAC7D,iEAAiE;YACjE,OAAO,CAAC,YAAwD,EAChE,QAAQ,CACR,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAKzB,OAAmD,EAKlD,EAAE,CACH,iBAAiB,CAAC;IACjB,GAAG,OAAO;IACV,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;CAC3C,CAIA,CAAC"}
1
+ {"version":3,"file":"vitest.js","sourceRoot":"","sources":["../../src/testing/vitest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAc,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAItD,SAAS,cAAc,CAAC,MAAe;IACtC,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QAC1B,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC7B,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC/B,OAAO,MAAM,CAAC;YACf,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAKD,MAAM,UAAU,iBAAiB,CAChC,OAAoF;IAEpF,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAA4B,CAAC;YACnE,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACtF,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CACzB,OAAmD,EACyC,EAAE,CAC9F,iBAAiB,CAAC;IACjB,GAAG,OAAO;IACV,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;CAC3C,CAAC,CAAC"}
package/dist/testing.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { type EffectCaller, type EffectCallerFactory, makeEffectCaller, makeEffectCallerFactory, } from "./testing/caller.js";
2
- export type { CallerOptions, CallerResult, MakeTrpcHarnessItOptions, MakeTrpcItOptions, TrpcHarnessIt, TrpcHarnessTest, TrpcHarnessTester, TrpcIt, TrpcTest, TrpcTester, } from "./testing/types.js";
3
- export { makeTrpcHarnessIt, makeTrpcIt } from "./testing/vitest.js";
1
+ export { type EffectCaller, type EffectCallerFactory, makeEffectCaller, makeEffectCallerFactory, } from "./testing/caller.ts";
2
+ export type { CallerOptions, CallerResult, MakeTrpcHarnessItOptions, MakeTrpcItOptions, TrpcHarnessIt, TrpcHarnessTest, TrpcHarnessTester, TrpcIt, TrpcTest, TrpcTester, } from "./testing/types.ts";
3
+ export { makeTrpcHarnessIt, makeTrpcIt } from "./testing/vitest.ts";
4
4
  //# sourceMappingURL=testing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;AAElE,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC5D,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,MAAM,qBAAqB,GAAG,CACnC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,sBAAsB,KAC3B,SAAS,GAAG,SAAS,CAAC;AAE3B,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,SAAS,EAAE,aAAa,KACpB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5B,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,SAAS,EAAE,aAAa,KACpB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,CAAC;AAElE,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC5D,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,KAAK,SAAS,GAAG,SAAS,CAAC;AAE/G,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjI,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shivaedev/effect-trpc",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "description": "Effect-native procedures and testing for tRPC",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -30,6 +30,12 @@
30
30
  "import": "./dist/index.js",
31
31
  "default": "./dist/index.js"
32
32
  },
33
+ "./client": {
34
+ "types": "./dist/client.d.ts",
35
+ "source": "./src/client.ts",
36
+ "import": "./dist/client.js",
37
+ "default": "./dist/client.js"
38
+ },
33
39
  "./testing": {
34
40
  "types": "./dist/testing.d.ts",
35
41
  "source": "./src/testing.ts",
@@ -43,7 +49,7 @@
43
49
  "provenance": true
44
50
  },
45
51
  "dependencies": {
46
- "@shivaedev/effect-test": "0.1.1"
52
+ "@shivaedev/effect-test": "0.1.2"
47
53
  },
48
54
  "peerDependencies": {
49
55
  "@effect/vitest": "4.0.0-rc.112",
@@ -57,10 +63,13 @@
57
63
  },
58
64
  "devDependencies": {
59
65
  "@effect/vitest": "4.0.0-rc.112",
66
+ "@shivaedev/effect-contract": "0.1.0",
67
+ "@trpc/client": "11.18.0",
60
68
  "@trpc/server": "11.18.0",
61
69
  "@types/node": "24.10.1",
62
70
  "@typescript/native": "npm:typescript@7.0.2",
63
71
  "effect": "4.0.0-rc.112",
72
+ "superjson": "2.2.6",
64
73
  "typescript": "npm:@typescript/typescript6@6.0.2",
65
74
  "vitest": "4.1.9"
66
75
  },