@effect-app/vue 0.7.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 (50) hide show
  1. package/.eslintrc.cjs +10 -0
  2. package/.prettierignore +6 -0
  3. package/_cjs/_global.cjs +5 -0
  4. package/_cjs/_global.cjs.map +1 -0
  5. package/_cjs/form.cjs +43 -0
  6. package/_cjs/form.cjs.map +1 -0
  7. package/_cjs/hooks.cjs +228 -0
  8. package/_cjs/hooks.cjs.map +1 -0
  9. package/_cjs/index.cjs +54 -0
  10. package/_cjs/index.cjs.map +1 -0
  11. package/_cjs/internal.cjs +19 -0
  12. package/_cjs/internal.cjs.map +1 -0
  13. package/_cjs/routeParams.cjs +51 -0
  14. package/_cjs/routeParams.cjs.map +1 -0
  15. package/_cjs/runtime.cjs +70 -0
  16. package/_cjs/runtime.cjs.map +1 -0
  17. package/_src/_global.ts +10 -0
  18. package/_src/form.ts +116 -0
  19. package/_src/hooks.ts +300 -0
  20. package/_src/index.ts +3 -0
  21. package/_src/internal.ts +14 -0
  22. package/_src/routeParams.ts +71 -0
  23. package/_src/runtime.ts +50 -0
  24. package/dist/_global.d.ts +9 -0
  25. package/dist/_global.d.ts.map +1 -0
  26. package/dist/_global.js +10 -0
  27. package/dist/form.d.ts +26 -0
  28. package/dist/form.d.ts.map +1 -0
  29. package/dist/form.js +47 -0
  30. package/dist/hooks.d.ts +61 -0
  31. package/dist/hooks.d.ts.map +1 -0
  32. package/dist/hooks.js +204 -0
  33. package/dist/index.d.ts +4 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +4 -0
  36. package/dist/internal.d.ts +9 -0
  37. package/dist/internal.d.ts.map +1 -0
  38. package/dist/internal.js +11 -0
  39. package/dist/routeParams.d.ts +15 -0
  40. package/dist/routeParams.d.ts.map +1 -0
  41. package/dist/routeParams.js +45 -0
  42. package/dist/runtime.d.ts +19 -0
  43. package/dist/runtime.d.ts.map +1 -0
  44. package/dist/runtime.js +48 -0
  45. package/package.json +153 -0
  46. package/tsconfig.json +104 -0
  47. package/tsconfig.json.bak +36 -0
  48. package/tsplus.config.json +6 -0
  49. package/vitest.config.ts +5 -0
  50. package/wallaby.cjs +1 -0
