@effect-app/vue 1.20.7 → 1.21.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 +21 -0
- package/_cjs/index.cjs +36 -0
- package/_cjs/index.cjs.map +1 -1
- package/_cjs/makeClient.cjs +265 -0
- package/_cjs/makeClient.cjs.map +1 -0
- package/_cjs/makeContext.cjs +16 -0
- package/_cjs/makeContext.cjs.map +1 -0
- package/_cjs/makeIntl.cjs +51 -0
- package/_cjs/makeIntl.cjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/makeClient.d.ts +132 -0
- package/dist/makeClient.d.ts.map +1 -0
- package/dist/makeClient.js +231 -0
- package/dist/makeContext.d.ts +5 -0
- package/dist/makeContext.d.ts.map +1 -0
- package/dist/makeContext.js +9 -0
- package/dist/makeIntl.d.ts +17 -0
- package/dist/makeIntl.d.ts.map +1 -0
- package/dist/makeIntl.js +32 -0
- package/package.json +36 -5
- package/src/index.ts +3 -0
- package/src/makeClient.ts +500 -0
- package/src/makeContext.ts +9 -0
- package/src/makeIntl.ts +60 -0
- package/vitest.config.ts.timestamp-1711656440837-d04458a029af.mjs +37 -0
- package/vitest.config.ts.timestamp-1711724061890-e8772f088aa0d.mjs +37 -0
- package/vitest.config.ts.timestamp-1711743471018-f8eca63460d15.mjs +37 -0
- package/vitest.config.ts.timestamp-1711743489536-332f6bf4f074c.mjs +37 -0
- package/vitest.config.ts.timestamp-1711744615240-85d4d02f24414.mjs +37 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { flow, pipe, tuple } from "@effect-app/core/Function";
|
|
3
|
+
import { Result, useSafeMutation } from "@effect-app/vue";
|
|
4
|
+
import * as Sentry from "@sentry/browser";
|
|
5
|
+
import { useIntervalFn } from "@vueuse/core";
|
|
6
|
+
import { Array, Cause, Effect, Match, Option, Runtime, S } from "effect-app";
|
|
7
|
+
import { Failure, Success } from "effect-app/Operations";
|
|
8
|
+
import { computed } from "vue";
|
|
9
|
+
/**
|
|
10
|
+
* Use this after handling an error yourself, still continueing on the Error track, but the error will not be reported.
|
|
11
|
+
*/
|
|
12
|
+
export class SuppressErrors extends Cause.YieldableError {
|
|
13
|
+
_tag = "SuppressErrors";
|
|
14
|
+
}
|
|
15
|
+
export function pauseWhileProcessing(iv, pmf) {
|
|
16
|
+
return Promise
|
|
17
|
+
.resolve(iv.pause())
|
|
18
|
+
.then(() => pmf())
|
|
19
|
+
.finally(() => iv.resume());
|
|
20
|
+
}
|
|
21
|
+
export function useIntervalPauseWhileProcessing(pmf, interval, options) {
|
|
22
|
+
const iv = useIntervalFn(() => pauseWhileProcessing(iv, pmf), interval, options ? { ...options, immediateCallback: false } : options);
|
|
23
|
+
return {
|
|
24
|
+
isActive: iv.isActive
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export const useSafeMutationWithState = (self) => {
|
|
28
|
+
const [a, b] = useSafeMutation(self);
|
|
29
|
+
return tuple(computed(() => mutationResultToVue(a.value)), b);
|
|
30
|
+
};
|
|
31
|
+
export const withSuccess = (self, onSuccess) => ({
|
|
32
|
+
...self,
|
|
33
|
+
handler: typeof self.handler === "function"
|
|
34
|
+
? (i) => pipe(self.handler(i), Effect.flatMap((_) => Effect.promise(() => onSuccess(_, i))))
|
|
35
|
+
: Effect.flatMap(self.handler, (_) => Effect.promise(() => onSuccess(_)))
|
|
36
|
+
});
|
|
37
|
+
export const withSuccessE = (self, onSuccessE) => {
|
|
38
|
+
return {
|
|
39
|
+
...self,
|
|
40
|
+
handler: typeof self.handler === "function"
|
|
41
|
+
? (i) => pipe(self.handler(i), Effect.flatMap((_) => onSuccessE(_, i)))
|
|
42
|
+
: Effect.flatMap(self.handler, (_) => onSuccessE(_))
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
function mutationResultToVue(mutationResult) {
|
|
46
|
+
switch (mutationResult._tag) {
|
|
47
|
+
case "Loading": {
|
|
48
|
+
return { loading: true, data: undefined, error: undefined };
|
|
49
|
+
}
|
|
50
|
+
case "Success": {
|
|
51
|
+
return {
|
|
52
|
+
loading: false,
|
|
53
|
+
data: mutationResult.data,
|
|
54
|
+
error: undefined
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
case "Error": {
|
|
58
|
+
return {
|
|
59
|
+
loading: false,
|
|
60
|
+
data: undefined,
|
|
61
|
+
error: mutationResult.error
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
case "Initial": {
|
|
65
|
+
return { loading: false, data: undefined, error: undefined };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const messages = {};
|
|
70
|
+
export const makeClient = (intl, useToast) => {
|
|
71
|
+
const { useIntl } = intl;
|
|
72
|
+
const toast = useToast();
|
|
73
|
+
/**
|
|
74
|
+
* Pass a function that returns a Promise.
|
|
75
|
+
* Returns an execution function which reports errors as Toast.
|
|
76
|
+
*/
|
|
77
|
+
function handleRequestWithToast(f, action, options = { suppressErrorToast: false }) {
|
|
78
|
+
const { intl } = useIntl();
|
|
79
|
+
const message = messages[action] ?? action;
|
|
80
|
+
const warnMessage = intl.value.formatMessage({ id: "handle.with_warnings" }, { action: message });
|
|
81
|
+
const successMessage = intl.value.formatMessage({ id: "handle.success" }, { action: message });
|
|
82
|
+
const errorMessage = intl.value.formatMessage({ id: "handle.with_errors" }, { action: message });
|
|
83
|
+
return Object.assign(flow(f, (p) => p.then((r) => r._tag === "Right"
|
|
84
|
+
? S.is(Failure)(r.right)
|
|
85
|
+
? Promise
|
|
86
|
+
.resolve(toast.warning(warnMessage + r.right.message
|
|
87
|
+
? "\n" + r.right.message
|
|
88
|
+
: ""))
|
|
89
|
+
.then((_) => { })
|
|
90
|
+
: Promise
|
|
91
|
+
.resolve(toast.success(successMessage
|
|
92
|
+
+ (S.is(Success)(r.right) && r.right.message
|
|
93
|
+
? "\n" + r.right.message
|
|
94
|
+
: "")))
|
|
95
|
+
.then((_) => { })
|
|
96
|
+
: r.left._tag === "SuppressErrors"
|
|
97
|
+
? Promise.resolve(void 0)
|
|
98
|
+
: Promise
|
|
99
|
+
.resolve(!options.suppressErrorToast
|
|
100
|
+
&& toast.error(`${errorMessage}:\n` + renderError(r.left)))
|
|
101
|
+
.then((_) => {
|
|
102
|
+
console.warn(r.left, r.left.toString());
|
|
103
|
+
}), (err) => {
|
|
104
|
+
if (Cause.isInterruptedException(err)
|
|
105
|
+
|| (Runtime.isFiberFailure(err)
|
|
106
|
+
&& Cause.isInterruptedOnly(err[Runtime.FiberFailureCauseId]))) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const extra = {
|
|
110
|
+
action,
|
|
111
|
+
message: `Unexpected Error trying to ${action}`
|
|
112
|
+
};
|
|
113
|
+
Sentry.captureException(err, {
|
|
114
|
+
extra
|
|
115
|
+
});
|
|
116
|
+
console.error(err, extra);
|
|
117
|
+
return toast.error(intl.value.formatMessage({ id: "handle.unexpected_error" }, {
|
|
118
|
+
action: message,
|
|
119
|
+
error: JSON.stringify(err, undefined, 2)
|
|
120
|
+
}));
|
|
121
|
+
})), { action });
|
|
122
|
+
}
|
|
123
|
+
function renderError(e) {
|
|
124
|
+
const { intl } = useIntl();
|
|
125
|
+
return Match.value(e).pipe(Match.tags({
|
|
126
|
+
// HttpErrorRequest: e =>
|
|
127
|
+
// intl.value.formatMessage(
|
|
128
|
+
// { id: "handle.request_error" },
|
|
129
|
+
// { error: `${e.error}` },
|
|
130
|
+
// ),
|
|
131
|
+
// HttpErrorResponse: e =>
|
|
132
|
+
// e.response.status >= 500 ||
|
|
133
|
+
// e.response.body._tag !== "Some" ||
|
|
134
|
+
// !e.response.body.value
|
|
135
|
+
// ? intl.value.formatMessage(
|
|
136
|
+
// { id: "handle.error_response" },
|
|
137
|
+
// {
|
|
138
|
+
// error: `${
|
|
139
|
+
// e.response.body._tag === "Some" && e.response.body.value
|
|
140
|
+
// ? parseError(e.response.body.value)
|
|
141
|
+
// : "Unknown"
|
|
142
|
+
// } (${e.response.status})`,
|
|
143
|
+
// },
|
|
144
|
+
// )
|
|
145
|
+
// : intl.value.formatMessage(
|
|
146
|
+
// { id: "handle.unexpected_error" },
|
|
147
|
+
// {
|
|
148
|
+
// error:
|
|
149
|
+
// JSON.stringify(e.response.body, undefined, 2) +
|
|
150
|
+
// "( " +
|
|
151
|
+
// e.response.status +
|
|
152
|
+
// ")",
|
|
153
|
+
// },
|
|
154
|
+
// ),
|
|
155
|
+
// ResponseError: e =>
|
|
156
|
+
// intl.value.formatMessage(
|
|
157
|
+
// { id: "handle.response_error" },
|
|
158
|
+
// { error: `${e.error}` },
|
|
159
|
+
// ),
|
|
160
|
+
ParseError: (e) => {
|
|
161
|
+
console.warn(e.toString());
|
|
162
|
+
return intl.value.formatMessage({ id: "validation.failed" });
|
|
163
|
+
}
|
|
164
|
+
}), Match.orElse((e) => intl.value.formatMessage({ id: "handle.unexpected_error" }, {
|
|
165
|
+
error: `${e.message ?? e._tag ?? e}`
|
|
166
|
+
})));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Pass a function that returns an Effect, e.g from a client action, give it a name, and optionally pass an onSuccess callback.
|
|
170
|
+
* Returns a tuple with state ref and execution function which reports errors as Toast.
|
|
171
|
+
*/
|
|
172
|
+
const useAndHandleMutation = (self, action, options) => {
|
|
173
|
+
const [a, b] = useSafeMutation({
|
|
174
|
+
handler: Effect.isEffect(self.handler)
|
|
175
|
+
? pipe(self.handler, Effect.withSpan("mutation", { attributes: { action } }))
|
|
176
|
+
: (...args) => pipe(self.handler(...args), Effect.withSpan("mutation", { attributes: { action } })),
|
|
177
|
+
name: self.name
|
|
178
|
+
});
|
|
179
|
+
return tuple(computed(() => mutationResultToVue(a.value)), handleRequestWithToast(b, action, options));
|
|
180
|
+
};
|
|
181
|
+
function makeUseAndHandleMutation(onSuccess) {
|
|
182
|
+
return ((self, action, options) => {
|
|
183
|
+
return useAndHandleMutation({
|
|
184
|
+
handler: (typeof self.handler === "function"
|
|
185
|
+
? (i) => Effect.tap(self.handler(i), () => Effect.promise(onSuccess))
|
|
186
|
+
: Effect.tap(self.handler, () => Effect.promise(onSuccess))),
|
|
187
|
+
name: self.name
|
|
188
|
+
}, action, options);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
useAndHandleMutation,
|
|
193
|
+
makeUseAndHandleMutation,
|
|
194
|
+
handleRequestWithToast
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
export const mapHandler = (self, map) => ({
|
|
198
|
+
...self,
|
|
199
|
+
handler: typeof self.handler === "function"
|
|
200
|
+
? (i) => map(i)(self.handler(i))
|
|
201
|
+
: map(self.handler)
|
|
202
|
+
});
|
|
203
|
+
export function composeQueries(results, renderPreviousOnFailure) {
|
|
204
|
+
const values = renderPreviousOnFailure
|
|
205
|
+
? Object.values(results).map(orPrevious)
|
|
206
|
+
: Object.values(results);
|
|
207
|
+
const error = values.find(Result.isFailure);
|
|
208
|
+
if (error) {
|
|
209
|
+
return error;
|
|
210
|
+
}
|
|
211
|
+
const initial = Array.findFirst(values, (x) => x._tag === "Initial" ? Option.some(x) : Option.none());
|
|
212
|
+
if (initial.value !== undefined) {
|
|
213
|
+
return initial.value;
|
|
214
|
+
}
|
|
215
|
+
const loading = Array.findFirst(values, (x) => Result.isInitial(x) && x.waiting ? Option.some(x) : Option.none());
|
|
216
|
+
if (loading.value !== undefined) {
|
|
217
|
+
return loading.value;
|
|
218
|
+
}
|
|
219
|
+
const isRefreshing = values.some((x) => x.waiting);
|
|
220
|
+
const r = Object.entries(results).reduce((prev, [key, value]) => {
|
|
221
|
+
prev[key] = Result.value(value).value;
|
|
222
|
+
return prev;
|
|
223
|
+
}, {});
|
|
224
|
+
return Result.success(r, isRefreshing);
|
|
225
|
+
}
|
|
226
|
+
function orPrevious(result) {
|
|
227
|
+
return Result.isFailure(result) && Option.isSome(result.previousValue)
|
|
228
|
+
? Result.success(result.previousValue.value, result.waiting)
|
|
229
|
+
: result;
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUM3RCxPQUFPLEVBQXVCLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5RSxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFBO0FBQ3pDLE9BQU8sRUFBd0MsYUFBYSxFQUE2QixNQUFNLGNBQWMsQ0FBQTtBQUU3RyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBb0IsTUFBTSxLQUFLLENBQUE7QUFHaEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLEtBQUssQ0FBQyxjQUFjO0lBQzdDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQTtDQUNqQztBQUlELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsRUFBWSxFQUNaLEdBQTJCO0lBRTNCLE9BQU8sT0FBTztTQUNYLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDbkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLCtCQUErQixDQUM3QyxHQUEyQixFQUMzQixRQUFtQyxFQUNuQyxPQUF5RDtJQUV6RCxNQUFNLEVBQUUsR0FBRyxh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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeContext.d.ts","sourceRoot":"","sources":["../src/makeContext.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,GAAI,CAAC,OAAO,CAAC;;sBAIf,CAAC;CAEtB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { inject, provide } from "vue";
|
|
2
|
+
export const makeContext = (def) => {
|
|
3
|
+
const key = Symbol();
|
|
4
|
+
return {
|
|
5
|
+
use: () => inject(key, def),
|
|
6
|
+
provide: (locale) => provide(key, locale)
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWFrZUNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBcUIsT0FBTyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXhELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFJLEdBQU0sRUFBRSxFQUFFO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBcUIsQ0FBQTtJQUN2QyxPQUFPO1FBQ0wsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQzNCLE9BQU8sRUFBRSxDQUFDLE1BQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUM7S0FDN0MsQ0FBQTtBQUNILENBQUMsQ0FBQSJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type IntlShape } from "@formatjs/intl";
|
|
2
|
+
import type { FormatXMLElementFn, PrimitiveType } from "intl-messageformat";
|
|
3
|
+
import type { Ref } from "vue";
|
|
4
|
+
export interface MakeIntlReturn<Locale extends string> extends ReturnType<typeof makeIntl<Locale>> {
|
|
5
|
+
}
|
|
6
|
+
export declare const makeIntl: <Locale extends string>(messages: Record<Locale, Record<string, string>>, defaultLocale: NoInfer<Locale>) => {
|
|
7
|
+
useIntl: () => {
|
|
8
|
+
locale: Ref<Locale, Locale>;
|
|
9
|
+
trans: (id: keyof (typeof messages)[Locale], values?: Record<string, PrimitiveType | FormatXMLElementFn<string, string>>) => string;
|
|
10
|
+
intl: import("vue").ComputedRef<Record<Locale, IntlShape<Locale>>[Locale]>;
|
|
11
|
+
};
|
|
12
|
+
LocaleContext: {
|
|
13
|
+
use: () => Ref<Locale, Locale>;
|
|
14
|
+
provide: (locale: Ref<Locale, Locale>) => void;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=makeIntl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeIntl.d.ts","sourceRoot":"","sources":["../src/makeIntl.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAK9B,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;CAAG;AAErG,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,MAAM,YAClC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,iBACjC,OAAO,CAAC,MAAM,CAAC;;;oBAyBtB,MAAM,CAAC,OAAO,QAAQ,EAAE,MAAM,CAAC,WAC1B,MAAM,CACb,MAAM,EACN,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CACnD;;;;;;;CAiBN,CAAA"}
|
package/dist/makeIntl.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-empty-object-type */
|
|
2
|
+
import { createIntl, createIntlCache } from "@formatjs/intl";
|
|
3
|
+
import { typedKeysOf } from "effect-app/utils";
|
|
4
|
+
import { computed, ref, watch } from "vue";
|
|
5
|
+
import { translate } from "./form.js";
|
|
6
|
+
import { makeContext } from "./makeContext.js";
|
|
7
|
+
export const makeIntl = (messages, defaultLocale) => {
|
|
8
|
+
const intlCache = createIntlCache();
|
|
9
|
+
const intls = typedKeysOf(messages).reduce((acc, cur) => {
|
|
10
|
+
acc[cur] = createIntl({
|
|
11
|
+
defaultLocale,
|
|
12
|
+
locale: cur,
|
|
13
|
+
messages: messages[cur]
|
|
14
|
+
}, intlCache);
|
|
15
|
+
return acc;
|
|
16
|
+
}, {});
|
|
17
|
+
const LocaleContext = makeContext(ref(defaultLocale));
|
|
18
|
+
const useIntl = () => {
|
|
19
|
+
const locale = LocaleContext.use();
|
|
20
|
+
const trans = (id, values
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
|
|
22
|
+
) => intls[locale.value].formatMessage({ id: id }, values);
|
|
23
|
+
const intl = computed(() => intls[locale.value]);
|
|
24
|
+
watch(locale, (locale) => {
|
|
25
|
+
const intl = intls[locale];
|
|
26
|
+
translate.value = intl.formatMessage;
|
|
27
|
+
}, { immediate: true });
|
|
28
|
+
return { locale, trans, intl };
|
|
29
|
+
};
|
|
30
|
+
return { useIntl, LocaleContext };
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUludGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWFrZUludGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFrQixNQUFNLGdCQUFnQixDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUc5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFJOUMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQ3RCLFFBQWdELEVBQ2hELGFBQThCLEVBQzlCLEVBQUU7SUFDRixNQUFNLFNBQVMsR0FBRyxlQUFlLEVBQUUsQ0FBQTtJQUVuQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUN4QyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNYLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQ25CO1lBQ0UsYUFBYTtZQUNiLE1BQU0sRUFBRSxHQUFHO1lBQ1gsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUM7U0FDeEIsRUFDRCxTQUFTLENBQ1YsQ0FBQTtRQUNELE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQyxFQUNELEVBQXVDLENBQ3hDLENBQUE7SUFFRCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFTLGFBQWEsQ0FBZ0IsQ0FBQyxDQUFBO0lBRTVFLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtRQUNuQixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUE7UUFFbEMsTUFBTSxLQUFLLEdBQUcsQ0FDWixFQUFtQyxFQUNuQyxNQUdDO1FBQ0QsdUdBQXVHO1VBQ3ZHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFTLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUVqRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ2hELEtBQUssQ0FDSCxNQUFNLEVBQ04sQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNULE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMxQixTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7UUFDdEMsQ0FBQyxFQUNELEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUNwQixDQUFBO1FBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFDaEMsQ0FBQyxDQUFBO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQTtBQUNuQyxDQUFDLENBQUEifQ==
|
package/package.json
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.21.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@formatjs/intl": "^2.10.7",
|
|
9
9
|
"@tanstack/vue-query": "^5.59.9",
|
|
10
|
+
"@vueuse/core": "^11.1.0",
|
|
10
11
|
"query-string": "^9.1.1",
|
|
11
|
-
"@effect-app/
|
|
12
|
-
"effect-app": "1.
|
|
13
|
-
"@effect-app/
|
|
14
|
-
"
|
|
12
|
+
"@effect-app/core": "1.15.8",
|
|
13
|
+
"@effect-app/schema": "1.17.8",
|
|
14
|
+
"@effect-app/vue": "1.21.0",
|
|
15
|
+
"effect-app": "1.26.8"
|
|
15
16
|
},
|
|
16
17
|
"peerDependencies": {
|
|
17
18
|
"@effect/platform": "^0.68.2",
|
|
@@ -91,6 +92,36 @@
|
|
|
91
92
|
"default": "./_cjs/internal.cjs"
|
|
92
93
|
}
|
|
93
94
|
},
|
|
95
|
+
"./makeClient": {
|
|
96
|
+
"import": {
|
|
97
|
+
"types": "./dist/makeClient.d.ts",
|
|
98
|
+
"default": "./dist/makeClient.js"
|
|
99
|
+
},
|
|
100
|
+
"require": {
|
|
101
|
+
"types": "./dist/makeClient.d.ts",
|
|
102
|
+
"default": "./_cjs/makeClient.cjs"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"./makeContext": {
|
|
106
|
+
"import": {
|
|
107
|
+
"types": "./dist/makeContext.d.ts",
|
|
108
|
+
"default": "./dist/makeContext.js"
|
|
109
|
+
},
|
|
110
|
+
"require": {
|
|
111
|
+
"types": "./dist/makeContext.d.ts",
|
|
112
|
+
"default": "./_cjs/makeContext.cjs"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"./makeIntl": {
|
|
116
|
+
"import": {
|
|
117
|
+
"types": "./dist/makeIntl.d.ts",
|
|
118
|
+
"default": "./dist/makeIntl.js"
|
|
119
|
+
},
|
|
120
|
+
"require": {
|
|
121
|
+
"types": "./dist/makeIntl.d.ts",
|
|
122
|
+
"default": "./_cjs/makeIntl.cjs"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
94
125
|
"./mutate": {
|
|
95
126
|
"import": {
|
|
96
127
|
"types": "./dist/mutate.d.ts",
|