@effect-app/vue 2.55.10 → 2.56.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/dist/runtime.d.ts CHANGED
@@ -1,45 +1,6 @@
1
- import { Exit, Runtime } from "effect";
1
+ import { ManagedRuntime } from "effect";
2
2
  import { Effect, Layer } from "effect-app";
3
- export declare function makeAppRuntime<A, E, R>(layer: Layer.Layer<A, E, R>): Effect.Effect<{
4
- runtime: Runtime.Runtime<A> & {
5
- runPromise: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: {
6
- readonly signal?: AbortSignal;
7
- } | undefined) => Promise<A_1>;
8
- runPromiseExit: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: {
9
- readonly signal?: AbortSignal;
10
- } | undefined) => Promise<Exit.Exit<A_1, E_1>>;
11
- runSync: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>) => A_1;
12
- runSyncExit: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>) => Exit.Exit<A_1, E_1>;
13
- runFork: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: Runtime.RunForkOptions | undefined) => import("effect/Fiber").RuntimeFiber<A_1, E_1>;
14
- };
15
- clean: Effect.Effect<void, never, never>;
16
- }, E, R>;
17
- export declare function initializeSync<A, E>(layer: Layer.Layer<A, E, never>): {
18
- runtime: Runtime.Runtime<A> & {
19
- runPromise: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: {
20
- readonly signal?: AbortSignal;
21
- } | undefined) => Promise<A_1>;
22
- runPromiseExit: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: {
23
- readonly signal?: AbortSignal;
24
- } | undefined) => Promise<Exit.Exit<A_1, E_1>>;
25
- runSync: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>) => A_1;
26
- runSyncExit: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>) => Exit.Exit<A_1, E_1>;
27
- runFork: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: Runtime.RunForkOptions | undefined) => import("effect/Fiber").RuntimeFiber<A_1, E_1>;
28
- };
29
- clean: () => void;
30
- };
31
- export declare function initializeAsync<A, E>(layer: Layer.Layer<A, E, never>): Promise<{
32
- runtime: Runtime.Runtime<A> & {
33
- runPromise: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: {
34
- readonly signal?: AbortSignal;
35
- } | undefined) => Promise<A_1>;
36
- runPromiseExit: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: {
37
- readonly signal?: AbortSignal;
38
- } | undefined) => Promise<Exit.Exit<A_1, E_1>>;
39
- runSync: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>) => A_1;
40
- runSyncExit: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>) => Exit.Exit<A_1, E_1>;
41
- runFork: <A_1, E_1>(effect: Effect.Effect<A_1, E_1, A>, options?: Runtime.RunForkOptions | undefined) => import("effect/Fiber").RuntimeFiber<A_1, E_1>;
42
- };
43
- clean: () => Promise<void>;
44
- }>;
3
+ export declare function makeAppRuntime<A, E>(layer: Layer.Layer<A, E>): Effect.Effect<ManagedRuntime.ManagedRuntime<A, never>, E, never>;
4
+ export declare function initializeSync<A, E>(layer: Layer.Layer<A, E, never>): ManagedRuntime.ManagedRuntime<A, never>;
5
+ export declare function initializeAsync<A, E>(layer: Layer.Layer<A, E, never>): Promise<ManagedRuntime.ManagedRuntime<A, never>>;
45
6
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAGlD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;2BAwC62K,CAAC;;;2BAAu1C,CAAC;;;;;;;SApBxwN;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;;;2BAkB42K,CAAC;;;2BAAu1C,CAAC;;;;;;;EAZxwN;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;;;2BAU22K,CAAC;;;2BAAu1C,CAAC;;;;;;;GADxwN"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAElD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,oEAS5D;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,2CAGnE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,oDAGpE"}
package/dist/runtime.js CHANGED
@@ -1,39 +1,19 @@
1
- import { Exit, Runtime } from "effect";
1
+ import { ManagedRuntime } from "effect";
2
2
  import { Effect, Layer, Logger } from "effect-app";
3
- import * as Scope from "effect/Scope";
4
3
  export function makeAppRuntime(layer) {
5
4
  return Effect.gen(function* () {
6
5
  layer = layer.pipe(Layer.provide(Logger.replace(Logger.defaultLogger, Logger.withSpanAnnotations(Logger.prettyLogger()))));
7
- const scope = yield* Scope.make();
8
- const env = yield* layer.pipe(Layer.buildWithScope(scope));
9
- const runtime = yield* Effect.runtime().pipe(Effect.scoped, Effect.provide(env));
10
- return {
11
- runtime: Object.assign(runtime, {
12
- runPromise: Runtime.runPromise(runtime),
13
- runPromiseExit: Runtime.runPromiseExit(runtime),
14
- runSync: Runtime.runSync(runtime),
15
- runSyncExit: Runtime.runSyncExit(runtime),
16
- runFork: Runtime.runFork(runtime)
17
- }),
18
- clean: Scope.close(scope, Exit.void)
19
- };
6
+ const mrt = ManagedRuntime.make(layer);
7
+ yield* mrt.runtimeEffect;
8
+ return mrt; // as we initialise here, there is no more error left.
20
9
  });
21
10
  }
22
11
  export function initializeSync(layer) {
23
- const { clean, runtime } = Effect.runSync(makeAppRuntime(layer));
24
- return {
25
- runtime,
26
- clean: () => Effect.runSync(clean)
27
- };
12
+ const runtime = Effect.runSync(makeAppRuntime(layer));
13
+ return runtime;
28
14
  }
