@effect-app/vue 0.160.1 → 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,19 @@
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
+
3
17
  ## 0.160.1
4
18
 
5
19
  ### Patch 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":";;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAGA,IAAAE,UAAA,GAAAF,OAAA;AAIA,IAAAG,IAAA,GAAAH,OAAA;AAA4C,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAE5C;AACA;AAEM,SAAUW,SAASA,CAACC,CAAgB,EAAEC,IAA+B;EACzE,OAAOD,CAAC,KAAK,IAAI,GAAG,EAAE,GAAGC,IAAI,KAAK,MAAM,GAAGD,CAAC,GAAG,GAAGA,CAAC,EAAE;AACvD;AAEM,SAAUE,aAAaA,CAACF,CAAS,EAAEC,IAA+B;EACtED,CAAC,GAAGA,CAAC,IAAI,IAAI,GAAGA,CAAC,GAAGA,CAAC,CAACG,IAAI,EAAE;EAC5B,MAAMC,CAAC,GAAGJ,CAAC,KAAK,EAAE,GAAG,IAAI,GAAGC,IAAI,KAAK,OAAO,GAAGI,UAAU,CAACL,CAAC,CAAC,GAAGC,IAAI,KAAK,KAAK,GAAGK,QAAQ,CAACN,CAAC,CAAC,GAAGA,CAAC;EAC/F,OAAOI,CAAC;AACV;AAEM,SAAUG,UAAUA,CAACP,CAAS,EAAEF,GAAgC,EAAEG,IAA+B;EACrG,OAAOH,GAAG,CAACI,aAAa,CAACF,CAAC,EAAEC,IAAI,CAAC,CAAC;AACpC;AAEA,MAAMO,CAAC,GAAGC,MAAM,EAAE;AAgClB,SAASC,uBAAuBA,CAC9BC,iBAA0C;EAM1C,MAAMC,MAAM,GAAGC,YAAC,CAACC,IAAI,CAACH,iBAAiB,CAACV,IAAI,CAAC;EAE7C,QAAQW,MAAM,CAACG,GAAG,CAACC,IAAI;IACrB,KAAK,gBAAgB;MAAE;QACrB;QACA;QACA,OAAON,uBAAuB,CAC5B,IAAIG,YAAC,CAACI,GAAG,CAACC,iBAAiB,CACzBP,iBAAiB,CAACQ,IAAI,EACtBP,MAAM,CAACG,GAAG,CAACK,IAAI,EACfT,iBAAiB,CAACU,UAAU,EAC5BV,iBAAiB,CAACW,UAAU,EAC5BX,iBAAiB,CAACY,WAAW,CAC9B,CACF;MACH;IACA,KAAK,aAAa;MAAE;QAClB,OAAOC,wBAAwB,CAC7BZ,MAA6E,CAC9E;MACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;MAAS;QACP,OAAOa,cAAc,CAACd,iBAAiB,CAAC;MAC1C;EACF;AACF;AAEM,SAAUa,wBAAwBA,CACtCZ,MAA8D;EAE9D,MAAMG,GAAG,GAAG,QAAQ,IAAIH,MAAM,IAAIA,MAAM,CAACc,MAAM,GAC1Cb,YAAC,CAACc,MAAM,CAACf,MAAM,CAACc,MAAM,CAA8B,CAACX,GAAG,GACzDH,MAAM,CAACG,GAAG;EACd;EACA;EACA;EACA;EACA;EACA;EAEA,IAAI,CAACF,YAAC,CAACI,GAAG,CAACW,aAAa,CAACb,GAAG,CAAC,EAAE,MAAM,IAAIc,KAAK,CAAC,mBAAmB,CAAC;EACnE,OAAOd,GAAG,CAACe,kBAAkB,CAACC,MAAM,CAClC,CAACC,GAAG,EAAEC,GAAG,KAAI;IACX;IAAED,GAAG,CAACN,MAAc,CAACO,GAAG,CAACd,IAAI,CAAC,GAAGT,uBAAuB,CAACuB,GAAG,CAAC;IAE7D,OAAOD,GAAG;EACZ,CAAC,EACD;IAAEhB,IAAI,EAAE,iBAAiB;IAAEU,MAAM,EAAE;EAAE,CAAyB,CAC/D;AACH;AAQA,MAAeQ,oBAAoB;AASnC,MAAMC,WAAW,GAAG,IAAAC,gBAAU,EAAC;EAAEC,MAAM,EAAE;AAAI,CAAE,CAAC;AAEzC,MAAMC,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,QAAG,EAAkCL,WAAW,CAACM,aAAa,CAACC,IAAI,CAACP,WAAW,CAAC,CAAC;AACnG,MAAMQ,kBAAkB,GAAAJ,OAAA,CAAAI,kBAAA,GAAG,IAAAH,QAAG,EACnC,IAAII,GAAG,EAAE,CACV;AAED,SAASnB,cAAcA,CACrBoB,QAAiC;EAEjC,MAAMC,WAAW,GAAGD,QAAQ,CAAC1B,IAAI;EACjC,MAAMP,MAAM,GAAGC,YAAC,CAACC,IAAI,CAA0B+B,QAAQ,CAAC5C,IAAI,CAAC;EAC7D,MAAM8C,QAAQ,GAAGC,qBAAqB,CAACH,QAAQ,CAAC5C,IAAI,CAAC,EAAC;EACtD,MAAMgD,KAAK,GAAGpC,YAAC,CAACqC,mBAAmB,CAACtC,MAAM,CAAC;EAE3C,MAAMuC,mBAAmB,GAAGtC,YAAC,CAACI,GAAG,CAACmC,OAAO,CAACP,QAAQ,CAAC5C,IAAI,CAAC,KAClD4C,QAAQ,CAAC5C,IAAI,CAACoD,KAAK,CAACC,QAAQ,CAACzC,YAAC,CAAC0C,IAAI,CAACxC,GAAG,CAAC,IAAI8B,QAAQ,CAAC5C,IAAI,CAACoD,KAAK,CAACG,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACzC,IAAI,KAAK,kBAAkB,CAAC,CAAC;EACjH,MAAM0C,QAAQ,GAAGP,mBAAmB,IAAItC,YAAC,CAACI,GAAG,CAACmC,OAAO,CAACP,QAAQ,CAAC5C,IAAI,CAAC,GAChE4C,QAAQ,CAAC5C,IAAI,CAACoD,KAAK,CAACM,MAAM,CAAEF,CAAC,IAAKA,CAAC,KAAK5C,YAAC,CAAC0C,IAAI,CAACxC,GAAG,IAAI0C,CAAC,CAACzC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAE,GACxF6B,QAAQ,CAAC5C,IAAI;EACjB,MAAM2D,EAAE,GAAG/C,YAAC,CAACI,GAAG,CAAC4C,uBAAuB,CAAChB,QAAQ,CAAC5C,IAAI,CAAC;EACvD,MAAM6D,GAAG,GAAGjD,YAAC,CAACI,GAAG,CAAC4C,uBAAuB,CAACH,QAAQ,CAAC;EAEnD,SAASK,WAAWA,CAACnF,CAAa,EAAEoB,CAAU;IAC5C,MAAMgE,GAAG,GAAGpF,CAAC,CAACqF,QAAQ,EAAE;IAExB,MAAMC,MAAM,GAAGvB,kBAAkB,CAACwB,KAAK,CAAChF,GAAG,CAAC0D,QAAQ,CAAC5C,IAAI,CAAC,IACrD0C,kBAAkB,CAACwB,KAAK,CAAChF,GAAG,CAACuE,QAAQ,CAAC,KACrCU,iBAAM,CAACC,MAAM,CAACT,EAAE,CAAC,GAAGjB,kBAAkB,CAACwB,KAAK,CAAChF,GAAG,CAACyE,EAAE,CAACO,KAAK,CAAC,GAAGG,SAAS,CAAC,KACvEF,iBAAM,CAACC,MAAM,CAACP,GAAG,CAAC,GAAGnB,kBAAkB,CAACwB,KAAK,CAAChF,GAAG,CAAC2E,GAAG,CAACK,KAAK,CAAC,GAAGG,SAAS,CAAC;IAE/E,OAAOJ,MAAM,GAAGA,MAAM,CAACF,GAAG,EAAEpF,CAAC,EAAEoB,CAAC,CAAC,GAAGsC,SAAS,CAAC6B,KAAK,CACjD;MAAEI,cAAc,EAAE,oDAAoD;MAAEX,EAAE,EAAE;IAAwB,CAAE,EACtG;MACE3D,IAAI,EAAEqC,SAAS,CAAC6B,KAAK,CAAC;QACpBI,cAAc,EAAE,IAAAC,eAAU,EAAC1B,WAAW,CAACmB,QAAQ,EAAE,CAAC;QAClDL,EAAE,EAAE,cAAca,MAAM,CAAC3B,WAAW,CAAC;OACtC,CAAC;MACF4B,OAAO,EAAE3B,QAAQ,CAAC4B,WAAW,GAAG,WAAW,GAAG5B,QAAQ,CAAC4B,WAAW,GAAGX,GAAG,CAACY,KAAK,CAACZ,GAAG,CAACa,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;KACzG,CACF;EACH;EAEA,MAAMC,WAAW,GAAG,CACjB9E,CAAgB,IACfA,CAAC,KAAK,IAAI,IACP+C,QAAQ,CAACgC,SAAS,KAAKT,SAAS,IAChCtE,CAAC,CAACgF,MAAM,IAAIjC,QAAQ,CAACgC,SAAS,IAC9BzC,SAAS,CAAC6B,KAAK,CAAC;IACjBI,cAAc,EAAE,oDAAoD;IACpEX,EAAE,EAAE;GACL,EAAE;IACDmB,SAAS,EAAEhC,QAAQ,CAACgC;GACrB,CAAC,EACH/E,CAAgB,IACfA,CAAC,KAAK,IAAI,IACP+C,QAAQ,CAACkC,SAAS,KAAKX,SAAS,IAChCtE,CAAC,CAACgF,MAAM,IAAIjC,QAAQ,CAACkC,SAAS,IAC9B3C,SAAS,CAAC6B,KAAK,CAAC;IACjBI,cAAc,EAAE,wDAAwD;IACxEX,EAAE,EAAE;GACL,EAAE;IACDqB,SAAS,EAAElC,QAAQ,CAACkC;GACrB,CAAC,CACL;EAED,MAAMC,WAAW,GAAG,CACjBlF,CAAgB,IACfA,CAAC,KAAK,IAAI,IACN+C,QAAQ,CAACoC,OAAO,KAAKb,SAAS,IAAIvB,QAAQ,CAACqC,gBAAgB,KAAKd,SAAU,IAC3EvB,QAAQ,CAACqC,gBAAgB,KAAKd,SAAS,IAAItE,CAAC,GAAG+C,QAAQ,CAACqC,gBAAgB,IACxErC,QAAQ,CAACoC,OAAO,KAAKb,SAAS,IAAItE,CAAC,IAAI+C,QAAQ,CAACoC,OAAO,IACvD7C,SAAS,CAAC6B,KAAK,CAAC;IACjBI,cAAc,EAAE,0FAA0F;IAC1GX,EAAE,EAAE;GACL,EAAE;IACDyB,WAAW,EAAEtC,QAAQ,CAACqC,gBAAgB,KAAKd,SAAS;IACpDa,OAAO,EAAEpC,QAAQ,CAACqC,gBAAgB,IAAIrC,QAAQ,CAACoC;GAChD,CAAC,EACHnF,CAAgB,IACfA,CAAC,KAAK,IAAI,IACN+C,QAAQ,CAACuC,OAAO,KAAKhB,SAAS,IAAIvB,QAAQ,CAACwC,gBAAgB,KAAKjB,SAAU,IAC3EvB,QAAQ,CAACwC,gBAAgB,KAAKjB,SAAS,IAAItE,CAAC,GAAG+C,QAAQ,CAACwC,gBAAgB,IACxExC,QAAQ,CAACuC,OAAO,KAAKhB,SAAS,IAAItE,CAAC,IAAI+C,QAAQ,CAACuC,OAAO,IACvDhD,SAAS,CAAC6B,KAAK,CAAC;IACjBI,cAAc,EAAE,0FAA0F;IAC1GX,EAAE,EAAE;GACL,EAAE;IACDyB,WAAW,EAAEtC,QAAQ,CAACwC,gBAAgB,KAAKjB,SAAS;IACpDgB,OAAO,EAAEvC,QAAQ,CAACwC,gBAAgB,IAAIxC,QAAQ,CAACuC;GAChD,CAAC,CACL;EAED,MAAME,SAAS,GAAIxF,CAAU,IAC3B,IAAAyF,eAAI,EACFxC,KAAK,CAACjD,CAAC,CAAC,EACR0F,iBAAM,CAACC,KAAK,CAAC;IACXC,MAAM,EAAGnC,CAAC,IAAKM,WAAW,CAACN,CAAC,EAAEzD,CAAC,CAAC;IAChC6F,OAAO,EAAEA,CAAA,KAAM;GAChB,CAAC,CACH;EAGH,MAAMC,KAAK,GAAkB,CAC3B,IAAI/C,QAAQ,CAAC9C,IAAI,KAAK,MAAM,GACxB6E,WAAW,GACXI,WAAW,CAAkB,EACjCM,SAAwB,CACzB;EAED,MAAMO,IAAI,GAAG;IACX9F,IAAI,EAAE8C,QAAQ,CAAC9C,IAAI;IACnB6F,KAAK,EAAE,CACJ9F,CAAS,IACR,CAAC+C,QAAQ,CAACiD,QAAQ,IACfhG,CAAC,KAAK,EAAE,IACRsC,SAAS,CAAC6B,KAAK,CAAC;MAAEI,cAAc,EAAE,2BAA2B;MAAEX,EAAE,EAAE;IAAkB,CAAE,CAAC,EAC5F5D,CAAS,IAAI;MACZ,MAAMiG,SAAS,GAAG/F,aAAa,CAACF,CAAC,EAAE+C,QAAQ,CAAC9C,IAAI,CAAC;MAEjD,KAAK,MAAMnB,CAAC,IAAIgH,KAAK,EAAE;QACrB,MAAMI,GAAG,GAAGpH,CAAC,CAACmH,SAAS,CAAC;QACxB,IAAIC,GAAG,KAAK,IAAI,EAAE;UAChB,OAAOA,GAAG;QACZ;MACF;MAEA,OAAO,IAAI;IACb,CAAC,CACF;IACDnD,QAAQ;IACR/B,IAAI,EAAE;GACP;EAED,OAAO+E,IAAW;AACpB;AAEO,MAAMI,mBAAmB,GAAGA,CAKjCC,CAIC,EACDC,KAAgB,EAChBC,QAAuC,KACrC;EACF,MAAM5E,MAAM,GAAGF,wBAAwB,CAAC4E,CAAC,CAAC,CAAC1E,MAAM;EACjD,MAAMuB,KAAK,GAAGpC,YAAC,CAAC0F,UAAU,CAACH,CAAC,CAAC;EAC7B,MAAMI,OAAO,GAAG,IAAAhE,QAAG,EAAC,KAAK,CAAC;EAC1B,MAAMiE,OAAO,GAAG,IAAAjE,QAAG,EAAC,IAAI,CAAC;EAEzB,MAAMkE,OAAO,GAAOJ,QAA+B,IAAK,MAA8C1H,CAAI,IAAI;IAC5G,MAAME,CAAC,GAAG,MAAMF,CAAC;IACjB,IAAI,CAACE,CAAC,CAAC6H,KAAK,EAAE;IACd,OAAOL,QAAQ,CAACrD,KAAK,CAACoD,KAAK,CAAClC,KAAK,CAAC,CAAC;EACrC,CAAC;EACD,MAAMyC,MAAM,GAAGF,OAAO,CAACJ,QAAQ,CAAC;EAEhC,IAAAO,UAAK,EACHR,KAAK,EACJrG,CAAC,IAAI;IACJ;IACAwG,OAAO,CAACrC,KAAK,GAAG2C,IAAI,CAACC,SAAS,CAAC/G,CAAC,CAAC,KAAK8G,IAAI,CAACC,SAAS,CAACV,KAAK,CAAClC,KAAK,CAAC;EACnE,CAAC,EACD;IAAE6C,IAAI,EAAE;EAAI,CAAE,CACf;EAED,MAAMC,eAAe,GAAGA,CAAA,KAAML,MAAM,CAACM,OAAO,CAACC,OAAO,CAAC;IAAER,KAAK,EAAEF,OAAO,CAACtC;EAAK,CAAE,CAAC,CAAC;EAE/E,OAAO;IAAEzC,MAAM;IAAEkF,MAAM;IAAEK,eAAe;IAAET,OAAO;IAAEC;EAAO,CAAE;AAC9D,CAAC;AAAAlE,OAAA,CAAA4D,mBAAA,GAAAA,mBAAA;AAEK,SAAUnD,qBAAqBA,CACnCjC,GAAc;EAYd,MAAMqG,QAAQ,GAAGvG,YAAC,CAACI,GAAG,CAACmC,OAAO,CAACrC,GAAG,CAAC,IAAIA,GAAG,CAACsC,KAAK,CAACC,QAAQ,CAACzC,YAAC,CAAC0C,IAAI,CAACxC,GAAG,CAAC;EACrE,MAAM2C,QAAQ,GAAG0D,QAAQ,IAAIvG,YAAC,CAACI,GAAG,CAACmC,OAAO,CAACrC,GAAG,CAAC,GAC3CA,GAAG,CAACsC,KAAK,CAACM,MAAM,CAAEF,CAAC,IAAKA,CAAC,KAAK5C,YAAC,CAAC0C,IAAI,CAACxC,GAAG,CAAC,CAAC,CAAC,CAAE,GAC7CA,GAAG;EAEP,IAAIsG,OAAY;EAChB,IAAI;IACFA,OAAO,GAAGhJ,UAAU,CAACyC,IAAI,CAACD,YAAC,CAACC,IAAI,CAAC4C,QAAQ,CAAC,CAAQ;EACpD,CAAC,CAAC,OAAOM,GAAG,EAAE;IACZqD,OAAO,GAAG,EAAE;IACZ;EACF;EACA,OAAOA,OAAO,CAAC,MAAM,CAAC,IAAIA,OAAO,CAAC,MAAM,CAAC,CAACC,UAAU,CAAC,UAAU,CAAC,EAAE;IAChE,MAAM;MAAEC,IAAI,EAAE9D,CAAC;MAAE,GAAG+D;IAAI,CAAE,GAAGH,OAAO;IACpCA,OAAO,GAAG;MAAE,GAAGA,OAAO,CAAC,OAAO,CAAC,CAACA,OAAO,CAAC,MAAM,CAAC,CAACI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;MAAE,GAAGD;IAAI,CAAE;EACrF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAME,QAAQ,GAAGL,OAAO,CAACpH,IAAI,KAAK,QAAQ,IAAIoH,OAAO,CAACpH,IAAI,KAAK,SAAS;EACxE,MAAM0H,KAAK,GAAGN,OAAO,CAACpH,IAAI,KAAK,SAAS;EACxC,OAAO;IACLA,IAAI,EAAE0H,KAAK,GAAG,KAAc,GAAGD,QAAQ,GAAG,OAAgB,GAAG,MAAe;IAC5EvC,OAAO,EAAEkC,OAAO,CAAClC,OAAO;IACxBC,gBAAgB,EAAEiC,OAAO,CAACjC,gBAAgB;IAC1CE,OAAO,EAAE+B,OAAO,CAAC/B,OAAO;IACxBC,gBAAgB,EAAE8B,OAAO,CAAC9B,gBAAgB;IAC1CR,SAAS,EAAEsC,OAAO,CAACtC,SAAS;IAC5BE,SAAS,EAAEoC,OAAO,CAACpC,SAAS;IAC5BN,WAAW,EAAE0C,OAAO,CAAC1C,WAAW;IAChCqB,QAAQ,EAAE,CAACoB;GACZ;AACH","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.1",
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.164.0",
12
- "@effect-app/schema": "0.215.1",
13
- "@effect-app/vue": "0.160.1",
14
- "effect-app": "0.196.1"
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))