@effect-app/vue 0.130.0 → 0.131.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.
- package/CHANGELOG.md +20 -0
- package/_cjs/_global.cjs +1 -2
- package/_cjs/_global.cjs.map +1 -1
- package/_cjs/form.cjs +12 -14
- package/_cjs/form.cjs.map +1 -1
- package/_cjs/hooks.cjs +27 -190
- package/_cjs/hooks.cjs.map +1 -1
- package/_cjs/internal.cjs +6 -5
- package/_cjs/internal.cjs.map +1 -1
- package/_cjs/mutate.cjs +105 -0
- package/_cjs/mutate.cjs.map +1 -0
- package/_cjs/query.cjs +53 -28
- package/_cjs/query.cjs.map +1 -1
- package/_cjs/routeParams.cjs +9 -12
- package/_cjs/routeParams.cjs.map +1 -1
- package/_cjs/runtime.cjs +19 -22
- package/_cjs/runtime.cjs.map +1 -1
- package/_src/_global.ts +1 -10
- package/_src/form.ts +9 -12
- package/_src/hooks.ts +2 -323
- package/_src/internal.ts +9 -4
- package/_src/mutate.ts +163 -0
- package/_src/query.ts +103 -32
- package/_src/routeParams.ts +6 -3
- package/_src/runtime.ts +18 -13
- package/_src/swrv.bak +196 -0
- package/dist/_global.d.ts.map +1 -1
- package/dist/_global.js +2 -10
- package/dist/form.d.ts.map +1 -1
- package/dist/form.js +15 -17
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +3 -195
- package/dist/internal.d.ts +5 -4
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +5 -3
- package/dist/mutate.d.ts +43 -0
- package/dist/mutate.d.ts.map +1 -0
- package/dist/mutate.js +101 -0
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +62 -33
- package/dist/routeParams.d.ts.map +1 -1
- package/dist/routeParams.js +14 -15
- package/dist/runtime.d.ts +24 -23
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +27 -24
- package/package.json +13 -4
- package/tsconfig.json +1 -0
- package/tsconfig.json.bak +1 -0
- package/dist/_global.d.ts +0 -9
- package/dist/form.d.ts +0 -53
- package/dist/hooks.d.ts +0 -80
- package/dist/index.d.ts +0 -4
- package/dist/query.d.ts +0 -12
- package/dist/routeParams.d.ts +0 -14
package/dist/routeParams.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import * as tsplus_module_4 from "@effect-app/core/utils";
|
|
1
|
+
import { flow } from "effect";
|
|
2
|
+
import { Option, S } from "effect-app";
|
|
3
|
+
import { typedKeysOf } from "effect-app/utils";
|
|
5
4
|
export function getQueryParam(search, param) {
|
|
6
5
|
const v = search[param];
|
|
7
6
|
if (Array.isArray(v)) {
|
|
@@ -9,22 +8,22 @@ export function getQueryParam(search, param) {
|
|
|
9
8
|
}
|
|
10
9
|
return v ?? null;
|
|
11
10
|
}
|
|
12
|
-
export const getQueryParamO =
|
|
11
|
+
export const getQueryParamO = flow(getQueryParam, Option.fromNullable);
|
|
13
12
|
export const parseOpt = (t) => {
|
|
14
|
-
const dec =
|
|
15
|
-
?
|
|
16
|
-
:
|
|
13
|
+
const dec = flow(S.decodeUnknownEither(t), (x) => x._tag === "Right"
|
|
14
|
+
? Option.some(x.right)
|
|
15
|
+
: Option.none());
|
|
17
16
|
return dec;
|
|
18
17
|
};
|
|
19
18
|
export const parseOptUnknown = (t) => {
|
|
20
|
-
const dec =
|
|
21
|
-
?
|
|
22
|
-
:
|
|
19
|
+
const dec = flow(S.decodeUnknownEither(t), (x) => x._tag === "Right"
|
|
20
|
+
? Option.some(x.right)
|
|
21
|
+
: Option.none());
|
|
23
22
|
return dec;
|
|
24
23
|
};
|
|
25
24
|
export function parseRouteParamsOption(query, t // enforce non empty
|
|
26
25
|
) {
|
|
27
|
-
return
|
|
26
|
+
return typedKeysOf(t).reduce((prev, cur) => {
|
|
28
27
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
29
28
|
prev[cur] = getQueryParamO(query, cur).flatMap(parseOpt(t[cur]));
|
|
30
29
|
return prev;
|
|
@@ -32,10 +31,10 @@ export function parseRouteParamsOption(query, t // enforce non empty
|
|
|
32
31
|
}
|
|
33
32
|
export function parseRouteParams(query, t // enforce non empty
|
|
34
33
|
) {
|
|
35
|
-
return
|
|
34
|
+
return typedKeysOf(t).reduce((prev, cur) => {
|
|
36
35
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
37
|
-
prev[cur] =
|
|
36
|
+
prev[cur] = S.decodeUnknownSync(t[cur])(query[cur]);
|
|
38
37
|
return prev;
|
|
39
38
|
}, {});
|
|
40
39
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVQYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL3JvdXRlUGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRzlDLE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBbUIsRUFBRSxLQUFhO0lBQzlELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNiLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUE7QUFDbEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtBQUV0RSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBTyxDQUEyQixFQUFFLEVBQUU7SUFDNUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQy9DLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTztRQUNoQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUNwQixPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFPLENBQTJCLEVBQUUsRUFBRTtJQUNuRSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDL0MsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPO1FBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3BCLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxLQUEwQixFQUMxQixDQUFNLENBQUMsb0JBQW9COztJQUkzQixPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQzFCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1osb0VBQW9FO1FBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsQ0FBQTtRQUUzRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFDRCxFQUVDLENBQ0YsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQTBCLEVBQzFCLENBQU0sQ0FBQyxvQkFBb0I7O0lBSTNCLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDMUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDWixvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFFLENBQUMsQ0FBRSxLQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUU3RCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUMsRUFDRCxFQUVDLENBQ0YsQ0FBQTtBQUNILENBQUMifQ==
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,39 +1,40 @@
|
|
|
1
|
-
import { Layer } from "effect/Layer";
|
|
2
1
|
import { ApiConfig } from "effect-app/client";
|
|
3
2
|
import * as HttpClient from "@effect/platform/Http/Client";
|
|
3
|
+
import { Config, Exit, Runtime } from "effect";
|
|
4
|
+
import { Effect, Layer } from "effect-app";
|
|
4
5
|
export { initRuntime } from "./internal.js";
|
|
5
|
-
export declare const DefaultApiConfig:
|
|
6
|
+
export declare const DefaultApiConfig: Config.Config<{
|
|
6
7
|
apiUrl: string;
|
|
7
8
|
headers: import("effect/Option").Option<import("effect/HashMap").HashMap<string, string>>;
|
|
8
9
|
}>;
|
|
9
|
-
export declare function makeApiLayers(config: ApiConfig):
|
|
10
|
-
export declare function makeAppRuntime<R, E, A>(layer: Layer<A, E, R>):
|
|
11
|
-
runtime:
|
|
12
|
-
runPromise: <A_1, E_1>(effect:
|
|
13
|
-
runPromiseExit: <A_2, E_2>(effect:
|
|
14
|
-
runSync: <A_3, E_3>(effect:
|
|
15
|
-
runSyncExit: <A_4, E_4>(effect:
|
|
16
|
-
runFork: <
|
|
10
|
+
export declare function makeApiLayers(config: ApiConfig): Layer.Layer<HttpClient.Client.Default | ApiConfig, never, never>;
|
|
11
|
+
export declare function makeAppRuntime<R, E, A>(layer: Layer<A, E, R>): Effect.Effect<{
|
|
12
|
+
runtime: Runtime.Runtime<A> & {
|
|
13
|
+
runPromise: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>) => Promise<A_1>;
|
|
14
|
+
runPromiseExit: <A_2, E_2>(effect: Effect.Effect<A_2, E_2, A>) => Promise<Exit.Exit<A_2, E_2>>;
|
|
15
|
+
runSync: <A_3, E_3>(effect: Effect.Effect<A_3, E_3, A>) => A_3;
|
|
16
|
+
runSyncExit: <A_4, E_4>(effect: Effect.Effect<A_4, E_4, A>) => Exit.Exit<A_4, E_4>;
|
|
17
|
+
runFork: <A_1, E_1>(self: Effect.Effect<A_1, E_1, A>, options?: Runtime.RunForkOptions | undefined) => import("effect/Fiber").RuntimeFiber<A_1, E_1>;
|
|
17
18
|
};
|
|
18
|
-
clean:
|
|
19
|
+
clean: Effect.Effect<void, never, never>;
|
|
19
20
|
}, E, R>;
|
|
20
21
|
export declare function initializeSync<E, A>(layer: Layer<A | ApiConfig | HttpClient.Client.Default, E, never>): {
|
|
21
|
-
runtime:
|
|
22
|
-
runPromise: <A_1, E_1>(effect:
|
|
23
|
-
runPromiseExit: <A_2, E_2>(effect:
|
|
24
|
-
runSync: <A_3, E_3>(effect:
|
|
25
|
-
runSyncExit: <A_4, E_4>(effect:
|
|
26
|
-
runFork: <
|
|
22
|
+
runtime: Runtime.Runtime<HttpClient.Client.Default | ApiConfig | A> & {
|
|
23
|
+
runPromise: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, HttpClient.Client.Default | ApiConfig | A>) => Promise<A_1>;
|
|
24
|
+
runPromiseExit: <A_2, E_2>(effect: Effect.Effect<A_2, E_2, HttpClient.Client.Default | ApiConfig | A>) => Promise<Exit.Exit<A_2, E_2>>;
|
|
25
|
+
runSync: <A_3, E_3>(effect: Effect.Effect<A_3, E_3, HttpClient.Client.Default | ApiConfig | A>) => A_3;
|
|
26
|
+
runSyncExit: <A_4, E_4>(effect: Effect.Effect<A_4, E_4, HttpClient.Client.Default | ApiConfig | A>) => Exit.Exit<A_4, E_4>;
|
|
27
|
+
runFork: <A_1, E_1>(self: Effect.Effect<A_1, E_1, HttpClient.Client.Default | ApiConfig | A>, options?: Runtime.RunForkOptions | undefined) => import("effect/Fiber").RuntimeFiber<A_1, E_1>;
|
|
27
28
|
};
|
|
28
29
|
clean: () => void;
|
|
29
30
|
};
|
|
30
31
|
export declare function initializeAsync<E, A>(layer: Layer<A | ApiConfig | HttpClient.Client.Default, E, never>): Promise<{
|
|
31
|
-
runtime:
|
|
32
|
-
runPromise: <A_1, E_1>(effect:
|
|
33
|
-
runPromiseExit: <A_2, E_2>(effect:
|
|
34
|
-
runSync: <A_3, E_3>(effect:
|
|
35
|
-
runSyncExit: <A_4, E_4>(effect:
|
|
36
|
-
runFork: <
|
|
32
|
+
runtime: Runtime.Runtime<HttpClient.Client.Default | ApiConfig | A> & {
|
|
33
|
+
runPromise: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, HttpClient.Client.Default | ApiConfig | A>) => Promise<A_1>;
|
|
34
|
+
runPromiseExit: <A_2, E_2>(effect: Effect.Effect<A_2, E_2, HttpClient.Client.Default | ApiConfig | A>) => Promise<Exit.Exit<A_2, E_2>>;
|
|
35
|
+
runSync: <A_3, E_3>(effect: Effect.Effect<A_3, E_3, HttpClient.Client.Default | ApiConfig | A>) => A_3;
|
|
36
|
+
runSyncExit: <A_4, E_4>(effect: Effect.Effect<A_4, E_4, HttpClient.Client.Default | ApiConfig | A>) => Exit.Exit<A_4, E_4>;
|
|
37
|
+
runFork: <A_1, E_1>(self: Effect.Effect<A_1, E_1, HttpClient.Client.Default | ApiConfig | A>, options?: Runtime.RunForkOptions | undefined) => import("effect/Fiber").RuntimeFiber<A_1, E_1>;
|
|
37
38
|
};
|
|
38
39
|
clean: () => Promise<void>;
|
|
39
40
|
}>;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../_src/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../_src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAI7C,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,gBAAgB;;;EAQ3B,CAAA;AAEF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,oEAK9C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;;;;;;;SAiB5D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC;;;;;;;;;EAOrG;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC;;;;;;;;;GAUtG"}
|
package/dist/runtime.js
CHANGED
|
@@ -1,53 +1,56 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "effect/Config";
|
|
2
|
-
import * as tsplus_module_2 from "effect/Layer";
|
|
3
|
-
import * as tsplus_module_3 from "effect/Effect";
|
|
4
|
-
import * as tsplus_module_4 from "effect/Runtime";
|
|
5
|
-
import * as tsplus_module_5 from "effect/Exit";
|
|
6
1
|
import { ApiConfig } from "effect-app/client";
|
|
7
2
|
import * as Scope from "effect/Scope";
|
|
8
3
|
import { initRuntime } from "./internal.js";
|
|
9
4
|
import * as HttpClient from "@effect/platform/Http/Client";
|
|
5
|
+
import { Config, Exit, Runtime } from "effect";
|
|
6
|
+
import { Effect, Layer } from "effect-app";
|
|
10
7
|
export { initRuntime } from "./internal.js";
|
|
11
|
-
export const DefaultApiConfig =
|
|
12
|
-
apiUrl:
|
|
13
|
-
headers:
|
|
8
|
+
export const DefaultApiConfig = Config.all({
|
|
9
|
+
apiUrl: Config.string("apiUrl").pipe(Config.withDefault("/api")),
|
|
10
|
+
headers: Config
|
|
11
|
+
.hashMap(Config.string(), "headers")
|
|
12
|
+
.pipe(Config.option)
|
|
14
13
|
});
|
|
15
14
|
export function makeApiLayers(config) {
|
|
16
|
-
return
|
|
17
|
-
.layer
|
|
15
|
+
return HttpClient
|
|
16
|
+
.layer
|
|
17
|
+
.pipe(Layer
|
|
18
|
+
.merge(ApiConfig.layer(config)));
|
|
18
19
|
}
|
|
19
20
|
export function makeAppRuntime(layer) {
|
|
20
|
-
return
|
|
21
|
+
return Effect.gen(function* ($) {
|
|
21
22
|
const scope = yield* $(Scope.make());
|
|
22
|
-
const env = yield* $(
|
|
23
|
-
const runtime = yield* $(
|
|
23
|
+
const env = yield* $(layer.pipe(Layer.buildWithScope(scope)));
|
|
24
|
+
const runtime = yield* $(Effect.runtime().pipe(Effect.scoped, Effect.provide(env)));
|
|
24
25
|
return {
|
|
25
26
|
runtime: Object.assign(runtime, {
|
|
26
|
-
runPromise:
|
|
27
|
-
runPromiseExit:
|
|
28
|
-
runSync:
|
|
29
|
-
runSyncExit:
|
|
30
|
-
runFork:
|
|
27
|
+
runPromise: Runtime.runPromise(runtime),
|
|
28
|
+
runPromiseExit: Runtime.runPromiseExit(runtime),
|
|
29
|
+
runSync: Runtime.runSync(runtime),
|
|
30
|
+
runSyncExit: Runtime.runSyncExit(runtime),
|
|
31
|
+
runFork: Runtime.runFork(runtime)
|
|
31
32
|
}),
|
|
32
|
-
clean: Scope.close(scope,
|
|
33
|
+
clean: Scope.close(scope, Exit.unit)
|
|
33
34
|
};
|
|
34
35
|
});
|
|
35
36
|
}
|
|
36
37
|
export function initializeSync(layer) {
|
|
37
|
-
const { clean, runtime } =
|
|
38
|
+
const { clean, runtime } = Effect.runSync(makeAppRuntime(layer));
|
|
38
39
|
initRuntime(runtime);
|
|
39
40
|
return {
|
|
40
41
|
runtime,
|
|
41
|
-
clean: () =>
|
|
42
|
+
clean: () => Effect.runSync(clean)
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
45
|
export function initializeAsync(layer) {
|
|
45
|
-
return
|
|
46
|
+
return Effect
|
|
47
|
+
.runPromise(makeAppRuntime(layer))
|
|
48
|
+
.then(({ clean, runtime }) => {
|
|
46
49
|
initRuntime(runtime);
|
|
47
50
|
return {
|
|
48
51
|
runtime,
|
|
49
|
-
clean: () =>
|
|
52
|
+
clean: () => Effect.runPromise(clean)
|
|
50
53
|
};
|
|
51
54
|
});
|
|
52
55
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDN0MsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUzQyxPQUFPLEtBQUssVUFBVSxNQUFNLDhCQUE4QixDQUFBO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUUxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDekMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEUsT0FBTyxFQUFFLE1BQU07U0FDWixPQUFPLENBQ04sTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUNmLFNBQVMsQ0FDVjtTQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0NBQ3ZCLENBQUMsQ0FBQTtBQUVGLE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBaUI7SUFDN0MsT0FBTyxVQUFVO1NBQ2QsS0FBSztTQUNMLElBQUksQ0FBQyxLQUFLO1NBQ1IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFVLEtBQXFCO0lBQzNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNwQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUM3RCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXRGLE9BQU87WUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQzlCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztnQkFDdkMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO2dCQUMvQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ2pDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztnQkFDekMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQ2xDLENBQUM7WUFDRixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNyQyxDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBTyxLQUFpRTtJQUNwRyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDaEUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BCLE9BQU87UUFDTCxPQUFPO1FBQ1AsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0tBQ25DLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBTyxLQUFpRTtJQUNyRyxPQUFPLE1BQU07U0FDVixVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7UUFDM0IsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3BCLE9BQU87WUFDTCxPQUFPO1lBQ1AsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQ3RDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.131.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
|
|
@@ -12,13 +12,12 @@
|
|
|
12
12
|
"@tanstack/vue-query": "^5.20.5",
|
|
13
13
|
"effect": "^2.3.5",
|
|
14
14
|
"query-string": "^8.2.0",
|
|
15
|
-
"swrv": "^1.0.4",
|
|
16
15
|
"vue": "^3.4.19",
|
|
17
16
|
"@effect-app/core": "0.136.0",
|
|
18
17
|
"@effect-app/fluent-extensions": "0.130.3",
|
|
19
|
-
"@effect-app/vue": "0.
|
|
18
|
+
"@effect-app/vue": "0.131.0",
|
|
20
19
|
"@effect-app/schema": "0.189.0",
|
|
21
|
-
"effect-app": "0.
|
|
20
|
+
"effect-app": "0.159.0"
|
|
22
21
|
},
|
|
23
22
|
"devDependencies": {
|
|
24
23
|
"@babel/cli": "^7.23.9",
|
|
@@ -89,6 +88,16 @@
|
|
|
89
88
|
"default": "./_cjs/internal.cjs"
|
|
90
89
|
}
|
|
91
90
|
},
|
|
91
|
+
"./mutate": {
|
|
92
|
+
"import": {
|
|
93
|
+
"types": "./dist/mutate.d.ts",
|
|
94
|
+
"default": "./dist/mutate.js"
|
|
95
|
+
},
|
|
96
|
+
"require": {
|
|
97
|
+
"types": "./dist/mutate.d.ts",
|
|
98
|
+
"default": "./_cjs/mutate.cjs"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
92
101
|
"./query": {
|
|
93
102
|
"import": {
|
|
94
103
|
"types": "./dist/query.d.ts",
|
package/tsconfig.json
CHANGED
package/tsconfig.json.bak
CHANGED
package/dist/_global.d.ts
DELETED
package/dist/form.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Equal } from "effect/Equal";
|
|
2
|
-
import { S } from "effect-app";
|
|
3
|
-
import type { Schema } from "effect-app/schema";
|
|
4
|
-
import type { Ref } from "vue";
|
|
5
|
-
export declare function convertIn(v: string | null, type?: "text" | "float" | "int"): string;
|
|
6
|
-
export declare function convertOutInt(v: string, type?: "text" | "float" | "int"): string | number | null;
|
|
7
|
-
export declare function convertOut(v: string, set: (v: unknown | null) => void, type?: "text" | "float" | "int"): void;
|
|
8
|
-
export declare function buildFieldInfoFromFields<From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>>(fields: Schema<To, From, never>): { [K in keyof Omit<To, keyof import("effect/Equal").Equal>]-?: FieldInfo<To[K]>; };
|
|
9
|
-
export interface FieldMetadata {
|
|
10
|
-
minLength: number | undefined;
|
|
11
|
-
maxLength: number | undefined;
|
|
12
|
-
required: boolean;
|
|
13
|
-
}
|
|
14
|
-
declare const f: unique symbol;
|
|
15
|
-
declare abstract class PhantomTypeParameter<Identifier extends keyof any, InstantiatedType> {
|
|
16
|
-
protected abstract readonly _: {
|
|
17
|
-
readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType;
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
export interface FieldInfo<Tout> extends PhantomTypeParameter<typeof f, {
|
|
21
|
-
out: Tout;
|
|
22
|
-
}> {
|
|
23
|
-
rules: ((v: string) => boolean | string)[];
|
|
24
|
-
metadata: FieldMetadata;
|
|
25
|
-
type: "text" | "float" | "int";
|
|
26
|
-
}
|
|
27
|
-
export declare const translate: Ref<{
|
|
28
|
-
(descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>> | undefined, opts?: import("intl-messageformat").Options | undefined): string;
|
|
29
|
-
<T extends unknown>(descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | T | import("intl-messageformat").FormatXMLElementFn<T>> | undefined, opts?: import("intl-messageformat").Options | undefined): string | T | (string | T)[];
|
|
30
|
-
}>;
|
|
31
|
-
export declare const customSchemaErrors: Ref<Map<import("@effect/schema/AST").AST, (message: string, e: unknown, v: unknown) => string>>;
|
|
32
|
-
export declare const buildFormFromSchema: <From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>, OnSubmitA>(s: Schema<To, From, never>, state: Ref<From>, onSubmit: (a: To) => Promise<OnSubmitA>) => {
|
|
33
|
-
fields: { [K in keyof Omit<To, keyof import("effect/Equal").Equal>]-?: FieldInfo<To[K]>; };
|
|
34
|
-
submit: <T extends Promise<{
|
|
35
|
-
valid: boolean;
|
|
36
|
-
}>>(e: T) => Promise<OnSubmitA | undefined>;
|
|
37
|
-
submitFromState: () => Promise<OnSubmitA | undefined>;
|
|
38
|
-
isDirty: Ref<boolean>;
|
|
39
|
-
isValid: Ref<boolean>;
|
|
40
|
-
};
|
|
41
|
-
export declare function getMetadataFromSchema(ast: S.AST.AST): {
|
|
42
|
-
type: "int" | "float" | "text";
|
|
43
|
-
minimum?: number;
|
|
44
|
-
maximum?: number;
|
|
45
|
-
exclusiveMinimum?: number;
|
|
46
|
-
exclusiveMaximum?: number;
|
|
47
|
-
minLength?: number;
|
|
48
|
-
maxLength?: number;
|
|
49
|
-
required: boolean;
|
|
50
|
-
description?: string;
|
|
51
|
-
};
|
|
52
|
-
export {};
|
|
53
|
-
//# sourceMappingURL=form.d.ts.map
|
package/dist/hooks.d.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { QueryResult } from "effect-app/client";
|
|
2
|
-
import { Effect } from "effect/Effect";
|
|
3
|
-
import { Exit } from "effect/Exit";
|
|
4
|
-
import type { ApiConfig, FetchResponse } from "effect-app/client";
|
|
5
|
-
import type * as HttpClient from "@effect/platform/Http/Client";
|
|
6
|
-
import * as Either from "effect/Either";
|
|
7
|
-
import * as swrv from "swrv";
|
|
8
|
-
import type { fetcherFn, IResponse } from "swrv/dist/types.js";
|
|
9
|
-
import type { ComputedRef, Ref } from "vue";
|
|
10
|
-
export { isFailed, isInitializing, isSuccess } from "effect-app/client";
|
|
11
|
-
type MutateType = {
|
|
12
|
-
<Data>(key: string, res: Data | Promise<Data>, cache?: swrv.SWRVCache<Omit<IResponse<any, any>, "mutate">>, ttl?: number): Promise<{
|
|
13
|
-
data: any;
|
|
14
|
-
error: any;
|
|
15
|
-
isValidating: any;
|
|
16
|
-
}>;
|
|
17
|
-
};
|
|
18
|
-
export declare const mutate: MutateType;
|
|
19
|
-
export declare function useMutate<E, A>(self: {
|
|
20
|
-
handler: Effect<FetchResponse<A>, E, ApiConfig | HttpClient.Client.Default>;
|
|
21
|
-
mapPath: string;
|
|
22
|
-
}): () => Promise<{
|
|
23
|
-
data: any;
|
|
24
|
-
error: any;
|
|
25
|
-
isValidating: any;
|
|
26
|
-
}>;
|
|
27
|
-
export declare function useMutateWithArg<Arg, E, A>(self: {
|
|
28
|
-
handler: (arg: Arg) => Effect<FetchResponse<A>, E, ApiConfig | HttpClient.Client.Default>;
|
|
29
|
-
mapPath: (arg: Arg) => string;
|
|
30
|
-
}): (arg: Arg) => Promise<{
|
|
31
|
-
data: any;
|
|
32
|
-
error: any;
|
|
33
|
-
isValidating: any;
|
|
34
|
-
}>;
|
|
35
|
-
export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T);
|
|
36
|
-
export declare function useSafeQuery<E, A>(self: {
|
|
37
|
-
handler: Effect<FetchResponse<A>, E, ApiConfig | HttpClient.Client.Default>;
|
|
38
|
-
mapPath: string;
|
|
39
|
-
}, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [ComputedRef<QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
|
|
40
|
-
export declare function useSafeQuery<Arg, E, A>(self: {
|
|
41
|
-
handler: (arg: Arg) => Effect<FetchResponse<A>, E, ApiConfig | HttpClient.Client.Default>;
|
|
42
|
-
mapPath: (arg: Arg) => string;
|
|
43
|
-
}, arg: Arg | WatchSource<Arg>, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [ComputedRef<QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
|
|
44
|
-
export declare function useSafeQueryWithArg_<Arg, E, A>(self: (arg: Arg) => Effect<FetchResponse<A>, E, ApiConfig | HttpClient.Client.Default>, mapPath: (arg: Arg) => string, arg: Arg | WatchSource<Arg>, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [ComputedRef<import("effect-app/client").QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
|
|
45
|
-
export declare function useSafeQuery_<E, A>(key: string | WatchSource<string>, self: () => Effect<FetchResponse<A>, E, ApiConfig | HttpClient.Client.Default>, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [ComputedRef<import("effect-app/client").QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
|
|
46
|
-
export declare function make<R, E, A>(self: Effect<FetchResponse<A>, E, R>): readonly [import("vue").ShallowRef<import("effect-app/client").QueryResult<E, A>>, ComputedRef<A | undefined>, import("effect/Effect").Effect<import("effect-app/client").QueryResult<E, A>, never, R>];
|
|
47
|
-
export interface MutationInitial {
|
|
48
|
-
readonly _tag: "Initial";
|
|
49
|
-
}
|
|
50
|
-
export interface MutationLoading {
|
|
51
|
-
readonly _tag: "Loading";
|
|
52
|
-
}
|
|
53
|
-
export interface MutationSuccess<A> {
|
|
54
|
-
readonly _tag: "Success";
|
|
55
|
-
readonly data: A;
|
|
56
|
-
}
|
|
57
|
-
export interface MutationError<E> {
|
|
58
|
-
readonly _tag: "Error";
|
|
59
|
-
readonly error: E;
|
|
60
|
-
}
|
|
61
|
-
export type MutationResult<E, A> = MutationInitial | MutationLoading | MutationSuccess<A> | MutationError<E>;
|
|
62
|
-
/**
|
|
63
|
-
* Pass a function that returns an Effect, e.g from a client action, or an Effect
|
|
64
|
-
* Returns a tuple with state ref and execution function which reports errors as Toast.
|
|
65
|
-
*/
|
|
66
|
-
export declare const useMutation: {
|
|
67
|
-
<I, E, A>(self: {
|
|
68
|
-
handler: (i: I) => Effect<A, E, ApiConfig | HttpClient.Client.Default>;
|
|
69
|
-
}): readonly [
|
|
70
|
-
Readonly<Ref<MutationResult<E, A>>>,
|
|
71
|
-
(i: I, abortSignal?: AbortSignal) => Promise<Either.Either<E, A>>
|
|
72
|
-
];
|
|
73
|
-
<E, A>(self: {
|
|
74
|
-
handler: Effect<A, E, ApiConfig | HttpClient.Client.Default>;
|
|
75
|
-
}): readonly [
|
|
76
|
-
Readonly<Ref<MutationResult<E, A>>>,
|
|
77
|
-
(abortSignal?: AbortSignal) => Promise<Either.Either<E, A>>
|
|
78
|
-
];
|
|
79
|
-
};
|
|
80
|
-
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/index.d.ts
DELETED
package/dist/query.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from "effect-app/Request";
|
|
2
|
-
import { Effect } from "effect-app";
|
|
3
|
-
import type { ApiConfig, FetchResponse, QueryResult } from "effect-app/client";
|
|
4
|
-
import { type WatchSource } from "vue";
|
|
5
|
-
export declare const useSafeQuery: <I, A, E>(q: {
|
|
6
|
-
handler: (req: I) => Effect<FetchResponse<A>, E, ApiConfig | HttpClient.Default>;
|
|
7
|
-
mapPath: (req: I) => string;
|
|
8
|
-
} | {
|
|
9
|
-
handler: Effect<FetchResponse<A>, E, ApiConfig | HttpClient.Default>;
|
|
10
|
-
mapPath: string;
|
|
11
|
-
}, arg?: I | WatchSource<I>) => readonly [import("vue").ComputedRef<QueryResult<Error | null, any>>, import("vue").ComputedRef<any>, (options?: import("@tanstack/vue-query").RefetchOptions | undefined) => Promise<import("@tanstack/vue-query").QueryObserverResult<any, Error>>];
|
|
12
|
-
//# sourceMappingURL=query.d.ts.map
|
package/dist/routeParams.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Option } from "@effect-app/core/Option";
|
|
2
|
-
import type { REST, Schema } from "effect-app/schema";
|
|
3
|
-
import type { ParsedQuery } from "query-string";
|
|
4
|
-
export declare function getQueryParam(search: ParsedQuery, param: string): string | null | undefined;
|
|
5
|
-
export declare const getQueryParamO: (search: ParsedQuery, param: string) => import("effect/Option").Option<string>;
|
|
6
|
-
export declare const parseOpt: <E, A>(t: REST.ReqRes<A, E, never>) => (u: unknown, overrideOptions?: import("@effect/schema/AST").ParseOptions | undefined) => import("effect/Option").None<A> | import("effect/Option").Some<A>;
|
|
7
|
-
export declare const parseOptUnknown: <E, A>(t: REST.ReqRes<A, E, never>) => (u: unknown, overrideOptions?: import("@effect/schema/AST").ParseOptions | undefined) => import("effect/Option").None<A> | import("effect/Option").Some<A>;
|
|
8
|
-
export declare function parseRouteParamsOption<NER extends Record<string, Schema<any, any, never>>>(query: Record<string, any>, t: NER): {
|
|
9
|
-
[K in keyof NER]: Option<Schema.To<NER[K]>>;
|
|
10
|
-
};
|
|
11
|
-
export declare function parseRouteParams<NER extends Record<string, Schema<any, any, never>>>(query: Record<string, any>, t: NER): {
|
|
12
|
-
[K in keyof NER]: Schema.To<NER[K]>;
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=routeParams.d.ts.map
|