@effect-app/vue-components 3.2.0 → 4.0.0-beta.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/types/components/OmegaForm/OmegaAutoGen.vue.d.ts +1 -1
- package/dist/types/components/OmegaForm/OmegaFormStuff.d.ts +11 -13
- package/dist/types/components/OmegaForm/useOmegaForm.d.ts +6 -4
- package/dist/types/utils/index.d.ts +4 -3
- package/dist/vue-components.es.js +13 -14
- package/dist/vue-components.es10.js +109 -115
- package/dist/vue-components.es11.js +1 -1
- package/dist/vue-components.es12.js +290 -341
- package/dist/vue-components.es17.js +723 -4
- package/dist/vue-components.es18.js +140 -9
- package/dist/vue-components.es19.js +4 -55
- package/dist/vue-components.es2.js +17 -18
- package/dist/vue-components.es20.js +11 -68
- package/dist/vue-components.es21.js +3 -6
- package/dist/vue-components.es22.js +24 -6
- package/dist/vue-components.es23.js +4 -3
- package/dist/vue-components.es24.js +8 -3
- package/dist/vue-components.es25.js +55 -2
- package/dist/vue-components.es26.js +69 -2
- package/dist/vue-components.es27.js +6 -2
- package/dist/vue-components.es28.js +6 -2
- package/dist/vue-components.es29.js +3 -17
- package/dist/vue-components.es3.js +9 -9
- package/dist/vue-components.es30.js +3 -192
- package/dist/vue-components.es31.js +4 -0
- package/dist/vue-components.es32.js +2 -42
- package/dist/vue-components.es33.js +1 -1
- package/dist/vue-components.es34.js +1 -1
- package/dist/vue-components.es35.js +17 -111
- package/dist/vue-components.es36.js +40 -0
- package/dist/vue-components.es37.js +4 -7
- package/dist/vue-components.es38.js +82 -31
- package/dist/vue-components.es39.js +54 -0
- package/dist/vue-components.es40.js +561 -4
- package/dist/vue-components.es41.js +40 -22
- package/dist/vue-components.es42.js +27 -5
- package/dist/vue-components.es43.js +5 -21
- package/dist/vue-components.es44.js +39 -29
- package/dist/vue-components.es45.js +313 -21
- package/dist/vue-components.es46.js +31 -12
- package/dist/vue-components.es47.js +4 -5
- package/dist/vue-components.es48.js +23 -18
- package/dist/vue-components.es49.js +74 -8
- package/dist/vue-components.es50.js +98 -30
- package/dist/vue-components.es51.js +2 -48
- package/dist/vue-components.es52.js +317 -25
- package/dist/vue-components.es53.js +64 -11
- package/dist/vue-components.es54.js +2 -65
- package/dist/vue-components.es55.js +2 -56
- package/dist/vue-components.es56.js +110 -16
- package/dist/vue-components.es58.js +7 -29
- package/dist/vue-components.es59.js +31 -41
- package/dist/vue-components.es61.js +190 -42
- package/dist/vue-components.es63.js +6 -0
- package/dist/vue-components.es64.js +103 -0
- package/dist/vue-components.es65.js +4 -0
- package/dist/vue-components.es66.js +23 -0
- package/dist/vue-components.es67.js +84 -0
- package/dist/vue-components.es68.js +14 -0
- package/dist/vue-components.es69.js +115 -0
- package/dist/vue-components.es7.js +1 -1
- package/dist/vue-components.es70.js +5 -0
- package/dist/vue-components.es71.js +34 -0
- package/dist/vue-components.es72.js +4 -0
- package/dist/vue-components.es73.js +4 -0
- package/dist/vue-components.es74.js +17 -0
- package/dist/vue-components.es75.js +72 -0
- package/dist/vue-components.es76.js +25 -0
- package/dist/vue-components.es77.js +7 -0
- package/dist/vue-components.es78.js +23 -0
- package/dist/vue-components.es79.js +32 -0
- package/dist/vue-components.es80.js +24 -0
- package/dist/vue-components.es81.js +14 -0
- package/dist/vue-components.es82.js +7 -0
- package/dist/vue-components.es83.js +21 -0
- package/dist/vue-components.es84.js +11 -0
- package/dist/vue-components.es85.js +33 -0
- package/dist/vue-components.es86.js +50 -0
- package/dist/vue-components.es87.js +28 -0
- package/dist/vue-components.es88.js +17 -0
- package/dist/vue-components.es89.js +18 -0
- package/dist/vue-components.es90.js +10 -0
- package/dist/vue-components.es91.js +13 -0
- package/dist/vue-components.es92.js +67 -0
- package/dist/vue-components.es93.js +58 -0
- package/dist/vue-components.es94.js +19 -0
- package/dist/{vue-components.es57.js → vue-components.es95.js} +3 -3
- package/dist/vue-components.es96.js +31 -0
- package/dist/vue-components.es97.js +44 -0
- package/dist/vue-components.es99.js +46 -0
- package/package.json +25 -24
- package/src/components/OmegaForm/OmegaAutoGen.vue +11 -10
- package/src/components/OmegaForm/OmegaErrorsInternal.vue +3 -2
- package/src/components/OmegaForm/OmegaFormStuff.ts +249 -274
- package/src/components/OmegaForm/OmegaInternalInput.vue +1 -1
- package/src/components/OmegaForm/useOmegaForm.ts +27 -28
- package/src/utils/index.ts +7 -7
- /package/dist/{vue-components.es62.js → vue-components.es100.js} +0 -0
- /package/dist/{vue-components.es60.js → vue-components.es98.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<slot v-bind="{ ...inputProps.inputProps, field: inputProps.field, state: inputProps.state }">
|
|
3
|
-
<div :class="$attrs.class">
|
|
3
|
+
<div :class="$attrs.class as any">
|
|
4
4
|
<OmegaInputVuetify
|
|
5
5
|
v-if="vuetified"
|
|
6
6
|
v-bind="{ ...attrsWithoutClass, ...inputProps, class: props.inputClass }"
|
|
@@ -3,8 +3,13 @@
|
|
|
3
3
|
|
|
4
4
|
import * as api from "@opentelemetry/api"
|
|
5
5
|
import { type DeepKeys, DeepValue, type FormAsyncValidateOrFn, type FormValidateOrFn, type StandardSchemaV1, StandardSchemaV1Issue, useForm, ValidationError, ValidationErrorMap } from "@tanstack/vue-form"
|
|
6
|
-
import { Array, Data, Effect, Fiber, Option, Order, S } from "effect-app"
|
|
7
6
|
import { runtimeFiberAsPromise, UnionToTuples } from "effect-app/utils"
|
|
7
|
+
import * as Data from "effect/Data"
|
|
8
|
+
import * as Effect from "effect/Effect"
|
|
9
|
+
import * as Fiber from "effect/Fiber"
|
|
10
|
+
import * as Option from "effect/Option"
|
|
11
|
+
import * as Order from "effect/Order"
|
|
12
|
+
import * as S from "effect/Schema"
|
|
8
13
|
import { Component, computed, ComputedRef, ConcreteComponent, h, type InjectionKey, onBeforeUnmount, onMounted, onUnmounted, Ref, ref, watch } from "vue"
|
|
9
14
|
import { useIntl } from "../../utils"
|
|
10
15
|
import { MergedInputProps } from "./InputProps"
|
|
@@ -102,25 +107,26 @@ const eHoc = (errorProps: {
|
|
|
102
107
|
|
|
103
108
|
const errors = computed(() => {
|
|
104
109
|
// Collect errors from fieldMeta (field-level errors for registered fields)
|
|
105
|
-
const fieldErrors =
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
const fieldErrors = Object
|
|
111
|
+
.entries(fieldMeta.value)
|
|
112
|
+
.reduce<OmegaError[]>((acc, [key, m]) => {
|
|
113
|
+
const fieldErrors = (m as { errors?: Array<{ message?: string }> } | undefined)?.errors ?? []
|
|
114
|
+
if (!fieldErrors.length) {
|
|
115
|
+
return acc
|
|
116
|
+
}
|
|
111
117
|
|
|
112
118
|
const fieldInfo = fieldMap.value.get(key)
|
|
113
|
-
|
|
114
|
-
|
|
119
|
+
if (!fieldInfo) {
|
|
120
|
+
return acc
|
|
121
|
+
}
|
|
115
122
|
|
|
116
|
-
|
|
123
|
+
acc.push({
|
|
117
124
|
label: fieldInfo.label,
|
|
118
125
|
inputId: fieldInfo.id,
|
|
119
|
-
|
|
120
|
-
errors: [fieldErrors[0]?.message].filter(Boolean)
|
|
126
|
+
errors: [fieldErrors[0]?.message].filter(Boolean) as string[]
|
|
121
127
|
})
|
|
122
|
-
|
|
123
|
-
|
|
128
|
+
return acc
|
|
129
|
+
}, [])
|
|
124
130
|
|
|
125
131
|
// Collect errors from errorMap.onSubmit ONLY for fields that are NOT registered
|
|
126
132
|
// (registered fields already have their errors in fieldMeta)
|
|
@@ -396,7 +402,7 @@ export interface OmegaFormReturn<
|
|
|
396
402
|
// Pre-computed type aliases - computed ONCE for performance
|
|
397
403
|
_paths: FieldPath<From>
|
|
398
404
|
_keys: DeepKeys<From>
|
|
399
|
-
_schema: S.
|
|
405
|
+
_schema: S.Codec<To, From, never>
|
|
400
406
|
|
|
401
407
|
// this crazy thing here is copied from the OmegaFormInput.vue.d.ts, with `From` removed as Generic, instead closed over from the From generic above..
|
|
402
408
|
Input: <Name extends OmegaFormReturn<From, To, TypeProps>["_paths"]>(
|
|
@@ -675,13 +681,13 @@ export const useOmegaForm = <
|
|
|
675
681
|
To extends Record<PropertyKey, any>,
|
|
676
682
|
TypeProps = DefaultTypeProps
|
|
677
683
|
>(
|
|
678
|
-
schema: S.
|
|
684
|
+
schema: S.Codec<To, From, never>,
|
|
679
685
|
tanstackFormOptions?: NoInfer<FormProps<From, To>>,
|
|
680
686
|
omegaConfig?: OmegaConfig<To>
|
|
681
687
|
): OmegaFormReturn<From, To, TypeProps> => {
|
|
682
688
|
if (!schema) throw new Error("Schema is required")
|
|
683
|
-
const standardSchema = S.
|
|
684
|
-
const decode = S.
|
|
689
|
+
const standardSchema = S.toStandardSchemaV1(schema)
|
|
690
|
+
const decode = S.decodeEffect(schema)
|
|
685
691
|
|
|
686
692
|
const { meta, unionMeta } = generateMetaFromSchema(schema)
|
|
687
693
|
|
|
@@ -796,18 +802,11 @@ export const useOmegaForm = <
|
|
|
796
802
|
meta,
|
|
797
803
|
value: parsedValue
|
|
798
804
|
})
|
|
799
|
-
if (Fiber.isFiber(r)
|
|
800
|
-
return await runtimeFiberAsPromise(r)
|
|
805
|
+
if (Fiber.isFiber(r)) {
|
|
806
|
+
return await runtimeFiberAsPromise(r as any)
|
|
801
807
|
}
|
|
802
808
|
if (Effect.isEffect(r)) {
|
|
803
|
-
return await Effect.runPromise(
|
|
804
|
-
r.pipe(
|
|
805
|
-
// meta?.currentSpan
|
|
806
|
-
// ? Effect.withParentSpan(meta.currentSpan)
|
|
807
|
-
// : (_) => _,
|
|
808
|
-
Effect.flatMap((_) => Fiber.join(_))
|
|
809
|
-
)
|
|
810
|
-
)
|
|
809
|
+
return await Effect.runPromise(r)
|
|
811
810
|
}
|
|
812
811
|
return r
|
|
813
812
|
})
|
package/src/utils/index.ts
CHANGED
|
@@ -18,15 +18,15 @@ export const provideIntl = (
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Recursively extracts the source AST from a transformation chain.
|
|
21
|
-
*
|
|
21
|
+
* In v4, transformations are stored in the `encoding` property, not as wrapped AST nodes.
|
|
22
|
+
* This function returns the encoded form if an encoding chain exists, otherwise returns the AST itself.
|
|
22
23
|
*
|
|
23
24
|
* @param ast - The AST node to extract the transformation source from
|
|
24
|
-
* @returns The source AST
|
|
25
|
+
* @returns The source AST (the decoded/type form, which is the AST itself in v4)
|
|
25
26
|
*/
|
|
26
27
|
export function getTransformationFrom(ast: S.AST.AST) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
28
|
+
// In v4, the AST itself is the decoded (type) form
|
|
29
|
+
// The encoding chain points to the encoded (wire) form via ast.encoding
|
|
30
|
+
// For most metadata extraction purposes, we want the decoded form, so just return the ast
|
|
31
|
+
return ast
|
|
32
32
|
}
|
|
File without changes
|
|
File without changes
|