@@ -0,0 +1,61 @@
1
+ import { QueryResult } from "@effect-app/prelude/client";
2
+ import { Effect } from "@effect/io/Effect";
3
+ import { Fiber } from "@effect/io/Fiber";
4
+ import { Exit } from "@effect/io/Exit";
5
+ import { Either } from "@fp-ts/data/Either";
6
+ import type { ApiConfig, FetchResponse } from "@effect-app/prelude/client";
7
+ import { Done } from "@effect-app/prelude/client";
8
+ import type { Http } from "@effect-app/core/http/http-client";
9
+ import * as swrv from "swrv";
10
+ import type { fetcherFn, IResponse } from "swrv/dist/types.js";
11
+ export { isFailed, isInitializing, isSuccess } from "@effect-app/prelude/client";
12
+ type MutateType = {
13
+ <Data>(key: string, res: Data | Promise<Data>, cache?: swrv.SWRVCache<Omit<IResponse<any, any>, "mutate">>, ttl?: number): Promise<{
14
+ data: any;
15
+ error: any;
16
+ isValidating: any;
17
+ }>;
18
+ };
19
+ export declare const mutate: MutateType;
20
+ export declare function useMutate<E, A>(self: Effect<ApiConfig | Http, E, FetchResponse<A>> & {
21
+ mapPath: string;
22
+ }): () => Promise<{
23
+ data: any;
24
+ error: any;
25
+ isValidating: any;
26
+ }>;
27
+ export declare function useMutateWithArg<Arg, E, A>(self: ((arg: Arg) => Effect<ApiConfig | Http, E, FetchResponse<A>>) & {
28
+ mapPath: (arg: Arg) => string;
29
+ }): (arg: Arg) => Promise<{
30
+ data: any;
31
+ error: any;
32
+ isValidating: any;
33
+ }>;
34
+ export declare function useSafeQueryWithArg<Arg, E, A>(self: ((arg: Arg) => Effect<ApiConfig | Http, E, FetchResponse<A>>) & {
35
+ mapPath: (arg: Arg) => string;
36
+ }, arg: Arg, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [import("vue").ComputedRef<import("@effect-app/prelude/client").QueryResult<E, A>>, import("vue").ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
37
+ export declare function useSafeQuery<E, A>(self: Effect<ApiConfig | Http, E, FetchResponse<A>> & {
38
+ mapPath: string;
39
+ }, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [import("vue").ComputedRef<import("@effect-app/prelude/client").QueryResult<E, A>>, import("vue").ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
40
+ export declare function useSafeQueryWithArg_<Arg, E, A>(self: (arg: Arg) => Effect<ApiConfig | Http, E, FetchResponse<A>>, mapPath: (arg: Arg) => string, arg: Arg, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [import("vue").ComputedRef<import("@effect-app/prelude/client").QueryResult<E, A>>, import("vue").ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
41
+ export declare function useSafeQuery_<E, A>(key: string, self: Effect<ApiConfig | Http, E, FetchResponse<A>>, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [import("vue").ComputedRef<import("@effect-app/prelude/client").QueryResult<E, A>>, import("vue").ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
42
+ export declare function useSafeQueryLegacy<E, A>(self: Effect<ApiConfig | Http, E, FetchResponse<A>>): readonly [import("vue").ShallowRef<import("@effect-app/prelude/client").Initial> | import("vue").ShallowRef<import("@effect-app/prelude/client").Loading> | import("vue").ShallowRef<import("@effect-app/prelude/client").Refreshing<E, A>> | import("vue").ShallowRef<Done<E, A>>, import("vue").ComputedRef<A | undefined>, () => Promise<void | import("@effect-app/prelude/client").QueryResult<E, A>>];
43
+ export declare function make<R, E, A>(self: Effect<R, E, FetchResponse<A>>): readonly [import("vue").ShallowRef<import("@effect-app/prelude/client").Initial> | import("vue").ShallowRef<import("@effect-app/prelude/client").Loading> | import("vue").ShallowRef<import("@effect-app/prelude/client").Refreshing<E, A>> | import("vue").ShallowRef<Done<E, A>>, import("vue").ComputedRef<A | undefined>, import("@effect/io/Effect").Effect<R, never, import("@effect-app/prelude/client").QueryResult<E, A>>];
44
+ /**
45
+ * Pass a function that returns an Effect, e.g from a client action.
46
+ * Returns a tuple with state ref and execution function which reports errors as Toast.
47
+ */
48
+ export declare function useMutation<I, E, A>(self: (i: I) => Effect<ApiConfig | Http, E, A>): readonly [import("vue").ComputedRef<{
49
+ loading: boolean;
50
+ value: A | undefined;
51
+ error: E | undefined;
52
+ }>, (i: I, abortSignal?: AbortSignal) => Promise<import("@fp-ts/data/Either").Either<E, A>>];
53
+ /**
54
+ * Parameter-less variant of @see {@link useMutation}
55
+ */
56
+ export declare function useAction<E, A>(self: Effect<ApiConfig | Http, E, A>): readonly [import("vue").ComputedRef<{
57
+ loading: boolean;
58
+ value: A | undefined;
59
+ error: E | undefined;
60
+ }>, (abortSignal?: AbortSignal) => Promise<import("@fp-ts/data/Either").Either<E, A>>];
61
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../_src/hooks.ts"],"names":[],"mappings":"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"}
package/dist/hooks.js ADDED
@@ -0,0 +1,204 @@
1
+ import * as tracer_1 from "@effect/io/Debug";
2
+ const fileName_1 = "packages/vue/_src/hooks.ts";
3
+ import * as tsplus_module_1 from "@effect-app/prelude/client";
4
+ import * as tsplus_module_2 from "@effect-app/prelude/client/QueryResult";
5
+ import * as tsplus_module_3 from "@fp-ts/data/Either";
6
+ import * as tsplus_module_4 from "@fp-ts/data/Option";
7
+ import * as tsplus_module_5 from "@effect-app/core/Function";
8
+ import * as tsplus_module_6 from "@effect/io/Effect";
9
+ import * as tsplus_module_7 from "@effect/io/Fiber";
10
+ import * as tsplus_module_8 from "@effect/io/Exit";
11
+ import * as tsplus_module_9 from "@effect/io/Cause";
12
+ import * as tsplus_module_10 from "@effect-app/core/Option";
13
+ import { Done } from "@effect-app/prelude/client";
14
+ import { InterruptedException } from "@effect/io/Cause";
15
+ import * as swrv from "swrv";
16
+ import { computed, ref, shallowRef } from "vue";
17
+ import { run } from "./internal.js";
18
+ export { isFailed, isInitializing, isSuccess } from "@effect-app/prelude/client";
19
+ // madness - workaround different import behavior on server and client
20
+ const useSWRV = (swrv.default.default ? swrv.default.default : swrv.default);
21
+ export const mutate = (swrv.default.mutate ? swrv.default.mutate : swrv.mutate);
22
+ function swrToQuery(r) {
23
+ if (r.error) {
24
+ return r.isValidating
25
+ ? tsplus_module_1.Refreshing.fail(r.error, r.data)
26
+ : Done.fail(r.error, r.data);
27
+ }
28
+ if (r.data !== undefined) {
29
+ return r.isValidating
30
+ ? tsplus_module_1.Refreshing.succeed(r.data)
31
+ : Done.succeed(r.data);
32
+ }
33
+ return r.isValidating ? new tsplus_module_1.Loading() : new tsplus_module_1.Initial();
34
+ }
35
+ export function useMutate(self) {
36
+ const fn = () => run.value(self).then(_ => _.body);
37
+ return () => mutate(self.mapPath, fn);
38
+ }
39
+ export function useMutateWithArg(self) {
40
+ const fn = (arg) => run.value(self(arg)).then(_ => _.body);
41
+ return (arg) => mutate(self.mapPath(arg), fn(arg));
42
+ }
43
+ // TODO: same trick with mutations/actions
44
+ export function useSafeQueryWithArg(self, arg, config) {
45
+ return useSafeQueryWithArg_(self, self.mapPath, arg, config);
46
+ }
47
+ export function useSafeQuery(self, config) {
48
+ return useSafeQuery_(self.mapPath, self, config);
49
+ }
50
+ export function useSafeQueryWithArg_(self, mapPath, arg, config) {
51
+ return useSafeQuery_(mapPath(arg), self(arg), config);
52
+ }
53
+ export function useSafeQuery_(key, self, config) {
54
+ // const [result, latestSuccess, execute] = make(self)
55
+ // TODO: support with interruption
56
+ // const sem = Semaphore.unsafeMake(1)
57
+ // const lock = sem.withPermits(1)
58
+ // let fib: Fiber.FiberContext<E, FetchResponse<A>> | undefined = undefined
59
+ // const execute = self
60
+ // const runNew = execute.fork()
61
+ // .tap(newFiber =>
62
+ // Effect(() => {
63
+ // fib = newFiber
64
+ // })
65
+ // )
66
+ // const ex = lock(
67
+ // Effect.suspend(() => {
68
+ // return fib
69
+ // ? Fiber.interrupt(fib).zipRight(runNew)
70
+ // : runNew
71
+ // })
72
+ // ).flatMap(Fiber.await)
73
+ // .flatMap(Effect.done)
74
+ // function execWithInterruption() {
75
+ // return ex.provideSomeLayer(Layers)
76
+ // .runPromise()
77
+ // .catch(err => {
78
+ // if (!Cause.isInterruptedException(err)) throw err
79
+ // return undefined
80
+ // })
81
+ // }
82
+ // const swr = useSWRV<A, E>(key, () => execWithInterruption().then(_ => _?.body as any)) // Effect.runPromise(self.provideSomeLayer(Layers))
83
+ const swr = useSWRV(key, () => run.value(self).then(_ => _.body), config);
84
+ const result = computed(() => swrToQuery({ data: swr.data.value, error: swr.error.value, isValidating: swr.isValidating.value })); // ref<QueryResult<E, A>>()
85
+ const latestSuccess = computed(() => {
86
+ const value = result.value;
87
+ return tsplus_module_2.isSuccess(value) ?
88
+ tsplus_module_3.isRight(value.current)
89
+ ? value.current.right
90
+ : tsplus_module_4.isSome(value.previous)
91
+ ? value.previous.value
92
+ : undefined :
93
+ undefined;
94
+ });
95
+ return tsplus_module_5.tuple(result, latestSuccess, () => swr.mutate(), swr);
96
+ }
97
+ export function useSafeQueryLegacy(self) {
98
+ const [result, latestSuccess, execute] = make(self);
99
+ const sem = tsplus_module_6.unsafeMakeSemaphore(1);
100
+ const withPermit = sem.withPermits(1);
101
+ let fib = undefined;
102
+ const runNew = tracer_1.withCallTrace(fileName_1 + ":154:6")(tsplus_module_6.tap(newFiber => tracer_1.withCallTrace(fileName_1 + ":155:7")(tsplus_module_6.sync(() => {
103
+ fib = newFiber;
104
+ }))))(tsplus_module_6.fork(execute));
105
+ const ex = tracer_1.withCallTrace(fileName_1 + ":166:6")(tsplus_module_6.flatMap(_ => tsplus_module_6.done(_)))(tracer_1.withCallTrace(fileName_1 + ":165:6")(tsplus_module_6.flatMap(_ => tracer_1.withCallTrace(fileName_1 + ":165:21")(_.await())))(withPermit(tracer_1.withCallTrace(fileName_1 + ":160:21")(tsplus_module_6.suspendSucceed(() => {
106
+ return fib
107
+ ? tracer_1.withCallTrace(fileName_1 + ":162:23")(tsplus_module_6.zipRight(runNew))(tsplus_module_7.interrupt(fib))
108
+ : runNew;
109
+ })))));
110
+ function exec() {
111
+ return run.value(ex)
112
+ .catch(err => {
113
+ // TODO
114
+ if (!JSON.stringify(err).includes("InterruptedException"))
115
+ throw err;
116
+ });
117
+ }
118
+ return tsplus_module_5.tuple(result, latestSuccess, exec);
119
+ }
120
+ export function make(self) {
121
+ const result = shallowRef(new tsplus_module_1.Initial());
122
+ const execute = tracer_1.withCallTrace(fileName_1 + ":188:6")(tsplus_module_6.flatMap(r => tracer_1.withCallTrace(fileName_1 + ":188:19")(tsplus_module_6.sync(() => result.value = r))))(tracer_1.withCallTrace(fileName_1 + ":187:6")(tsplus_module_6.zipRight(tsplus_module_2.queryResult(tracer_1.withCallTrace(fileName_1 + ":187:20")(tsplus_module_6.map(_ => _.body))(self))))(tracer_1.withCallTrace(fileName_1 + ":182:19")(tsplus_module_6.sync(() => {
123
+ result.value = tsplus_module_2.isInitializing(result.value)
124
+ ? new tsplus_module_1.Loading()
125
+ : new tsplus_module_1.Refreshing(result.value);
126
+ }))));
127
+ const latestSuccess = computed(() => {
128
+ const value = result.value;
129
+ return tsplus_module_2.hasValue(value) ?
130
+ tsplus_module_3.isRight(value.current)
131
+ ? value.current.right
132
+ : tsplus_module_4.isSome(value.previous)
133
+ ? value.previous.value
134
+ : undefined :
135
+ undefined;
136
+ });
137
+ return tsplus_module_5.tuple(result, latestSuccess, execute);
138
+ }
139
+ /**
140
+ * Pass a function that returns an Effect, e.g from a client action.
141
+ * Returns a tuple with state ref and execution function which reports errors as Toast.
142
+ */
143
+ export function useMutation(self) {
144
+ const loading = ref(false);
145
+ const error = ref();
146
+ const value = ref();
147
+ const handle = handleExit(loading, error, value);
148
+ const exec = (i, abortSignal) => run.value(tracer_1.withCallTrace(fileName_1 + ":224:10")(tsplus_module_6.flatMap(f => {
149
+ const cancel = () => run.value(tsplus_module_7.interrupt(f));
150
+ abortSignal?.addEventListener("abort", () => void cancel().catch(console.error));
151
+ return tsplus_module_7.join(f);
152
+ }))(tsplus_module_6.fork(tracer_1.withCallTrace(fileName_1 + ":222:10")(tsplus_module_6.flatMap(exit => tracer_1.withCallTrace(fileName_1 + ":222:26")(tsplus_module_6.sync(() => handle(exit)))))(tsplus_module_6.exit(tracer_1.withCallTrace(fileName_1 + ":220:10")(tsplus_module_6.zipRight(self(i)))(tracer_1.withCallTrace(fileName_1 + ":215:7")(tsplus_module_6.sync(() => {
153
+ loading.value = true;
154
+ value.value = undefined;
155
+ error.value = undefined;
156
+ }))))))));
157
+ const state = computed(() => ({ loading: loading.value, value: value.value, error: error.value }));
158
+ return tsplus_module_5.tuple(state, exec);
159
+ }
160
+ /**
161
+ * Parameter-less variant of @see {@link useMutation}
162
+ */
163
+ export function useAction(self) {
164
+ const loading = ref(false);
165
+ const error = ref();
166
+ const value = ref();
167
+ const handle = handleExit(loading, error, value);
168
+ const exec = (abortSignal) => {
169
+ loading.value = true;
170
+ return run.value(tracer_1.withCallTrace(fileName_1 + ":256:10")(tsplus_module_6.flatMap(f => {
171
+ const cancel = () => tsplus_module_6.unsafeRunPromise(tsplus_module_7.interrupt(f));
172
+ abortSignal?.addEventListener("abort", () => void cancel().catch(console.error));
173
+ return tsplus_module_7.join(f);
174
+ }))(tsplus_module_6.fork(tracer_1.withCallTrace(fileName_1 + ":254:10")(tsplus_module_6.flatMap(exit => tracer_1.withCallTrace(fileName_1 + ":254:26")(tsplus_module_6.sync(() => handle(exit)))))(tsplus_module_6.exit(self)))));
175
+ };
176
+ const state = computed(() => ({ loading: loading.value, value: value.value, error: error.value }));
177
+ return tsplus_module_5.tuple(state, exec);
178
+ }
179
+ function handleExit(loading, error, value) {
180
+ return (exit) => {
181
+ loading.value = false;
182
+ if (tsplus_module_8.isSuccess(exit)) {
183
+ value.value = exit.value;
184
+ error.value = undefined;
185
+ return tsplus_module_3.right(exit.value);
186
+ }
187
+ const err = tsplus_module_9.failureOption(exit.cause);
188
+ if (tsplus_module_4.isSome(err)) {
189
+ error.value = err.value;
190
+ value.value = undefined;
191
+ return tsplus_module_3.left(err.value);
192
+ }
193
+ const died = tsplus_module_9.dieOption(exit.cause);
194
+ if (tsplus_module_10.getOrUndefined(died)) {
195
+ throw tsplus_module_10.getOrUndefined(died);
196
+ }
197
+ const interrupted = tsplus_module_9.interruptOption(exit.cause);
198
+ if (tsplus_module_10.getOrUndefined(interrupted)) {
199
+ throw InterruptedException();
200
+ }
201
+ throw new Error("Invalid state");
202
+ };
203
+ }
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL2hvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN2RCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUc1QixPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUVuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQXNCaEYsc0VBQXNFO0FBQ3RFLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUEyQixDQUFBO0FBQ3RHLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBMEIsQ0FBQTtBQUV4RyxTQUFTLFVBQVUsQ0FDakIsQ0FBdUU7SUFFdkUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1FBQ1gsT0FBTyxDQUFDLENBQUMsWUFBWTtZQUNuQixDQUFDLENBQUMsZ0JBQUEsVUFBVSxDQUFDLElBQUksQ0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU8sQ0FBQyxDQUFD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
@@ -0,0 +1,4 @@
1
+ export { isFailed, isInitializing, isSuccess } from "@effect-app/prelude/client";
2
+ export * from "./hooks.js";
3
+ export * from "./runtime.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../_src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAChF,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { isFailed, isInitializing, isSuccess } from "@effect-app/prelude/client";
2
+ export * from "./hooks.js";
3
+ export * from "./runtime.js";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ2hGLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsY0FBYyxDQUFBIn0=
@@ -0,0 +1,9 @@
1
+ import { Effect } from "@effect/io/Effect";
2
+ import type { ApiConfig } from "@effect-app/prelude/client";
3
+ import type { Http } from "@effect-app/core/http/http-client";
4
+ import type { Runtime } from "@effect/io/Runtime";
5
+ export declare const run: {
6
+ value<E, A>(_: import("@effect/io/Effect").Effect<ApiConfig | Http, E, A>): Promise<A>;
7
+ };
8
+ export declare function initRuntime<A>(rt: Runtime<A | ApiConfig | Http>): void;
9
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../_src/internal.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,eAAO,MAAM,GAAG;;CAIf,CAAA;AACD,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,QAI/D"}
@@ -0,0 +1,11 @@
1
+ export const run = {
2
+ value(_) {
3
+ throw new Error("Runtime not initialized, please run `initRuntime` first");
4
+ }
5
+ };
6
+ export function initRuntime(rt) {
7
+ run.value = function (self) {
8
+ return rt.unsafeRunPromise(self);
9
+ };
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL2ludGVybmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRztJQUNqQixLQUFLLENBQU8sQ0FBaUM7UUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFBO0lBQzVFLENBQUM7Q0FDRixDQUFBO0FBQ0QsTUFBTSxVQUFVLFdBQVcsQ0FBSSxFQUFpQztJQUM5RCxHQUFHLENBQUMsS0FBSyxHQUFHLFVBQWUsSUFBb0M7UUFDN0QsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbEMsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,15 @@
1
+ import { Opt } from "@effect-app/core/Option";
2
+ import type { ParsedShapeOfCustom, ReqRes, SchemaAny } from "@effect-app/prelude/schema";
3
+ import { Parser } from "@effect-app/prelude/schema";
4
+ import type { ParsedQuery } from "query-string";
5
+ export declare function getQueryParam(search: ParsedQuery, param: string): string | null | undefined;
6
+ export declare const getQueryParamO: (search: ParsedQuery, param: string) => import("@fp-ts/data/Option").Option<string>;
7
+ export declare const parseOpt: <E, A>(t: ReqRes<E, A>) => (u: E, env?: Parser.ParserEnv | undefined) => import("@fp-ts/data/Option").None | import("@fp-ts/data/Option").Some<A>;
8
+ export declare const parseOptUnknown: <E, A>(t: ReqRes<E, A>) => (u: unknown, env?: Parser.ParserEnv | undefined) => import("@fp-ts/data/Option").None | import("@fp-ts/data/Option").Some<A>;
9
+ export declare function parseRouteParamsOption<NER extends Record<string, SchemaAny>>(query: Record<string, any>, t: NER): {
10
+ [K in keyof NER]: Opt<ParsedShapeOfCustom<NER[K]>>;
11
+ };
12
+ export declare function parseRouteParams<NER extends Record<string, SchemaAny>>(query: Record<string, any>, t: NER): {
13
+ [K in keyof NER]: ParsedShapeOfCustom<NER[K]>;
14
+ };
15
+ //# sourceMappingURL=routeParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routeParams.d.ts","sourceRoot":"","sources":["../_src/routeParams.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACxF,OAAO,EAAc,MAAM,EAAU,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,6BAM/D;AAED,eAAO,MAAM,cAAc,qFAAwC,CAAA;AAEnE,eAAO,MAAM,QAAQ,mJAQpB,CAAA;AAED,eAAO,MAAM,eAAe,yJAQ3B,CAAA;AAED,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAC1E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD,CAYA;AAED,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC9C,CAYA"}
@@ -0,0 +1,45 @@
1
+ import * as tsplus_module_1 from "@fp-ts/data/Option";
2
+ import * as tsplus_module_2 from "@effect-app/core/Function";
3
+ import * as tsplus_module_3 from "@effect-app/prelude/utils";
4
+ import { EParserFor, Parser, unsafe } from "@effect-app/prelude/schema";
5
+ export function getQueryParam(search, param) {
6
+ const v = search[param];
7
+ if (Array.isArray(v)) {
8
+ return v[0];
9
+ }
10
+ return v ?? null;
11
+ }
12
+ export const getQueryParamO = tsplus_module_2.flow(getQueryParam, tsplus_module_1.fromNullable);
13
+ export const parseOpt = (t) => {
14
+ const dec = tsplus_module_2.flow(EParserFor(t), x => x.effect._tag === "Right"
15
+ ? x.effect.right[1]._tag === "None"
16
+ ? tsplus_module_1.some(x.effect.right[0])
17
+ : tsplus_module_1.none
18
+ : tsplus_module_1.none);
19
+ return dec;
20
+ };
21
+ export const parseOptUnknown = (t) => {
22
+ const dec = tsplus_module_2.flow(Parser.for(t), x => x.effect._tag === "Right"
23
+ ? x.effect.right[1]._tag === "None"
24
+ ? tsplus_module_1.some(x.effect.right[0])
25
+ : tsplus_module_1.none
26
+ : tsplus_module_1.none);
27
+ return dec;
28
+ };
29
+ export function parseRouteParamsOption(query, t // enforce non empty
30
+ ) {
31
+ return tsplus_module_3.RecordKeys(tsplus_module_3.object$(t)).reduce((prev, cur) => {
32
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
33
+ prev[cur] = tsplus_module_1.flatMap(parseOpt(t[cur]))(getQueryParamO(query, cur));
34
+ return prev;
35
+ }, {});
36
+ }
37
+ export function parseRouteParams(query, t // enforce non empty
38
+ ) {
39
+ return tsplus_module_3.RecordKeys(tsplus_module_3.object$(t)).reduce((prev, cur) => {
40
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
41
+ prev[cur] = unsafe(EParserFor(t[cur]))(query[cur]);
42
+ return prev;
43
+ }, {});
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVQYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL3JvdXRlUGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBR3ZFLE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBbUIsRUFBRSxLQUFhO0lBQzlELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDcEIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDWjtJQUNELE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQTtBQUNsQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGdCQUFBLElBQUksQ0FBQyxhQUFhLCtCQUFtQixDQUFBO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFPLENBQWUsRUFBRSxFQUFFO0lBQ2hELE1BQU0sR0FBRyxHQUFHLGdCQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FDbEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTztRQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDakMsQ0FBQyxDQUFDLHFCQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLENBQUMscUJBQVM7UUFDWixDQUFDLHFCQUFTLENBQUMsQ0FBQTtJQUNmLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQU8sQ0FBZSxFQUFFLEVBQUU7SUFDdkQsTUFBTSxHQUFHLEdBQUcsZ0JBQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FDbEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssT0FBTztRQUN2QixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07WUFDakMsQ0FBQyxDQUFDLHFCQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLENBQUMscUJBQVM7UUFDWixDQUFDLHFCQUFTLENBQUMsQ0FBQTtJQUNmLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxLQUEwQixFQUMxQixDQUFNLENBQUMsb0JBQW9COztJQUkzQixPQUFPLG1EQUFBLENBQUMsR0FBUyxNQUFNLENBQ3JCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1osb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyx3QkFBNkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUUsQ0FBQyxFQUE5RCxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQWEsQ0FBQyxDQUEyQixDQUFBO1FBRTNFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxFQUNELEVBRUMsQ0FDRixDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsS0FBMEIsRUFDMUIsQ0FBTSxDQUFDLG9CQUFvQjs7SUFJM0IsT0FBTyxtREFBQSxDQUFDLEdBQVMsTUFBTSxDQUNyQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNaLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFVLENBQUMsQ0FBQyxDQUFBO1FBRTFELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQyxFQUNELEVBRUMsQ0FDRixDQUFBO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,19 @@
1
+ import { Config } from "@effect/io/Config";
2
+ import { Layer } from "@effect/io/Layer";
3
+ import type { Http } from "@effect-app/core/http/http-client";
4
+ import { ApiConfig } from "@effect-app/prelude/client";
5
+ export { initRuntime } from "./internal.js";
6
+ export declare function makeApiLayers(config?: Config<ApiConfig>): import("@effect/io/Layer").Layer<never, import("@effect/io/Config/Error").ConfigError, ApiConfig | import("@effect-app/core/http/http-client").HttpOps>;
7
+ export declare function makeAppRuntime<R, E, A>(layer: Layer<R, E, A>): import("@effect/io/Effect").Effect<R, E, {
8
+ runtime: import("@effect/io/Runtime").Runtime<A>;
9
+ clean: import("@effect/io/Effect").Effect<never, never, void>;
10
+ }>;
11
+ export declare function initializeSync<E, A>(layer: Layer<never, E, A | ApiConfig | Http>): {
12
+ runtime: import("@effect/io/Runtime").Runtime<ApiConfig | Http | A>;
13
+ clean: () => void;
14
+ };
15
+ export declare function initializeAsync<E, A>(layer: Layer<never, E, A | ApiConfig | Http>): Promise<{
16
+ runtime: import("@effect/io/Runtime").Runtime<ApiConfig | Http | A>;
17
+ clean: () => Promise<void>;
18
+ }>;
19
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../_src/runtime.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAA;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAItD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAQ3C,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAM,CAAC,SAAS,CAAoB,2JAEzE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;GAW5D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;;;EAOhF;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;;;GASjF"}
@@ -0,0 +1,48 @@
1
+ import * as tracer_1 from "@effect/io/Debug";
2
+ const fileName_1 = "packages/vue/_src/runtime.ts";
3
+ import * as tsplus_module_1 from "@effect/io/Config";
4
+ import * as tsplus_module_2 from "@effect/io/Layer";
5
+ import * as tsplus_module_3 from "@effect/io/Scope";
6
+ import * as tsplus_module_4 from "@effect/io/Effect";
7
+ import * as tsplus_module_5 from "@effect-app/core/Effect";
8
+ import * as HF from "@effect-app/core/http/http-client-fetch";
9
+ import { ApiConfig } from "@effect-app/prelude/client";
10
+ import { fetch } from "cross-fetch";
11
+ import { initRuntime } from "./internal.js";
12
+ export { initRuntime } from "./internal.js";
13
+ const DefaultApiConfig = tsplus_module_1.struct({
14
+ apiUrl: tsplus_module_1.withDefault("/api")(tsplus_module_1.string("apiUrl")),
15
+ headers: tsplus_module_1.optional(tsplus_module_1.table(tsplus_module_1.string(), "headers"))
16
+ });
17
+ export function makeApiLayers(config = DefaultApiConfig) {
18
+ return tsplus_module_2.merge(ApiConfig.Live(config))(HF.Client(fetch));
19
+ }
20
+ export function makeAppRuntime(layer) {
21
+ return tracer_1.withCallTrace(fileName_1 + ":20:17")(tsplus_module_4.gen(function* ($) {
22
+ const scope = yield* $(tracer_1.withCallTrace(fileName_1 + ":21:34")(tsplus_module_3.make()));
23
+ const env = yield* $(tracer_1.withCallTrace(fileName_1 + ":22:32")(tsplus_module_2.buildWithScope(scope))(layer));
24
+ const runtime = yield* $(tracer_1.withCallTrace(fileName_1 + ":23:57")(tsplus_module_4.provideEnvironment(env))(tsplus_module_4.scoped(tsplus_module_4.runtime())));
25
+ return {
26
+ runtime,
27
+ clean: tracer_1.withCallTrace(fileName_1 + ":27:20")(tsplus_module_3.close(tsplus_module_5.ex_unit))(scope)
28
+ };
29
+ }));
30
+ }
31
+ export function initializeSync(layer) {
32
+ const { clean, runtime } = tsplus_module_4.unsafeRunSync(makeAppRuntime(layer));
33
+ initRuntime(runtime);
34
+ return {
35
+ runtime,
36
+ clean: () => tsplus_module_4.unsafeRunSync(clean)
37
+ };
38
+ }
39
+ export function initializeAsync(layer) {
40
+ return tsplus_module_4.unsafeRunPromise(makeAppRuntime(layer)).then(({ clean, runtime }) => {
41
+ initRuntime(runtime);
42
+ return {
43
+ runtime,
44
+ clean: () => tsplus_module_4.unsafeRunPromise(clean)
45
+ };
46
+ });
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFM0MsTUFBTSxnQkFBZ0IsR0FBRyx1QkFBYztJQUNyQyxNQUFNLEVBQUUsNEJBQW9DLE1BQU0sRUFBMUMsdUJBQWMsUUFBUSxDQUFDLENBQW9CO0lBQ25ELE9BQU8sMkJBQUUsc0JBQUEsd0JBQWUsRUFDZixTQUFTLENBQUMsQ0FBUztDQUM3QixDQUFDLENBQUE7QUFFRixNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQTRCLGdCQUFnQjtJQUN4RSw2QkFBMEIsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBekMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBeUI7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQVUsS0FBcUI7SUFDM0QscURBQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLCtDQUFDLHNCQUFZLEVBQUMsQ0FBQTtRQUNwQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsNkVBQXFCLEtBQUssR0FBMUIsS0FBSyxDQUFzQixDQUFDLENBQUE7UUFDakQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlGQUE4QyxHQUFHLDBCQUFqRCx5QkFBbUIsRUFBK0IsQ0FBQyxDQUFBO1FBRTVFLE9BQU87WUFDTCxPQUFPO1lBQ1AsS0FBSyxFQUFFLDhGQUFBLEtBQUssQ0FBaUI7U0FDOUIsQ0FBQTtJQUNILENBQUMsQ0FBQyxFQUFBO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQU8sS0FBNEM7SUFDL0UsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsaUNBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFjLENBQUE7SUFDOUQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BCLE9BQU87UUFDTCxPQUFPO1FBQ1AsS0FBSyxFQUFFLEdBQUcsRUFBRSwrQkFBQyxLQUFLLENBQWM7S0FDakMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFPLEtBQTRDO0lBQ2hGLE9BQU8saUNBQUEsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUN6QixJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwQixPQUFPO1lBQ0wsT0FBTztZQUNQLEtBQUssRUFBRSxHQUFHLEVBQUUsa0NBQUMsS0FBSyxDQUFpQjtTQUNwQyxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDIn0=
package/package.json ADDED
@@ -0,0 +1,153 @@
1
+ {
2
+ "name": "@effect-app/vue",
3
+ "version": "0.7.0",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "dependencies": {
7
+ "@effect-ts/core": "^0.60.5",
8
+ "@effect-ts/monocle": "^0.43.0",
9
+ "@effect-ts/system": "^0.57.5",
10
+ "@effect/io": "^0.0.65",
11
+ "@fp-ts/core": "^0.0.11",
12
+ "@fp-ts/data": "^0.0.39",
13
+ "query-string": "^8.1.0",
14
+ "swrv": "^1.0.3",
15
+ "vue": "^3.2.45",
16
+ "@effect-app/vue": "0.7.0",
17
+ "@effect-app/prelude": "0.7.0",
18
+ "@effect-app/core": "0.7.0",
19
+ "@effect-app/schema": "0.7.0"
20
+ },
21
+ "devDependencies": {
22
+ "@rollup/pluginutils": "^5.0.2",
23
+ "@babel/cli": "^7.20.7",
24
+ "@types/node": "~18.11.18",
25
+ "json5": "^2.2.3",
26
+ "ts-node": "^10.9.1",
27
+ "typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.164/compiler/typescript.tgz",
28
+ "vite": "^4.0.4",
29
+ "vitest": "^0.27.2",
30
+ "vue": "^3.2.45",
31
+ "@effect-app/compiler": "0.7.0"
32
+ },
33
+ "typesVersions": {
34
+ "*": {
35
+ "*": [
36
+ "dist/*"
37
+ ]
38
+ }
39
+ },
40
+ "exports": {
41
+ ".": {
42
+ "import": {
43
+ "types": "./dist/index.d.ts",
44
+ "default": "./dist/index.js"
45
+ },
46
+ "require": {
47
+ "types": "./dist/index.d.ts",
48
+ "default": "./_cjs/index.cjs"
49
+ }
50
+ },
51
+ "./_global": {
52
+ "import": {
53
+ "types": "./dist/_global.d.ts",
54
+ "default": "./dist/_global.js"
55
+ },
56
+ "require": {
57
+ "types": "./dist/_global.d.ts",
58
+ "default": "./_cjs/_global.cjs"
59
+ }
60
+ },
61
+ "./form": {
62
+ "import": {
63
+ "types": "./dist/form.d.ts",
64
+ "default": "./dist/form.js"
65
+ },
66
+ "require": {
67
+ "types": "./dist/form.d.ts",
68
+ "default": "./_cjs/form.cjs"
69
+ }
70
+ },
71
+ "./hooks": {
72
+ "import": {
73
+ "types": "./dist/hooks.d.ts",
74
+ "default": "./dist/hooks.js"
75
+ },
76
+ "require": {
77
+ "types": "./dist/hooks.d.ts",
78
+ "default": "./_cjs/hooks.cjs"
79
+ }
80
+ },
81
+ "./index": {
82
+ "import": {
83
+ "types": "./dist/index.d.ts",
84
+ "default": "./dist/index.js"
85
+ },
86
+ "require": {
87
+ "types": "./dist/index.d.ts",
88
+ "default": "./_cjs/index.cjs"
89
+ }
90
+ },
91
+ "./internal": {
92
+ "import": {
93
+ "types": "./dist/internal.d.ts",
94
+ "default": "./dist/internal.js"
95
+ },
96
+ "require": {
97
+ "types": "./dist/internal.d.ts",
98
+ "default": "./_cjs/internal.cjs"
99
+ }
100
+ },
101
+ "./routeParams": {
102
+ "import": {
103
+ "types": "./dist/routeParams.d.ts",
104
+ "default": "./dist/routeParams.js"
105
+ },
106
+ "require": {
107
+ "types": "./dist/routeParams.d.ts",
108
+ "default": "./_cjs/routeParams.cjs"
109
+ }
110
+ },
111
+ "./runtime": {
112
+ "import": {
113
+ "types": "./dist/runtime.d.ts",
114
+ "default": "./dist/runtime.js"
115
+ },
116
+ "require": {
117
+ "types": "./dist/runtime.d.ts",
118
+ "default": "./_cjs/runtime.cjs"
119
+ }
120
+ }
121
+ },
122
+ "gitHead": "bd8e27eea3eff97db8739d577d67e7336c078d28",
123
+ "sideEffects": [
124
+ "./dist/faker.js",
125
+ "./faker",
126
+ "./src/faker",
127
+ "./dist/faker",
128
+ "./dist/src/faker.js",
129
+ "./dist/faker.js"
130
+ ],
131
+ "scripts": {
132
+ "watch": "pnpm build:tsc -w",
133
+ "build:tsc": "pnpm clean-dist && node ../../scripts/package.js && NODE_OPTIONS=--max-old-space-size=6144 tsc --build",
134
+ "build": "pnpm build:tsc && pnpm build2:cjs",
135
+ "build2:cjs": "rm -rf _cjs && babel dist --config-file ../../.babel.cjs.json --out-dir _cjs --out-file-extension .cjs --source-maps",
136
+ "watch2": "pnpm clean-dist && NODE_OPTIONS=--max-old-space-size=6144 tsc -w",
137
+ "clean": "rm -rf dist && rm -rf _cjs",
138
+ "clean-dist": "sh ../../scripts/clean-dist.sh",
139
+ "circular": "pnpm circular:src && pnpm circular:dist",
140
+ "circular:src": "madge --circular --ts-config ./tsconfig.json --extensions ts ./_src",
141
+ "circular:dist": "madge --circular --extensions js ./dist",
142
+ "compile": "NODE_OPTIONS=--max-old-space-size=6144 tsc --noEmit",
143
+ "lint": "NODE_OPTIONS=--max-old-space-size=6144 ESLINT_TS=1 eslint ./_src",
144
+ "lint:watch": "ESLINT_TS=1 esw -w --changed --clear --ext ts,tsx .",
145
+ "autofix": "pnpm lint --fix",
146
+ "test": "vitest",
147
+ "test:run": "pnpm run test run --passWithNoTests",
148
+ "testsuite": "pnpm lint && pnpm circular && pnpm run test:run",
149
+ "ncu": "ncu",
150
+ "pub": "pnpm prepublish && npm publish --access public",
151
+ "prepublish": "pnpm build && cp -f ./tsconfig.json ./tsconfig.json.bak && node ../../scripts/mergeTsConfig.cjs ./tsconfig.json"
152
+ }
153
+ }