29
15
  export function initializeAsync(layer) {
30
16
  return Effect
31
- .runPromise(makeAppRuntime(layer))
32
- .then(({ clean, runtime }) => {
33
- return {
34
- runtime,
35
- clean: () => Effect.runPromise(clean)
36
- };
37
- });
17
+ .runPromise(makeAppRuntime(layer));
38
18
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNsRCxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUVyQyxNQUFNLFVBQVUsY0FBYyxDQUFVLEtBQTJCO0lBQ2pFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ2hCLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZHLENBQUE7UUFDRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDMUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUVuRixPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUM5QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztnQkFDL0MsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUNqQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQ3pDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUNsQyxDQUFDO1lBQ0YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDckMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQU8sS0FBK0I7SUFDbEUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ2hFLE9BQU87UUFDTCxPQUFPO1FBQ1AsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0tBQ25DLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBTyxLQUErQjtJQUNuRSxPQUFPLE1BQU07U0FDVixVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7UUFDM0IsT0FBTztZQUNMLE9BQU87WUFDUCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7U0FDdEMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyJ9
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRWxELE1BQU0sVUFBVSxjQUFjLENBQU8sS0FBd0I7SUFDM0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN6QixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDaEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDdkcsQ0FBQTtRQUNELE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQTtRQUN4QixPQUFPLEdBQThDLENBQUEsQ0FBQyxzREFBc0Q7SUFDOUcsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBTyxLQUErQjtJQUNsRSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3JELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFPLEtBQStCO0lBQ25FLE9BQU8sTUFBTTtTQUNWLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUN0QyxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "2.55.10",
3
+ "version": "2.56.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
@@ -60,9 +60,9 @@
60
60
  "types": "./dist/experimental/intl.d.ts",
61
61
  "default": "./dist/experimental/intl.js"
62
62
  },
63
- "./experimental/makeExperimental": {
64
- "types": "./dist/experimental/makeExperimental.d.ts",
65
- "default": "./dist/experimental/makeExperimental.js"
63
+ "./experimental/makeUseCommand": {
64
+ "types": "./dist/experimental/makeUseCommand.d.ts",
65
+ "default": "./dist/experimental/makeUseCommand.js"
66
66
  },
67
67
  "./experimental/toast": {
68
68
  "types": "./dist/experimental/toast.d.ts",
@@ -1,7 +1,7 @@
1
1
  import { Effect } from "effect-app"
2
2
  import { Commander } from "./commander.js"
3
3
 
4
- export const makeExperimental = Effect.fnUntraced(function*<R = never>() {
4
+ export const makeUseCommand = Effect.fnUntraced(function*<R = never>() {
5
5
  const cmndr = yield* Commander
6
6
  const runtime = yield* Effect.runtime<R>()
7
7
 
package/src/form.ts CHANGED
@@ -2,11 +2,11 @@ import { createIntl, type IntlFormatters } from "@formatjs/intl"
2
2
  import * as JSONSchema from "effect/JSONSchema"
3
3
  import type { ParseError } from "effect/ParseResult"
4
4
  import type {} from "intl-messageformat"
5
- import { Either, Option, pipe, S, Struct } from "effect-app"
5
+ import { Either, Option, pipe, S } from "effect-app"
6
6
  import type { Schema } from "effect-app/Schema"
7
7
  import type { Unbranded } from "effect-app/Schema/brand"
8
8
  import type { IsUnion } from "effect-app/utils"
9
- import { capitalize, type Ref, ref, watch } from "vue"
9
+ import { capitalize, ref } from "vue"
10
10
 
11
11
  // type GetSchemaFromProp<T> = T extends Field<infer S, any, any, any> ? S
12
12
  // : never
@@ -381,64 +381,6 @@ function buildFieldInfo(
381
381
  return info as any
382
382
  }
383
383
 
384
- export const buildFormFromSchema = <
385
- From extends Record<PropertyKey, any>,
386
- To extends Record<PropertyKey, any>,
387
- C extends Record<PropertyKey, any>,
388
- OnSubmitA
389
- >(
390
- s:
391
- & Schema<
392
- To,
393
- From,
394
- never
395
- >
396
- & { new(c: C): any; extend: any; fields: S.Struct.Fields },
397
- state: Ref<Omit<From, "_tag">>,
398
- onSubmit: (a: To) => Promise<OnSubmitA>
399
- ) => {
400
- const fields = buildFieldInfoFromFieldsRoot(s).fields
401
- const parse = S.decodeUnknownSync<any, any>(S.Struct(Struct.omit(s.fields, "_tag")) as any)
402
- const isDirty = ref(false)
403
- const isValid = ref(true)
404
- const isLoading = ref(false)
405
-
406
- const submit1 = <A>(onSubmit: (a: To) => Promise<A>) => async <T extends Promise<{ valid: boolean }>>(e: T) => {
407
- isLoading.value = true
408
- try {
409
- const r = await e
410
- if (!r.valid) return
411
- return onSubmit(new s(parse(state.value)))
412
- } finally {
413
- isLoading.value = false
414
- }
415
- }
416
- const submit = submit1(onSubmit)
417
-
418
- watch(
419
- state,
420
- (v) => {
421
- // TODO: do better
422
- isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value)
423
- },
424
- { deep: true }
425
- )
426
-
427
- const submitFromState = () => submit(Promise.resolve({ valid: isValid.value }))
428
-
429
- return {
430
- fields,
431
- /** optimized for Vuetify v-form submit callback */
432
- submit,
433
- /** optimized for Native form submit callback or general use */
434
- submitFromState,
435
- isDirty,
436
- isValid,
437
- /** includes whole submit, including potential asynchronous validation steps */
438
- isLoading
439
- }
440
- }
441
-
442
384
  export function getMetadataFromSchema(
443
385
  ast: S.AST.AST
444
386
  ): {