@effect-app/vue 0.160.0 → 0.161.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 CHANGED
@@ -1,5 +1,29 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 0.161.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 2044733: form updates
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [2044733]
12
+ - @effect-app/vue@0.161.0
13
+ - @effect-app/core@0.165.0
14
+ - effect-app@0.196.2
15
+ - @effect-app/schema@0.215.2
16
+
17
+ ## 0.160.1
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies [a9a81a1]
22
+ - @effect-app/core@0.164.0
23
+ - effect-app@0.196.1
24
+ - @effect-app/schema@0.215.1
25
+ - @effect-app/vue@0.160.1
26
+
3
27
  ## 0.160.0
4
28
 
5
29
  ### Minor Changes
package/_cjs/form.cjs CHANGED
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.FieldInfoTag = void 0;
7
6
  exports.buildFieldInfoFromFields = buildFieldInfoFromFields;
8
7
  exports.buildFormFromSchema = void 0;
9
8
  exports.convertIn = convertIn;
@@ -31,7 +30,64 @@ function convertOutInt(v, type) {
31
30
  function convertOut(v, set, type) {
32
31
  return set(convertOutInt(v, type));
33
32
  }
34
- const FieldInfoTag = exports.FieldInfoTag = Symbol();
33
+ const f = Symbol();
34
+ function handlePropertySignature(propertySignature) {
35
+ const schema = _effectApp.S.make(propertySignature.type);
36
+ switch (schema.ast._tag) {
37
+ case "Transformation":
38
+ {
39
+ // TODO: this handles schemas which contains class schemas
40
+ // but I'm not sure it's the right way to do it
41
+ return handlePropertySignature(new _effectApp.S.AST.PropertySignature(propertySignature.name, schema.ast.from, propertySignature.isOptional, propertySignature.isReadonly, propertySignature.annotations));
42
+ }
43
+ case "TypeLiteral":
44
+ {
45
+ return buildFieldInfoFromFields(schema);
46
+ }
47
+ // case "Union": {
48
+ // return {
49
+ // members: schema
50
+ // .ast
51
+ // .types
52
+ // .map((elAst) =>
53
+ // // syntehtic property signature as if each union member were the only member
54
+ // new S.AST.PropertySignature(
55
+ // propertySignature.name,
56
+ // elAst,
57
+ // propertySignature.isOptional,
58
+ // propertySignature.isReadonly,
59
+ // propertySignature.annotations
60
+ // )
61
+ // )
62
+ // .flatMap((ps) => {
63
+ // // try to retrieve the _tag literal to set _infoTag later
64
+ // const typeLiteral = S.AST.isTypeLiteral(ps.type)
65
+ // ? ps.type
66
+ // : S.AST.isTransform(ps.type) && S.AST.isTypeLiteral(ps.type.from)
67
+ // ? ps.type.from
68
+ // : void 0
69
+ // const tagPropertySignature = typeLiteral?.propertySignatures.find((_) => _.name === "_tag")
70
+ // const tagLiteral = tagPropertySignature
71
+ // && S.AST.isLiteral(tagPropertySignature.type)
72
+ // && tagPropertySignature.type.literal
73
+ // const toRet = handlePropertySignature(ps)
74
+ // if (toRet._tag === "UnionFieldInfo") {
75
+ // return toRet.members
76
+ // } else if (toRet._tag === "NestedFieldInfo") {
77
+ // return [{ ...toRet, ...!!tagLiteral && { _infoTag: tagLiteral } }]
78
+ // } else {
79
+ // return [toRet]
80
+ // }
81
+ // }),
82
+ // _tag: "UnionFieldInfo"
83
+ // }
84
+ // }
85
+ default:
86
+ {
87
+ return buildFieldInfo(propertySignature);
88
+ }
89
+ }
90
+ }
35
91
  function buildFieldInfoFromFields(schema) {
36
92
  const ast = "fields" in schema && schema.fields ? _effectApp.S.struct(schema.fields).ast : schema.ast;
37
93
  // // todo: or look at from?
@@ -42,14 +98,14 @@ function buildFieldInfoFromFields(schema) {
42
98
  // }
43
99
  if (!_effectApp.S.AST.isTypeLiteral(ast)) throw new Error("not a struct type");
44
100
  return ast.propertySignatures.reduce((acc, cur) => {
45
- const schema = _effectApp.S.make(cur.type);
46
- acc[cur.name] = _effectApp.S.AST.isTypeLiteral(schema.ast) ? buildFieldInfoFromFields(schema) : buildFieldInfo(cur);
101
+ ;
102
+ acc.fields[cur.name] = handlePropertySignature(cur);
47
103
  return acc;
48
104
  }, {
49
- [FieldInfoTag]: "NestedFieldInfo"
105
+ _tag: "NestedFieldInfo",
106
+ fields: {}
50
107
  });
51
108
  }
52
- const f = Symbol();
53
109
  class PhantomTypeParameter {}
54
110
  const defaultIntl = (0, _intl.createIntl)({
55
111
  locale: "en"
@@ -124,12 +180,12 @@ function buildFieldInfo(property) {
124
180
  return true;
125
181
  }],
126
182
  metadata,
127
- [FieldInfoTag]: "FieldInfo"
183
+ _tag: "FieldInfo"
128
184
  };
129
185
  return info;
130
186
  }
131
187
  const buildFormFromSchema = (s, state, onSubmit) => {
132
- const fields = buildFieldInfoFromFields(s);
188
+ const fields = buildFieldInfoFromFields(s).fields;
133
189
  const parse = _effectApp.S.decodeSync(s);
134
190
  const isDirty = (0, _vue.ref)(false);
135
191
  const isValid = (0, _vue.ref)(true);
@@ -177,7 +233,7 @@ function getMetadataFromSchema(ast) {
177
233
  ...rest
178
234
  };
179
235
  }
180
- // or we need to add these infos directly in the refinement like the minimum
236
+ // or we need to add these info directly in the refinement like the minimum
181
237
  // or find a jsonschema parser whojoins all of them
182
238
  // todo, we have to use $ref: "#/$defs/Int"
183
239
  // and look up
package/_cjs/form.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"form.cjs","names":["JSONSchema","_interopRequireWildcard","require","_intl","_effectApp","_vue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","convertIn","v","type","convertOutInt","trim","c","parseFloat","parseInt","convertOut","FieldInfoTag","exports","Symbol","buildFieldInfoFromFields","schema","ast","fields","S","struct","AST","isTypeLiteral","Error","propertySignatures","reduce","acc","cur","make","name","buildFieldInfo","f","PhantomTypeParameter","defaultIntl","createIntl","locale","translate","ref","formatMessage","bind","customSchemaErrors","Map","property","propertyKey","metadata","getMetadataFromSchema","parse","decodeUnknownEither","nullableOrUndefined","isUnion","types","includes","null","some","_","_tag","realSelf","filter","id","getIdentifierAnnotation","id2","renderError","err","toString","custom","value","Option","isSome","undefined","defaultMessage","capitalize","String","message","description","slice","indexOf","stringRules","minLength","length","maxLength","numberRules","minimum","exclusiveMinimum","isExclusive","maximum","exclusiveMaximum","parseRule","pipe","Either","match","onLeft","onRight","rules","info","required","converted","res","buildFormFromSchema","s","state","onSubmit","decodeSync","isDirty","isValid","submit1","valid","submit","watch","JSON","stringify","deep","submitFromState","Promise","resolve","nullable","jschema","startsWith","$ref","rest","replace","isNumber","isInt"],"sources":["../src/form.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"form.cjs","names":["JSONSchema","_interopRequireWildcard","require","_intl","_effectApp","_vue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","convertIn","v","type","convertOutInt","trim","c","parseFloat","parseInt","convertOut","f","Symbol","handlePropertySignature","propertySignature","schema","S","make","ast","_tag","AST","PropertySignature","name","from","isOptional","isReadonly","annotations","buildFieldInfoFromFields","buildFieldInfo","fields","struct","isTypeLiteral","Error","propertySignatures","reduce","acc","cur","PhantomTypeParameter","defaultIntl","createIntl","locale","translate","exports","ref","formatMessage","bind","customSchemaErrors","Map","property","propertyKey","metadata","getMetadataFromSchema","parse","decodeUnknownEither","nullableOrUndefined","isUnion","types","includes","null","some","_","realSelf","filter","id","getIdentifierAnnotation","id2","renderError","err","toString","custom","value","Option","isSome","undefined","defaultMessage","capitalize","String","message","description","slice","indexOf","stringRules","minLength","length","maxLength","numberRules","minimum","exclusiveMinimum","isExclusive","maximum","exclusiveMaximum","parseRule","pipe","Either","match","onLeft","onRight","rules","info","required","converted","res","buildFormFromSchema","s","state","onSubmit","decodeSync","isDirty","isValid","submit1","valid","submit","watch","JSON","stringify","deep","submitFromState","Promise","resolve","nullable","jschema","startsWith","$ref","rest","replace","isNumber","isInt"],"sources":["../src/form.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/form.d.ts CHANGED
@@ -5,11 +5,30 @@ import type { Ref } from "vue";
5
5
  export declare function convertIn(v: string | null, type?: "text" | "float" | "int"): string;
6
6
  export declare function convertOutInt(v: string, type?: "text" | "float" | "int"): string | number | null;
7
7
  export declare function convertOut(v: string, set: (v: unknown | null) => void, type?: "text" | "float" | "int"): void;
8
- export declare const FieldInfoTag: unique symbol;
8
+ declare const f: unique symbol;
9
+ export interface FieldInfo<Tout> extends PhantomTypeParameter<typeof f, {
10
+ out: Tout;
11
+ }> {
12
+ rules: ((v: string) => boolean | string)[];
13
+ metadata: FieldMetadata;
14
+ type: "text" | "float" | "int";
15
+ _tag: "FieldInfo";
16
+ }
17
+ export interface UnionFieldInfo<T> {
18
+ members: T;
19
+ _tag: "UnionFieldInfo";
20
+ }
21
+ type NestedFieldInfoKey<Key> = Key extends Record<PropertyKey, any> ? Unbranded<Key> extends Record<PropertyKey, any> ? NestedFieldInfo<Key> : FieldInfo<Key> : FieldInfo<Key>;
22
+ type _NestedFieldInfo<To extends Record<PropertyKey, any>> = Record<PropertyKey, any> extends To ? {} : {
23
+ [K in keyof To]-?: NestedFieldInfoKey<To[K]> extends infer NestedInfo ? NestedInfo : never;
24
+ };
9
25
  export type NestedFieldInfo<To extends Record<PropertyKey, any>> = {
10
- [K in keyof To]-?: Unbranded<To[K]> extends Record<PropertyKey, any> ? NestedFieldInfo<To[K]> : FieldInfo<To[K]>;
26
+ fields: _NestedFieldInfo<To>;
27
+ _tag: "NestedFieldInfo";
11
28
  } & {
12
- [FieldInfoTag]: "NestedFieldInfo";
29
+ [K in "_infoTag" as To extends {
30
+ "_tag": S.AST.LiteralValue;
31
+ } ? K : never]: To["_tag"];
13
32
  };
14
33
  export declare function buildFieldInfoFromFields<From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>>(schema: Schema<To, From, never> & {
15
34
  fields?: S.Struct.Fields;
@@ -19,27 +38,18 @@ export interface FieldMetadata {
19
38
  maxLength: number | undefined;
20
39
  required: boolean;
21
40
  }
22
- declare const f: unique symbol;
23
41
  declare abstract class PhantomTypeParameter<Identifier extends keyof any, InstantiatedType> {
24
42
  protected abstract readonly _: {
25
43
  readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType;
26
44
  };
27
45
  }
28
- export interface FieldInfo<Tout> extends PhantomTypeParameter<typeof f, {
29
- out: Tout;
30
- }> {
31
- rules: ((v: string) => boolean | string)[];
32
- metadata: FieldMetadata;
33
- type: "text" | "float" | "int";
34
- [FieldInfoTag]: "FieldInfo";
35
- }
36
46
  export declare const translate: Ref<{
37
47
  (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;
38
48
  <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)[];
39
49
  }>;
40
50
  export declare const customSchemaErrors: Ref<Map<string | S.AST.AST, (message: string, e: unknown, v: unknown) => string>>;
41
51
  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>) => {
42
- fields: NestedFieldInfo<To>;
52
+ fields: _NestedFieldInfo<To>;
43
53
  submit: <T extends Promise<{
44
54
  valid: boolean;
45
55
  }>>(e: T) => Promise<OnSubmitA | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../src/form.ts"],"names":[],"mappings":"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"}
package/dist/form.js CHANGED
@@ -15,7 +15,61 @@ export function convertOutInt(v, type) {
15
15
  export function convertOut(v, set, type) {
16
16
  return set(convertOutInt(v, type));
17
17
  }
18
- export const FieldInfoTag = Symbol();
18
+ const f = Symbol();
19
+ function handlePropertySignature(propertySignature) {
20
+ const schema = S.make(propertySignature.type);
21
+ switch (schema.ast._tag) {
22
+ case "Transformation": {
23
+ // TODO: this handles schemas which contains class schemas
24
+ // but I'm not sure it's the right way to do it
25
+ return handlePropertySignature(new S.AST.PropertySignature(propertySignature.name, schema.ast.from, propertySignature.isOptional, propertySignature.isReadonly, propertySignature.annotations));
26
+ }
27
+ case "TypeLiteral": {
28
+ return buildFieldInfoFromFields(schema);
29
+ }
30
+ // case "Union": {
31
+ // return {
32
+ // members: schema
33
+ // .ast
34
+ // .types
35
+ // .map((elAst) =>
36
+ // // syntehtic property signature as if each union member were the only member
37
+ // new S.AST.PropertySignature(
38
+ // propertySignature.name,
39
+ // elAst,
40
+ // propertySignature.isOptional,
41
+ // propertySignature.isReadonly,
42
+ // propertySignature.annotations
43
+ // )
44
+ // )
45
+ // .flatMap((ps) => {
46
+ // // try to retrieve the _tag literal to set _infoTag later
47
+ // const typeLiteral = S.AST.isTypeLiteral(ps.type)
48
+ // ? ps.type
49
+ // : S.AST.isTransform(ps.type) && S.AST.isTypeLiteral(ps.type.from)
50
+ // ? ps.type.from
51
+ // : void 0
52
+ // const tagPropertySignature = typeLiteral?.propertySignatures.find((_) => _.name === "_tag")
53
+ // const tagLiteral = tagPropertySignature
54
+ // && S.AST.isLiteral(tagPropertySignature.type)
55
+ // && tagPropertySignature.type.literal
56
+ // const toRet = handlePropertySignature(ps)
57
+ // if (toRet._tag === "UnionFieldInfo") {
58
+ // return toRet.members
59
+ // } else if (toRet._tag === "NestedFieldInfo") {
60
+ // return [{ ...toRet, ...!!tagLiteral && { _infoTag: tagLiteral } }]
61
+ // } else {
62
+ // return [toRet]
63
+ // }
64
+ // }),
65
+ // _tag: "UnionFieldInfo"
66
+ // }
67
+ // }
68
+ default: {
69
+ return buildFieldInfo(propertySignature);
70
+ }
71
+ }
72
+ }
19
73
  export function buildFieldInfoFromFields(schema) {
20
74
  const ast = "fields" in schema && schema.fields
21
75
  ? S.struct(schema.fields).ast
@@ -29,14 +83,11 @@ export function buildFieldInfoFromFields(schema) {
29
83
  if (!S.AST.isTypeLiteral(ast))
30
84
  throw new Error("not a struct type");
31
85
  return ast.propertySignatures.reduce((acc, cur) => {
32
- const schema = S.make(cur.type);
33
- acc[cur.name] = S.AST.isTypeLiteral(schema.ast)
34
- ? buildFieldInfoFromFields(schema)
35
- : buildFieldInfo(cur);
86
+ ;
87
+ acc.fields[cur.name] = handlePropertySignature(cur);
36
88
  return acc;
37
- }, { [FieldInfoTag]: "NestedFieldInfo" });
89
+ }, { _tag: "NestedFieldInfo", fields: {} });
38
90
  }
39
- const f = Symbol();
40
91
  class PhantomTypeParameter {
41
92
  }
42
93
  const defaultIntl = createIntl({ locale: "en" });
@@ -140,12 +191,12 @@ function buildFieldInfo(property) {
140
191
  }
141
192
  ],
142
193
  metadata,
143
- [FieldInfoTag]: "FieldInfo"
194
+ _tag: "FieldInfo"
144
195
  };
145
196
  return info;
146
197
  }
147
198
  export const buildFormFromSchema = (s, state, onSubmit) => {
148
- const fields = buildFieldInfoFromFields(s);
199
+ const fields = buildFieldInfoFromFields(s).fields;
149
200
  const parse = S.decodeSync(s);
150
201
  const isDirty = ref(false);
151
202
  const isValid = ref(true);
@@ -180,7 +231,7 @@ export function getMetadataFromSchema(ast) {
180
231
  const { $ref: _, ...rest } = jschema;
181
232
  jschema = { ...jschema["$defs"][jschema["$ref"].replace("#/$defs/", "")], ...rest };
182
233
  }
183
- // or we need to add these infos directly in the refinement like the minimum
234
+ // or we need to add these info directly in the refinement like the minimum
184
235
  // or find a jsonschema parser whojoins all of them
185
236
  // todo, we have to use $ref: "#/$defs/Int"
186
237
  // and look up
@@ -205,4 +256,4 @@ export function getMetadataFromSchema(ast) {
205
256
  required: !nullable
206
257
  };
207
258
  }
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sMkJBQTJCLENBQUE7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUdoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBR3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUU1QywwRUFBMEU7QUFDMUUsWUFBWTtBQUVaLE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBZ0IsRUFBRSxJQUErQjtJQUN6RSxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLENBQVMsRUFBRSxJQUErQjtJQUN0RSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9GLE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQztBQUVELE1B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
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sMkJBQTJCLENBQUE7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUdoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBSXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUU1QywwRUFBMEU7QUFDMUUsWUFBWTtBQUVaLE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBZ0IsRUFBRSxJQUErQjtJQUN6RSxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLENBQVMsRUFBRSxJQUErQjtJQUN0RSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9GLE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQztBQUVELE1B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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "0.160.0",
3
+ "version": "0.161.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
@@ -8,10 +8,10 @@
8
8
  "@formatjs/intl": "^2.10.1",
9
9
  "@tanstack/vue-query": "^5.28.9",
10
10
  "query-string": "^9.0.0",
11
- "@effect-app/core": "0.163.0",
12
- "@effect-app/vue": "0.160.0",
13
- "@effect-app/schema": "0.215.0",
14
- "effect-app": "0.196.0"
11
+ "@effect-app/schema": "0.215.2",
12
+ "@effect-app/core": "0.165.0",
13
+ "@effect-app/vue": "0.161.0",
14
+ "effect-app": "0.196.2"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@effect/platform": "^0.48.21",
package/src/form.ts CHANGED
@@ -5,6 +5,7 @@ import type {} from "intl-messageformat"
5
5
  import type { Unbranded } from "@effect-app/schema/brand"
6
6
  import { Either, Option, pipe, S } from "effect-app"
7
7
  import type { Schema } from "effect-app/schema"
8
+
8
9
  import type { Ref } from "vue"
9
10
  import { capitalize, ref, watch } from "vue"
10
11
 
@@ -25,14 +26,112 @@ export function convertOut(v: string, set: (v: unknown | null) => void, type?: "
25
26
  return set(convertOutInt(v, type))
26
27
  }
27
28
 
28
- export const FieldInfoTag = Symbol()
29
+ const f = Symbol()
30
+ export interface FieldInfo<Tout> extends PhantomTypeParameter<typeof f, { out: Tout }> {
31
+ rules: ((v: string) => boolean | string)[]
32
+ metadata: FieldMetadata
33
+ type: "text" | "float" | "int" // todo; multi-line vs single line text
34
+ _tag: "FieldInfo"
35
+ }
36
+
37
+ export interface UnionFieldInfo<T> {
38
+ members: T
39
+ _tag: "UnionFieldInfo"
40
+ }
41
+
42
+ type NestedFieldInfoKey<Key> = Key extends Record<PropertyKey, any>
43
+ ? Unbranded<Key> extends Record<PropertyKey, any> ? NestedFieldInfo<Key>
44
+ : FieldInfo<Key>
45
+ : FieldInfo<Key>
46
+
47
+ type _NestedFieldInfo<To extends Record<PropertyKey, any>> = Record<PropertyKey, any> extends To ? {}
48
+ : {
49
+ [K in keyof To]-?: NestedFieldInfoKey<To[K]> extends infer NestedInfo ? NestedInfo // IsUnion<NestedInfo> extends false ? NestedInfo : UnionFieldInfo<NestedInfo[]>
50
+ : never
51
+ }
29
52
 
30
53
  export type NestedFieldInfo<To extends Record<PropertyKey, any>> =
54
+ // exploit eventual _tag field to propagate the unique tag
31
55
  & {
32
- [K in keyof To]-?: Unbranded<To[K]> extends Record<PropertyKey, any> ? NestedFieldInfo<To[K]>
33
- : FieldInfo<To[K]>
56
+ fields: _NestedFieldInfo<To>
57
+ _tag: "NestedFieldInfo"
34
58
  }
35
- & { [FieldInfoTag]: "NestedFieldInfo" }
59
+ & { [K in "_infoTag" as To extends { "_tag": S.AST.LiteralValue } ? K : never]: To["_tag"] }
60
+
61
+ function handlePropertySignature(
62
+ propertySignature: S.AST.PropertySignature
63
+ ):
64
+ | NestedFieldInfo<Record<PropertyKey, any>>
65
+ | FieldInfo<any>
66
+ // | UnionFieldInfo<(NestedFieldInfo<Record<PropertyKey, any>> | FieldInfo<any>)[]>
67
+ {
68
+ const schema = S.make(propertySignature.type)
69
+
70
+ switch (schema.ast._tag) {
71
+ case "Transformation": {
72
+ // TODO: this handles schemas which contains class schemas
73
+ // but I'm not sure it's the right way to do it
74
+ return handlePropertySignature(
75
+ new S.AST.PropertySignature(
76
+ propertySignature.name,
77
+ schema.ast.from,
78
+ propertySignature.isOptional,
79
+ propertySignature.isReadonly,
80
+ propertySignature.annotations
81
+ )
82
+ )
83
+ }
84
+ case "TypeLiteral": {
85
+ return buildFieldInfoFromFields(
86
+ schema as S.Schema<Record<PropertyKey, any>, Record<PropertyKey, any>, never>
87
+ )
88
+ }
89
+ // case "Union": {
90
+ // return {
91
+ // members: schema
92
+ // .ast
93
+ // .types
94
+ // .map((elAst) =>
95
+ // // syntehtic property signature as if each union member were the only member
96
+ // new S.AST.PropertySignature(
97
+ // propertySignature.name,
98
+ // elAst,
99
+ // propertySignature.isOptional,
100
+ // propertySignature.isReadonly,
101
+ // propertySignature.annotations
102
+ // )
103
+ // )
104
+ // .flatMap((ps) => {
105
+ // // try to retrieve the _tag literal to set _infoTag later
106
+ // const typeLiteral = S.AST.isTypeLiteral(ps.type)
107
+ // ? ps.type
108
+ // : S.AST.isTransform(ps.type) && S.AST.isTypeLiteral(ps.type.from)
109
+ // ? ps.type.from
110
+ // : void 0
111
+ // const tagPropertySignature = typeLiteral?.propertySignatures.find((_) => _.name === "_tag")
112
+ // const tagLiteral = tagPropertySignature
113
+ // && S.AST.isLiteral(tagPropertySignature.type)
114
+ // && tagPropertySignature.type.literal
115
+
116
+ // const toRet = handlePropertySignature(ps)
117
+
118
+ // if (toRet._tag === "UnionFieldInfo") {
119
+ // return toRet.members
120
+ // } else if (toRet._tag === "NestedFieldInfo") {
121
+ // return [{ ...toRet, ...!!tagLiteral && { _infoTag: tagLiteral } }]
122
+ // } else {
123
+ // return [toRet]
124
+ // }
125
+ // }),
126
+ // _tag: "UnionFieldInfo"
127
+ // }
128
+ // }
129
+
130
+ default: {
131
+ return buildFieldInfo(propertySignature)
132
+ }
133
+ }
134
+ }
36
135
 
37
136
  export function buildFieldInfoFromFields<From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>>(
38
137
  schema: Schema<To, From, never> & { fields?: S.Struct.Fields }
@@ -50,16 +149,11 @@ export function buildFieldInfoFromFields<From extends Record<PropertyKey, any>,
50
149
  if (!S.AST.isTypeLiteral(ast)) throw new Error("not a struct type")
51
150
  return ast.propertySignatures.reduce(
52
151
  (acc, cur) => {
53
- const schema = S.make(cur.type)
54
- ;(acc as any)[cur.name] = S.AST.isTypeLiteral(schema.ast)
55
- ? buildFieldInfoFromFields(
56
- schema as S.Schema<Record<PropertyKey, any>, Record<PropertyKey, any>, never>
57
- )
58
- : buildFieldInfo(cur)
152
+ ;(acc.fields as any)[cur.name] = handlePropertySignature(cur)
59
153
 
60
154
  return acc
61
155
  },
62
- { [FieldInfoTag]: "NestedFieldInfo" } as NestedFieldInfo<To>
156
+ { _tag: "NestedFieldInfo", fields: {} } as NestedFieldInfo<To>
63
157
  )
64
158
  }
65
159
 
@@ -69,7 +163,6 @@ export interface FieldMetadata {
69
163
  required: boolean
70
164
  }
71
165
 
72
- const f = Symbol()
73
166
  abstract class PhantomTypeParameter<
74
167
  Identifier extends keyof any,
75
168
  InstantiatedType
@@ -78,12 +171,7 @@ abstract class PhantomTypeParameter<
78
171
  readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType
79
172
  }
