@effect-app/vue 4.0.0-beta.75 → 4.0.0-beta.77

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.
@@ -1,10 +1,34 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import { type Effect } from "effect-app"
3
- import { Something, useClient, useExperimental } from "./stubs.js"
3
+ import { makeQueryKey } from "../src/lib.js"
4
+ import { Something, SomethingElse, SomethingElseReq, SomethingReq, useClient, useExperimental } from "./stubs.js"
5
+
6
+ it("TaggedRequestFor .moduleName and request .id / .moduleName", () => {
7
+ expectTypeOf(SomethingReq.moduleName).toEqualTypeOf<"Something">()
8
+ expectTypeOf(SomethingElseReq.moduleName).toEqualTypeOf<"SomethingElse">()
9
+
10
+ expectTypeOf(Something.GetSomething2.moduleName).toEqualTypeOf<"Something">()
11
+ expectTypeOf(Something.GetSomething2.id).toEqualTypeOf<"Something.GetSomething2">()
12
+
13
+ expectTypeOf(SomethingElse.GetSomething2.moduleName).toEqualTypeOf<"SomethingElse">()
14
+ expectTypeOf(SomethingElse.GetSomething2.id).toEqualTypeOf<"SomethingElse.GetSomething2">()
15
+ })
4
16
 
5
17
  it.skip("query type tests", () => {
6
18
  const { clientFor } = useClient()
7
- const client = clientFor(Something)
19
+ const client = clientFor(Something, () => ({
20
+ GetSomething2WithDependencies: (queryKey) => [
21
+ { filters: { queryKey } },
22
+ {
23
+ filters: {
24
+ queryKey: makeQueryKey(
25
+ SomethingElse
26
+ .GetSomething2
27
+ )
28
+ }
29
+ }
30
+ ]
31
+ }))
8
32
 
9
33
  const q = client.GetSomething2.query
10
34
 
package/test/stubs.ts CHANGED
@@ -92,20 +92,48 @@ export const useExperimental = (
92
92
  }
93
93
 
94
94
  export class RequestContextMap extends RpcContextMap.makeMap({}) {}
95
- export const { TaggedRequest: Req } = makeRpcClient(RequestContextMap)
96
- export class GetSomething2 extends Req<GetSomething2>()("GetSomething2", {
95
+ export const { TaggedRequest: Req, TaggedRequestFor } = makeRpcClient(RequestContextMap)
96
+
97
+ export const SomethingReq = TaggedRequestFor("Something")
98
+
99
+ class SomethingGetSomething2 extends SomethingReq<SomethingGetSomething2>()("GetSomething2", {
97
100
  id: S.String
98
101
  }, { success: S.FiniteFromString }) {}
99
102
 
100
- export class GetSomething2WithDependencies extends Req<GetSomething2WithDependencies>()("GetSomething2", {
103
+ class SomethingGetSomething2WithDependencies
104
+ extends SomethingReq<SomethingGetSomething2WithDependencies>()("GetSomething2", {
105
+ id: S.String
106
+ }, {
107
+ // this is intentilally fake, to simulate a codec that requires a dependency
108
+ success: S.FiniteFromString as S.Codec<number, string, "dep-a">,
109
+ error: S.String
110
+ })
111
+ {}
112
+
113
+ export const Something = {
114
+ GetSomething2: SomethingGetSomething2,
115
+ GetSomething2WithDependencies: SomethingGetSomething2WithDependencies
116
+ }
117
+
118
+ export const SomethingElseReq = TaggedRequestFor("SomethingElse")
119
+
120
+ class SomethingElseGetSomething2 extends SomethingElseReq<SomethingElseGetSomething2>()("GetSomething2", {
101
121
  id: S.String
102
- }, {
103
- // this is intentilally fake, to simulate a codec that requires a dependency
104
- success: S.FiniteFromString as S.Codec<number, string, "dep-a">,
105
- error: S.String
106
- }) {}
122
+ }, { success: S.FiniteFromString }) {}
107
123
 
108
- export const Something = { GetSomething2, GetSomething2WithDependencies, meta: { moduleName: "Something" as const } }
124
+ class SomethingElseGetSomething2WithDependencies
125
+ extends SomethingElseReq<SomethingElseGetSomething2WithDependencies>()("GetSomething2", {
126
+ id: S.String
127
+ }, {
128
+ success: S.FiniteFromString as S.Codec<number, string, "dep-a">,
129
+ error: S.String
130
+ })
131
+ {}
132
+
133
+ export const SomethingElse = {
134
+ GetSomething2: SomethingElseGetSomething2,
135
+ GetSomething2WithDependencies: SomethingElseGetSomething2WithDependencies
136
+ }
109
137
 
110
138
  export const useClient = (
111
139
  options?: { messages?: Record<string, string> | Record<string, MessageFormatElement[]>; toasts: any[] }