80
173
  }
81
- export interface FieldInfo<Tout> extends PhantomTypeParameter<typeof f, { out: Tout }> {
82
- rules: ((v: string) => boolean | string)[]
83
- metadata: FieldMetadata
84
- type: "text" | "float" | "int" // todo; multi-line vs single line text
85
- [FieldInfoTag]: "FieldInfo"
86
- }
174
+
87
175
  const defaultIntl = createIntl({ locale: "en" })
88
176
 
89
177
  export const translate = ref<IntlFormatters["formatMessage"]>(defaultIntl.formatMessage.bind(defaultIntl))
@@ -215,7 +303,7 @@ function buildFieldInfo(
215
303
  }
216
304
  ],
217
305
  metadata,
218
- [FieldInfoTag]: "FieldInfo"
306
+ _tag: "FieldInfo"
219
307
  }
220
308
 
221
309
  return info as any
@@ -234,7 +322,7 @@ export const buildFormFromSchema = <
234
322
  state: Ref<From>,
235
323
  onSubmit: (a: To) => Promise<OnSubmitA>
236
324
  ) => {
237
- const fields = buildFieldInfoFromFields(s)
325
+ const fields = buildFieldInfoFromFields(s).fields
238
326
  const parse = S.decodeSync(s)
239
327
  const isDirty = ref(false)
240
328
  const isValid = ref(true)
@@ -289,7 +377,7 @@ export function getMetadataFromSchema(
289
377
  const { $ref: _, ...rest } = jschema
290
378
  jschema = { ...jschema["$defs"][jschema["$ref"].replace("#/$defs/", "")], ...rest }
291
379
  }
292
- // or we need to add these infos directly in the refinement like the minimum
380
+ // or we need to add these info directly in the refinement like the minimum
293
381
  // or find a jsonschema parser whojoins all of them
294
382
  // todo, we have to use $ref: "#/$defs/Int"
295
383
  // and look up
@@ -1 +1 @@
1
- {"version":3,"file":"form.test.d.ts","sourceRoot":"","sources":["../form.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI9B,qBAAa,YAAa,SAAQ,iBAQhC;CAAG"}
1
+ {"version":3,"file":"form.test.d.ts","sourceRoot":"","sources":["../form.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI9B,qBAAa,YAAa,SAAQ,iBAShC;CAAG;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBAEvC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAE/B;CAAG;;;;;;;;;;;;;;;;AAEL,cAAM,MAAO,SAAQ,WAEnB;CAAG;;;;;;;;;;;;;;;;AAEL,cAAM,MAAO,SAAQ,WAEnB;CAAG;;;;;;;;;;;;;;;;;;;;;;AAEL,cAAM,QAAS,SAAQ,aAGrB;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBL,qBAAa,cAAe,SAAQ,mBAGlC;CAAG"}
@@ -0,0 +1,245 @@
1
+ import { Effect } from "@effect-app/core"
2
+ import { S } from "effect-app"
3
+ import type { FieldInfo, NestedFieldInfo, UnionFieldInfo } from "../src/form.js"
4
+ import { buildFieldInfoFromFields } from "../src/form.js"
5
+
6
+ export class NestedSchema extends S.Class<NestedSchema>()({
7
+ shallow: S.string,
8
+ nested: S.struct({
9
+ deep: S.NonEmptyString,
10
+ nested: S.struct({
11
+ deepest: S.number
12
+ })
13
+ }),
14
+ age: S.propertySignature(S.struct({ nfs: S.NumberFromString }))
15
+ }) {}
16
+
17
+ export class SchemaContainsClass extends S.Class<SchemaContainsClass>()({
18
+ inner: NestedSchema
19
+ }) {}
20
+
21
+ export class UnionSchema extends S.Class<UnionSchema>()({
22
+ union: S.union(S.string, S.struct({ unionNested: NestedSchema }))
23
+ }) {}
24
+
25
+ class Circle extends S.TaggedClass<Circle>()("Circle", {
26
+ radius: S.PositiveInt
27
+ }) {}
28
+
29
+ class Square extends S.TaggedClass<Square>()("Square", {
30
+ sideLength: S.PositiveInt
31
+ }) {}
32
+
33
+ class Triangle extends S.TaggedClass<Triangle>()("Triangle", {
34
+ base: S.PositiveInt,
35
+ height: S.number
36
+ }) {}
37
+
38
+ const CircleStruct = S.struct({
39
+ _tag: S.literal("CircleStruct"),
40
+ radius: S.PositiveInt
41
+ })
42
+
43
+ const SquareStruct = S.struct({
44
+ _tag: S.literal("SquareStruct"),
45
+ sideLength: S.PositiveInt
46
+ })
47
+
48
+ const TriangleStruct = S.struct({
49
+ _tag: S.literal("TriangleStruct"),
50
+ base: S.PositiveInt,
51
+ height: S.number
52
+ })
53
+
54
+ const ShapeWithStructs = S.union(CircleStruct, SquareStruct, TriangleStruct)
55
+ const ShapeWithClasses = S.union(Circle, Square, Triangle)
56
+
57
+ export class ShapeContainer extends S.Class<ShapeContainer>()({
58
+ shapeWithStruct: ShapeWithStructs,
59
+ shapeWithClasses: ShapeWithClasses
60
+ }) {}
61
+
62
+ function testFieldInfo<T>(fi: FieldInfo<T>) {
63
+ expect(fi).toBeInstanceOf(Object)
64
+ expect(fi._tag).toBe("FieldInfo")
65
+ expect(["text", "float", "int"]).toContain(fi.type)
66
+ expect(fi.rules).toBeInstanceOf(Array)
67
+ fi.rules.forEach((r) => {
68
+ expect(r).toBeInstanceOf(Function)
69
+ })
70
+ expect(fi.metadata).toBeInstanceOf(Object)
71
+ expect(fi.metadata.maxLength === void 0 || typeof fi.metadata.maxLength === "number").toBeTruthy()
72
+ expect(fi.metadata.minLength === void 0 || typeof fi.metadata.minLength === "number").toBeTruthy()
73
+ expect(typeof fi.metadata.required === "boolean").toBeTruthy()
74
+ }
75
+
76
+ function testUnionFieldInfo(ufi: UnionFieldInfo<any[]>) {
77
+ expect(ufi).toBeInstanceOf(Object)
78
+ expect(ufi._tag).toBe("UnionFieldInfo")
79
+ expect(ufi.members).toBeInstanceOf(Array)
80
+ ufi.members.forEach(
81
+ (
82
+ i: any
83
+ ) => {
84
+ switch (i._tag) {
85
+ case "FieldInfo":
86
+ testFieldInfo(i as FieldInfo<any>)
87
+ break
88
+ case "NestedFieldInfo":
89
+ testNestedFieldInfo(i as NestedFieldInfo<any>)
90
+ break
91
+ case "UnionFieldInfo":
92
+ testUnionFieldInfo(i as UnionFieldInfo<any>)
93
+ break
94
+ }
95
+ }
96
+ )
97
+ }
98
+
99
+ function testNestedFieldInfo(nfi: NestedFieldInfo<Record<PropertyKey, any>>) {
100
+ expect(nfi).toBeInstanceOf(Object)
101
+ expect(nfi._tag).toBe("NestedFieldInfo")
102
+ expect(nfi.fields).toBeInstanceOf(Object)
103
+
104
+ Object.values(nfi).forEach(
105
+ (
106
+ i: any
107
+ ) => {
108
+ switch (i._tag) {
109
+ case "FieldInfo":
110
+ testFieldInfo(i as FieldInfo<any>)
111
+ break
112
+ case "NestedFieldInfo":
113
+ testNestedFieldInfo(i as NestedFieldInfo<any>)
114
+ break
115
+ case "UnionFieldInfo":
116
+ testUnionFieldInfo(i as UnionFieldInfo<any>)
117
+ break
118
+ }
119
+ }
120
+ )
121
+ }
122
+
123
+ it("buildFieldInfo", () =>
124
+ Effect
125
+ .gen(function*() {
126
+ const nestedFieldinfo = buildFieldInfoFromFields(NestedSchema)
127
+ expectTypeOf(nestedFieldinfo).toEqualTypeOf<NestedFieldInfo<NestedSchema>>()
128
+ expectTypeOf(nestedFieldinfo.fields.shallow).toEqualTypeOf<FieldInfo<string>>()
129
+ expectTypeOf(nestedFieldinfo.fields.age).toEqualTypeOf<NestedFieldInfo<NestedSchema["age"]>>()
130
+ expectTypeOf(nestedFieldinfo.fields.age.fields.nfs).toEqualTypeOf<FieldInfo<number>>()
131
+ expectTypeOf(nestedFieldinfo.fields.nested).toEqualTypeOf<NestedFieldInfo<NestedSchema["nested"]>>()
132
+ expectTypeOf(nestedFieldinfo.fields.nested.fields.deep).toEqualTypeOf<FieldInfo<string & S.NonEmptyStringBrand>>()
133
+ expectTypeOf(nestedFieldinfo.fields.nested.fields.nested).toEqualTypeOf<
134
+ NestedFieldInfo<NestedSchema["nested"]["nested"]>
135
+ >()
136
+ expectTypeOf(nestedFieldinfo.fields.nested.fields.nested.fields.deepest).toEqualTypeOf<FieldInfo<number>>()
137
+
138
+ // it's a recursive check on actual runtime structure
139
+ testNestedFieldInfo(nestedFieldinfo)
140
+ testNestedFieldInfo(nestedFieldinfo.fields.age)
141
+ })
142
+ .pipe(Effect.runPromise))
143
+
144
+ it("buildFieldInfo schema containing class", () =>
145
+ Effect
146
+ .gen(function*() {
147
+ const fieldinfo = buildFieldInfoFromFields(SchemaContainsClass)
148
+
149
+ // the type system says that these are NestedFieldInfo<NestedSchema>s
150
+ // are they really? let's check
151
+ testNestedFieldInfo(fieldinfo.fields.inner)
152
+ testNestedFieldInfo(fieldinfo.fields.inner.fields.nested.fields.nested)
153
+ })
154
+ .pipe(Effect.runPromise))
155
+
156
+ it("buildFieldInfo with simple union", () =>
157
+ Effect
158
+ .gen(function*() {
159
+ const unionFieldinfo = buildFieldInfoFromFields(UnionSchema)
160
+ expectTypeOf(unionFieldinfo).toEqualTypeOf<NestedFieldInfo<UnionSchema>>()
161
+ expectTypeOf(unionFieldinfo.fields.union).toEqualTypeOf<
162
+ UnionFieldInfo<(
163
+ | FieldInfo<string>
164
+ | NestedFieldInfo<{
165
+ readonly unionNested: NestedSchema
166
+ }>
167
+ )[]>
168
+ >()
169
+ expectTypeOf(unionFieldinfo.fields.union.members).toEqualTypeOf<(
170
+ | FieldInfo<string>
171
+ | NestedFieldInfo<{
172
+ readonly unionNested: NestedSchema
173
+ }>
174
+ )[]>()
175
+
176
+ // it's a recursive check on actual runtime structure
177
+ testNestedFieldInfo(unionFieldinfo)
178
+ testUnionFieldInfo(unionFieldinfo.fields.union)
179
+ })
180
+ .pipe(Effect.runPromise))
181
+
182
+ it("buildFieldInfo with tagged unions", () =>
183
+ Effect
184
+ .gen(function*() {
185
+ const shapeFieldinfo = buildFieldInfoFromFields(ShapeContainer)
186
+
187
+ // check at runtime if the structure is really an union
188
+ testUnionFieldInfo(shapeFieldinfo.fields.shapeWithClasses)
189
+ testUnionFieldInfo(shapeFieldinfo.fields.shapeWithStruct)
190
+
191
+ shapeFieldinfo.fields.shapeWithStruct.members.forEach((i) => {
192
+ expect(["CircleStruct", "SquareStruct", "TriangleStruct"]).toContain(i._infoTag)
193
+ testNestedFieldInfo(i)
194
+ switch (i._infoTag) {
195
+ case "CircleStruct":
196
+ expectTypeOf(i.fields).toEqualTypeOf<NestedFieldInfo<S.Schema.Type<typeof CircleStruct>>["fields"]>()
197
+ // manual check of runtime structure
198
+ testFieldInfo(i.fields._tag)
199
+ testFieldInfo(i.fields.radius)
200
+ break
201
+ case "SquareStruct":
202
+ expectTypeOf(i.fields).toEqualTypeOf<NestedFieldInfo<S.Schema.Type<typeof SquareStruct>>["fields"]>()
203
+ // manual check of runtime structure
204
+ testFieldInfo(i.fields._tag)
205
+ testFieldInfo(i.fields.sideLength)
206
+ break
207
+ case "TriangleStruct":
208
+ expectTypeOf(i.fields).toEqualTypeOf<NestedFieldInfo<S.Schema.Type<typeof TriangleStruct>>["fields"]>()
209
+ // manual check of runtime structure
210
+ testFieldInfo(i.fields._tag)
211
+ testFieldInfo(i.fields.base)
212
+ testFieldInfo(i.fields.height)
213
+ break
214
+ }
215
+ })
216
+
217
+ // check if inner classes are correctly tagged
218
+ shapeFieldinfo.fields.shapeWithClasses.members.forEach((i) => {
219
+ expect(["Circle", "Square", "Triangle"]).toContain(i._infoTag)
220
+ testNestedFieldInfo(i)
221
+
222
+ switch (i._infoTag) {
223
+ case "Circle":
224
+ expectTypeOf(i.fields).toEqualTypeOf<NestedFieldInfo<Circle>["fields"]>()
225
+ // manual check of runtime structure
226
+ testFieldInfo(i.fields._tag)
227
+ testFieldInfo(i.fields.radius)
228
+ break
229
+ case "Square":
230
+ expectTypeOf(i.fields).toEqualTypeOf<NestedFieldInfo<Square>["fields"]>()
231
+ // manual check of runtime structure
232
+ testFieldInfo(i.fields._tag)
233
+ testFieldInfo(i.fields.sideLength)
234
+ break
235
+ case "Triangle":
236
+ expectTypeOf(i.fields).toEqualTypeOf<NestedFieldInfo<Triangle>["fields"]>()
237
+ // manual check of runtime structure
238
+ testFieldInfo(i.fields._tag)
239
+ testFieldInfo(i.fields.base)
240
+ testFieldInfo(i.fields.height)
241
+ break
242
+ }
243
+ })
244
+ })
245
+ .pipe(Effect.runPromise))
package/test/form.test.ts DELETED
@@ -1,61 +0,0 @@
1
- import { Effect } from "@effect-app/core"
2
- import { S } from "effect-app"
3
- import type { FieldInfo, NestedFieldInfo } from "../src/form.js"
4
- import { buildFieldInfoFromFields, FieldInfoTag } from "../src/form.js"
5
-
6
- export class NestedSchema extends S.Class<NestedSchema>()({
7
- shallow: S.string,
8
- nested: S.struct({
9
- deep: S.NonEmptyString,
10
- nested: S.struct({
11
- deepest: S.number
12
- })
13
- })
14
- }) {}
15
-
16
- function testFieldInfo<T>(fi: FieldInfo<T>) {
17
- expect(fi).toBeInstanceOf(Object)
18
- expect(fi[FieldInfoTag]).toBe("FieldInfo")
19
- expect(["text", "float", "int"]).toContain(fi.type)
20
- expect(fi.rules).toBeInstanceOf(Array)
21
- fi.rules.forEach((r) => {
22
- expect(r).toBeInstanceOf(Function)
23
- })
24
- expect(fi.metadata).toBeInstanceOf(Object)
25
- expect(fi.metadata.maxLength === void 0 || typeof fi.metadata.maxLength === "number").toBeTruthy()
26
- expect(fi.metadata.minLength === void 0 || typeof fi.metadata.minLength === "number").toBeTruthy()
27
- expect(typeof fi.metadata.required === "boolean").toBeTruthy()
28
- }
29
-
30
- function testNestedFieldInfo(nfi: NestedFieldInfo<any>) {
31
- expect(nfi).toBeInstanceOf(Object)
32
- expect(nfi[FieldInfoTag]).toBe("NestedFieldInfo")
33
-
34
- Object.values(nfi).forEach((i) => {
35
- switch (i[FieldInfoTag]) {
36
- case "FieldInfo":
37
- testFieldInfo(i)
38
- break
39
- case "NestedFieldInfo":
40
- testNestedFieldInfo(i)
41
- break
42
- }
43
- })
44
- }
45
-
46
- it("buildFieldInfo", () =>
47
- Effect
48
- .gen(function*() {
49
- const nestedFieldInfos = buildFieldInfoFromFields(NestedSchema)
50
-
51
- expectTypeOf(nestedFieldInfos).toEqualTypeOf<NestedFieldInfo<NestedSchema>>()
52
- expectTypeOf(nestedFieldInfos.shallow).toEqualTypeOf<FieldInfo<string>>()
53
- expectTypeOf(nestedFieldInfos.nested).toEqualTypeOf<NestedFieldInfo<NestedSchema["nested"]>>()
54
- expectTypeOf(nestedFieldInfos.nested.deep).toEqualTypeOf<FieldInfo<string & S.NonEmptyStringBrand>>()
55
- expectTypeOf(nestedFieldInfos.nested.nested).toEqualTypeOf<NestedFieldInfo<NestedSchema["nested"]["nested"]>>()
56
- expectTypeOf(nestedFieldInfos.nested.nested.deepest).toEqualTypeOf<FieldInfo<number>>()
57
-
58
- // it's a recursive check on actual runtime structure
59
- testNestedFieldInfo(nestedFieldInfos)
60
- })
61
- .pipe(Effect.runPromise))