@effect-app/vue 0.44.0 → 0.45.1

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,24 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 0.45.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Improve validation
8
+ - Updated dependencies
9
+ - @effect-app/vue@0.45.1
10
+
11
+ ## 0.45.0
12
+
13
+ ### Minor Changes
14
+
15
+ - Add validation message customization
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies
20
+ - @effect-app/vue@0.45.0
21
+
3
22
  ## 0.44.0
4
23
 
5
24
  ### Minor Changes
package/_cjs/form.cjs CHANGED
@@ -7,11 +7,14 @@ exports.buildFieldInfoFromProps = buildFieldInfoFromProps;
7
7
  exports.convertIn = convertIn;
8
8
  exports.convertOut = convertOut;
9
9
  exports.convertOutInt = convertOutInt;
10
+ exports.translate = exports.customSchemaErrors = void 0;
10
11
  var tsplus_module_1 = _interopRequireWildcard(require("@effect-app/prelude/utils"));
11
- var tsplus_module_2 = _interopRequireWildcard(require("@effect/data/Option"));
12
- var tsplus_module_3 = _interopRequireWildcard(require("@effect/data/Either"));
13
- var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Function"));
12
+ var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/prelude"));
13
+ var tsplus_module_3 = _interopRequireWildcard(require("@effect/data/Option"));
14
+ var tsplus_module_4 = _interopRequireWildcard(require("@effect/data/Either"));
15
+ var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/Function"));
14
16
  var _schema = require("@effect-app/prelude/schema");
17
+ var _intl = require("@formatjs/intl");
15
18
  var _vue = require("vue");
16
19
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -34,21 +37,65 @@ function buildFieldInfoFromProps(props) {
34
37
  }
35
38
  const f = Symbol();
36
39
  class PhantomTypeParameter {}
40
+ const defaultIntl = (0, _intl.createIntl)({
41
+ locale: "en"
42
+ });
43
+ const translate = (0, _vue.ref)(defaultIntl.formatMessage.bind(defaultIntl));
44
+ exports.translate = translate;
45
+ const customSchemaErrors = (0, _vue.ref)(new Map());
46
+ exports.customSchemaErrors = customSchemaErrors;
37
47
  function buildFieldInfo(propOrSchema, fieldKey) {
38
48
  const metadata = (0, _schema.getMetadataFromSchemaOrProp)(propOrSchema);
39
49
  const schema = (0, _schema.isSchema)(propOrSchema) ? propOrSchema : propOrSchema._schema;
40
50
  const parse = _schema.Parser.for(schema);
51
+ const nullable = tsplus_module_2.Schema.findAnnotation(schema, tsplus_module_2.Schema.nullableIdentifier);
41
52
  function renderError(e) {
42
53
  const err = (0, _schema.drawError)(e);
43
- return `The entered value is not a valid ${(0, _vue.capitalize)(fieldKey.toString())} (${err.slice(err.indexOf("expected"))})`;
54
+ const custom = customSchemaErrors.value.get(schema) ?? (nullable?.self ? customSchemaErrors.value.get(nullable.self) : undefined);
55
+ return custom ? custom(err, e) : translate.value({
56
+ defaultMessage: "The entered value is not a valid {type}: {message}",
57
+ id: "validation.not_a_valid"
58
+ }, {
59
+ type: translate.value({
60
+ defaultMessage: (0, _vue.capitalize)(fieldKey.toString()),
61
+ id: `fieldNames.${String(fieldKey)}`
62
+ }),
63
+ message: err.slice(err.indexOf("expected")) // TODO: this is not translated.
64
+ });
44
65
  }
45
- const stringRules = [v => v === null || metadata.minLength === undefined || v.length >= metadata.minLength || `The field requires at least ${metadata.minLength} characters`, v => v === null || metadata.maxLength === undefined || v.length <= metadata.maxLength || `The field cannot have more than ${metadata.maxLength} characters`];
46
- const numberRules = [v => v === null || metadata.minimum === undefined || metadata.minimumExclusive && v > metadata.minimum || !metadata.minimumExclusive && v >= metadata.minimum || `The value should be ${metadata.minimumExclusive ? "larger than" : "at least"} ${metadata.minimum}`, v => v === null || metadata.maximum === undefined || metadata.maximumExclusive && v > metadata.maximum || !metadata.maximumExclusive && v >= metadata.maximum || `The value should be ${metadata.maximumExclusive ? "smaller than" : "at most"} ${metadata.maximum}`];
47
- const parseRule = tsplus_module_4.flow(parse, _schema.These.result, _ => tsplus_module_3.match(_, renderError, ([_, optErr]) => tsplus_module_2.isSome(optErr) ? renderError(optErr.value) : true));
66
+
67
+ const stringRules = [v => v === null || metadata.minLength === undefined || v.length >= metadata.minLength || translate.value({
68
+ defaultMessage: "The field requires at least {minLength} characters",
69
+ id: "validation.string.minLength"
70
+ }, {
71
+ minLength: metadata.minLength
72
+ }), v => v === null || metadata.maxLength === undefined || v.length <= metadata.maxLength || translate.value({
73
+ defaultMessage: "The field cannot have more than {maxLength} characters",
74
+ id: "validation.string.maxLength"
75
+ }, {
76
+ maxLength: metadata.maxLength
77
+ })];
78
+ const numberRules = [v => v === null || metadata.minimum === undefined || metadata.minimumExclusive && v > metadata.minimum || !metadata.minimumExclusive && v >= metadata.minimum || translate.value({
79
+ defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
80
+ id: "validation.number.min"
81
+ }, {
82
+ isExclusive: metadata.minimumExclusive,
83
+ minimum: metadata.minimum
84
+ }), v => v === null || metadata.maximum === undefined || metadata.maximumExclusive && v > metadata.maximum || !metadata.maximumExclusive && v >= metadata.maximum || translate.value({
85
+ defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
86
+ id: "validation.number.max"
87
+ }, {
88
+ isExclusive: metadata.maximumExclusive,
89
+ maximum: metadata.maximum
90
+ })];
91
+ const parseRule = tsplus_module_5.flow(parse, _schema.These.result, _ => tsplus_module_4.match(_, renderError, ([_, optErr]) => tsplus_module_3.isSome(optErr) ? renderError(optErr.value) : true));
48
92
  const rules = [...(metadata.type === "text" ? stringRules : numberRules), parseRule];
49
93
  const info = {
50
94
  type: metadata.type,
51
- rules: [v => !metadata.required || v !== "" || "The field cannot be empty", v => {
95
+ rules: [v => !metadata.required || v !== "" || translate.value({
96
+ defaultMessage: "The field cannot be empty",
97
+ id: "validation.empty"
98
+ }), v => {
52
99
  const converted = convertOutInt(v, metadata.type);
53
100
  for (const r of rules) {
54
101
  const res = r(converted);
package/_cjs/form.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"form.cjs","names":["_schema","require","_vue","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","convertIn","v","type","convertOutInt","trim","c","parseFloat","parseInt","convertOut","buildFieldInfoFromProps","props","tsplus_module_1","RecordKeys","object$","reduce","prev","cur","buildFieldInfo","f","Symbol","PhantomTypeParameter","propOrSchema","fieldKey","metadata","getMetadataFromSchemaOrProp","schema","isSchema","parse","Parser","for","renderError","e","err","drawError","capitalize","toString","slice","indexOf","stringRules","minLength","undefined","length","maxLength","numberRules","minimum","minimumExclusive","maximum","maximumExclusive","parseRule","tsplus_module_4","flow","These","result","_","tsplus_module_3","match","optErr","tsplus_module_2","isSome","value","rules","info","required","converted","r","res"],"sources":["../_src/form.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"form.cjs","names":["_schema","require","_intl","_vue","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","convertIn","v","type","convertOutInt","trim","c","parseFloat","parseInt","convertOut","buildFieldInfoFromProps","props","tsplus_module_1","RecordKeys","object$","reduce","prev","cur","buildFieldInfo","f","Symbol","PhantomTypeParameter","defaultIntl","createIntl","locale","translate","ref","formatMessage","bind","exports","customSchemaErrors","Map","propOrSchema","fieldKey","metadata","getMetadataFromSchemaOrProp","schema","isSchema","parse","Parser","for","nullable","tsplus_module_2","Schema","findAnnotation","nullableIdentifier","renderError","e","err","drawError","custom","value","self","undefined","defaultMessage","id","capitalize","toString","String","message","slice","indexOf","stringRules","minLength","length","maxLength","numberRules","minimum","minimumExclusive","isExclusive","maximum","maximumExclusive","parseRule","tsplus_module_5","flow","These","result","_","tsplus_module_4","match","optErr","tsplus_module_3","isSome","rules","info","required","converted","r","res"],"sources":["../_src/form.ts"],"sourcesContent":[null],"mappings":"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"}
package/_src/form.ts CHANGED
@@ -7,7 +7,8 @@ import type {
7
7
  PropertyRecord,
8
8
  SchemaAny
9
9
  } from "@effect-app/prelude/schema"
10
- import { capitalize } from "vue"
10
+ import { createIntl, type IntlFormatters } from "@formatjs/intl"
11
+ import { capitalize, ref } from "vue"
11
12
 
12
13
  export function convertIn(v: string | null, type?: "text" | "float" | "int") {
13
14
  return v === null ? "" : type === "text" ? v : `${v}`
@@ -64,6 +65,10 @@ export interface FieldInfo<Tin, Tout> extends PhantomTypeParameter<typeof f, { i
64
65
  type GetSchemaFromProp<T> = T extends Property<infer S, any, any, any> ? S
65
66
  : never
66
67
 
68
+ const defaultIntl = createIntl({ locale: "en" })
69
+ export const translate = ref<IntlFormatters["formatMessage"]>(defaultIntl.formatMessage.bind(defaultIntl))
70
+ export const customSchemaErrors = ref<Map<SchemaAny, (message: string, e: unknown) => string>>(new Map())
71
+
67
72
  function buildFieldInfo(
68
73
  propOrSchema: AnyProperty | SchemaAny,
69
74
  fieldKey: PropertyKey
@@ -72,13 +77,22 @@ function buildFieldInfo(
72
77
  const schema = isSchema(propOrSchema) ? propOrSchema : propOrSchema._schema
73
78
  const parse = Parser.for(schema)
74
79
 
80
+ const nullable = Schema.findAnnotation(schema, Schema.nullableIdentifier)
81
+
75
82
  function renderError(e: any) {
76
83
  const err = drawError(e)
77
- return `The entered value is not a valid ${
78
- capitalize(
79
- fieldKey.toString()
80
- )
81
- } (${err.slice(err.indexOf("expected"))})`
84
+ const custom = customSchemaErrors.value.get(schema)
85
+ ?? (nullable?.self ? customSchemaErrors.value.get(nullable.self) : undefined)
86
+ return custom ? custom(err, e) : translate.value(
87
+ { defaultMessage: "The entered value is not a valid {type}: {message}", id: "validation.not_a_valid" },
88
+ {
89
+ type: translate.value({
90
+ defaultMessage: capitalize(fieldKey.toString()),
91
+ id: `fieldNames.${String(fieldKey)}`
92
+ }),
93
+ message: err.slice(err.indexOf("expected")) // TODO: this is not translated.
94
+ }
95
+ )
82
96
  }
83
97
 
84
98
  const stringRules = [
@@ -86,12 +100,22 @@ function buildFieldInfo(
86
100
  v === null
87
101
  || metadata.minLength === undefined
88
102
  || v.length >= metadata.minLength
89
- || `The field requires at least ${metadata.minLength} characters`,
103
+ || translate.value({
104
+ defaultMessage: "The field requires at least {minLength} characters",
105
+ id: "validation.string.minLength"
106
+ }, {
107
+ minLength: metadata.minLength
108
+ }),
90
109
  (v: string | null) =>
91
110
  v === null
92
111
  || metadata.maxLength === undefined
93
112
  || v.length <= metadata.maxLength
94
- || `The field cannot have more than ${metadata.maxLength} characters`
113
+ || translate.value({
114
+ defaultMessage: "The field cannot have more than {maxLength} characters",
115
+ id: "validation.string.maxLength"
116
+ }, {
117
+ maxLength: metadata.maxLength
118
+ })
95
119
  ]
96
120
 
97
121
  const numberRules = [
@@ -100,13 +124,19 @@ function buildFieldInfo(
100
124
  || metadata.minimum === undefined
101
125
  || metadata.minimumExclusive && v > metadata.minimum
102
126
  || !metadata.minimumExclusive && v >= metadata.minimum
103
- || `The value should be ${metadata.minimumExclusive ? "larger than" : "at least"} ${metadata.minimum}`,
127
+ || translate.value({
128
+ defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
129
+ id: "validation.number.min"
130
+ }, { isExclusive: metadata.minimumExclusive, minimum: metadata.minimum }),
104
131
  (v: number | null) =>
105
132
  v === null
106
133
  || metadata.maximum === undefined
107
134
  || metadata.maximumExclusive && v > metadata.maximum
108
135
  || !metadata.maximumExclusive && v >= metadata.maximum
109
- || `The value should be ${metadata.maximumExclusive ? "smaller than" : "at most"} ${metadata.maximum}`
136
+ || translate.value({
137
+ defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
138
+ id: "validation.number.max"
139
+ }, { isExclusive: metadata.maximumExclusive, maximum: metadata.maximum })
110
140
  ]
111
141
 
112
142
  const parseRule = flow(
@@ -133,7 +163,10 @@ function buildFieldInfo(
133
163
  const info = {
134
164
  type: metadata.type,
135
165
  rules: [
136
- (v: string) => !metadata.required || v !== "" || "The field cannot be empty",
166
+ (v: string) =>
167
+ !metadata.required
168
+ || v !== ""
169
+ || translate.value({ defaultMessage: "The field cannot be empty", id: "validation.empty" }),
137
170
  (v: string) => {
138
171
  const converted = convertOutInt(v, metadata.type)
139
172
 
package/dist/form.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { EncodedOf, ParsedShapeOfCustom, Property, PropertyRecord } from "@effect-app/prelude/schema";
1
+ import type { EncodedOf, ParsedShapeOfCustom, Property, PropertyRecord, SchemaAny } from "@effect-app/prelude/schema";
2
2
  export declare function convertIn(v: string | null, type?: "text" | "float" | "int"): string;
3
3
  export declare function convertOutInt(v: string, type?: "text" | "float" | "int"): string | number | null;
4
4
  export declare function convertOut(v: string, set: (v: unknown | null) => void, type?: "text" | "float" | "int"): void;
@@ -23,5 +23,10 @@ export interface FieldInfo<Tin, Tout> extends PhantomTypeParameter<typeof f, {
23
23
  type: "text" | "float" | "int";
24
24
  }
25
25
  type GetSchemaFromProp<T> = T extends Property<infer S, any, any, any> ? S : never;
26
+ export declare const translate: import("vue").Ref<{
27
+ (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;
28
+ <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)[];
29
+ }>;
30
+ export declare const customSchemaErrors: import("vue").Ref<Map<SchemaAny, (message: string, e: unknown) => string>>;
26
31
  export {};
27
32
  //# sourceMappingURL=form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../_src/form.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,cAAc,EAEf,MAAM,4BAA4B,CAAA;AAGnC,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,UAE1E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,0BAIvE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,QAEtG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,cAAc,EAClE,KAAK,EAAE,KAAK,gIAcb;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,CAAC,eAAW,CAAA;AAClB,uBAAe,oBAAoB,CACjC,UAAU,SAAS,MAAM,GAAG,EAC5B,gBAAgB;IAEhB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC7B,QAAQ,EAAE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,gBAAgB,KAAK,gBAAgB;KAC1E,CAAA;CACF;AACD,MAAM,WAAW,SAAS,CAAC,GAAG,EAAE,IAAI,CAAE,SAAQ,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAAE,EAAE,EAAE,GAAG,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;IAClG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1C,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;CAC/B;AAED,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GACtE,KAAK,CAAA"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../_src/form.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,SAAS,EACV,MAAM,4BAA4B,CAAA;AAInC,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,UAE1E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,0BAIvE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,QAEtG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,cAAc,EAClE,KAAK,EAAE,KAAK,gIAcb;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,CAAC,eAAW,CAAA;AAClB,uBAAe,oBAAoB,CACjC,UAAU,SAAS,MAAM,GAAG,EAC5B,gBAAgB;IAEhB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC7B,QAAQ,EAAE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,gBAAgB,KAAK,gBAAgB;KAC1E,CAAA;CACF;AACD,MAAM,WAAW,SAAS,CAAC,GAAG,EAAE,IAAI,CAAE,SAAQ,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAAE,EAAE,EAAE,GAAG,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;IAClG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1C,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;CAC/B;AAED,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GACtE,KAAK,CAAA;AAGT,eAAO,MAAM,SAAS;;;EAAoF,CAAA;AAC1G,eAAO,MAAM,kBAAkB,6CAAgC,MAAM,KAAK,OAAO,KAAK,MAAM,EAAa,CAAA"}
package/dist/form.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import * as tsplus_module_1 from "@effect-app/prelude/utils";
2
- import * as tsplus_module_2 from "@effect/data/Option";
3
- import * as tsplus_module_3 from "@effect/data/Either";
4
- import * as tsplus_module_4 from "@effect-app/core/Function";
2
+ import * as tsplus_module_2 from "@effect-app/prelude";
3
+ import * as tsplus_module_3 from "@effect/data/Option";
4
+ import * as tsplus_module_4 from "@effect/data/Either";
5
+ import * as tsplus_module_5 from "@effect-app/core/Function";
5
6
  import { drawError, getMetadataFromSchemaOrProp, isSchema, Parser, These } from "@effect-app/prelude/schema";
6
- import { capitalize } from "vue";
7
+ import { createIntl } from "@formatjs/intl";
8
+ import { capitalize, ref } from "vue";
7
9
  export function convertIn(v, type) {
8
10
  return v === null ? "" : type === "text" ? v : `${v}`;
9
11
  }
@@ -24,37 +26,65 @@ export function buildFieldInfoFromProps(props) {
24
26
  const f = Symbol();
25
27
  class PhantomTypeParameter {
26
28
  }
29
+ const defaultIntl = createIntl({ locale: "en" });
30
+ export const translate = ref(defaultIntl.formatMessage.bind(defaultIntl));
31
+ export const customSchemaErrors = ref(new Map());
27
32
  function buildFieldInfo(propOrSchema, fieldKey) {
28
33
  const metadata = getMetadataFromSchemaOrProp(propOrSchema);
29
34
  const schema = isSchema(propOrSchema) ? propOrSchema : propOrSchema._schema;
30
35
  const parse = Parser.for(schema);
36
+ const nullable = tsplus_module_2.Schema.findAnnotation(schema, tsplus_module_2.Schema.nullableIdentifier);
31
37
  function renderError(e) {
32
38
  const err = drawError(e);
33
- return `The entered value is not a valid ${capitalize(fieldKey.toString())} (${err.slice(err.indexOf("expected"))})`;
39
+ const custom = customSchemaErrors.value.get(schema)
40
+ ?? (nullable?.self ? customSchemaErrors.value.get(nullable.self) : undefined);
41
+ return custom ? custom(err, e) : translate.value({ defaultMessage: "The entered value is not a valid {type}: {message}", id: "validation.not_a_valid" }, {
42
+ type: translate.value({
43
+ defaultMessage: capitalize(fieldKey.toString()),
44
+ id: `fieldNames.${String(fieldKey)}`
45
+ }),
46
+ message: err.slice(err.indexOf("expected")) // TODO: this is not translated.
47
+ });
34
48
  }
35
49
  const stringRules = [
36
50
  (v) => v === null
37
51
  || metadata.minLength === undefined
38
52
  || v.length >= metadata.minLength
39
- || `The field requires at least ${metadata.minLength} characters`,
53
+ || translate.value({
54
+ defaultMessage: "The field requires at least {minLength} characters",
55
+ id: "validation.string.minLength"
56
+ }, {
57
+ minLength: metadata.minLength
58
+ }),
40
59
  (v) => v === null
41
60
  || metadata.maxLength === undefined
42
61
  || v.length <= metadata.maxLength
43
- || `The field cannot have more than ${metadata.maxLength} characters`
62
+ || translate.value({
63
+ defaultMessage: "The field cannot have more than {maxLength} characters",
64
+ id: "validation.string.maxLength"
65
+ }, {
66
+ maxLength: metadata.maxLength
67
+ })
44
68
  ];
45
69
  const numberRules = [
46
70
  (v) => v === null
47
71
  || metadata.minimum === undefined
48
72
  || metadata.minimumExclusive && v > metadata.minimum
49
73
  || !metadata.minimumExclusive && v >= metadata.minimum
50
- || `The value should be ${metadata.minimumExclusive ? "larger than" : "at least"} ${metadata.minimum}`,
74
+ || translate.value({
75
+ defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
76
+ id: "validation.number.min"
77
+ }, { isExclusive: metadata.minimumExclusive, minimum: metadata.minimum }),
51
78
  (v) => v === null
52
79
  || metadata.maximum === undefined
53
80
  || metadata.maximumExclusive && v > metadata.maximum
54
81
  || !metadata.maximumExclusive && v >= metadata.maximum
55
- || `The value should be ${metadata.maximumExclusive ? "smaller than" : "at most"} ${metadata.maximum}`
82
+ || translate.value({
83
+ defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
84
+ id: "validation.number.max"
85
+ }, { isExclusive: metadata.maximumExclusive, maximum: metadata.maximum })
56
86
  ];
57
- const parseRule = tsplus_module_4.flow(parse, These.result, (_) => tsplus_module_3.match(_, renderError, ([_, optErr]) => tsplus_module_2.isSome(optErr)
87
+ const parseRule = tsplus_module_5.flow(parse, These.result, (_) => tsplus_module_4.match(_, renderError, ([_, optErr]) => tsplus_module_3.isSome(optErr)
58
88
  ? renderError(optErr.value)
59
89
  : true));
60
90
  const rules = [
@@ -66,7 +96,9 @@ function buildFieldInfo(propOrSchema, fieldKey) {
66
96
  const info = {
67
97
  type: metadata.type,
68
98
  rules: [
69
- (v) => !metadata.required || v !== "" || "The field cannot be empty",
99
+ (v) => !metadata.required
100
+ || v !== ""
101
+ || translate.value({ defaultMessage: "The field cannot be empty", id: "validation.empty" }),
70
102
  (v) => {
71
103
  const converted = convertOutInt(v, metadata.type);
72
104
  for (const r of rules) {
@@ -82,4 +114,4 @@ function buildFieldInfo(propOrSchema, fieldKey) {
82
114
  };
83
115
  return info;
84
116
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBUzVHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFaEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxDQUFnQixFQUFFLElBQStCO0lBQ3pFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUE7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsQ0FBUyxFQUFFLElBQStCO0lBQ3RFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0YsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxDQUFTLEVBQUUsR0FBZ0MsRUFBRSxJQUErQjtJQUNyRyxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7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
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQVM1RyxPQUFPLEVBQUUsVUFBVSxFQUF1QixNQUFNLGdCQUFnQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBRXJDLE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBZ0IsRUFBRSxJQUErQjtJQUN6RSxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLENBQVMsRUFBRSxJQUErQjtJQUN0RSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9GLE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsQ0FBUyxFQUFFLEdBQWdDLEVBQUUsSUFBK0I7SUFDckcs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
package/package.json CHANGED
@@ -1,29 +1,30 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "0.44.0",
3
+ "version": "0.45.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@effect/data": "^0.12.2",
8
- "@effect/io": "^0.25.8",
8
+ "@effect/io": "^0.25.9",
9
9
  "@fp-ts/optic": "^0.7.0",
10
+ "@formatjs/intl": "^2.7.2",
10
11
  "query-string": "^8.1.0",
11
12
  "swrv": "^1.0.3",
12
13
  "vue": "^3.2.47",
13
- "@effect-app/vue": "0.44.0",
14
- "@effect-app/prelude": "0.52.0",
14
+ "@effect-app/vue": "0.45.1",
15
15
  "@effect-app/core": "0.52.0",
16
+ "@effect-app/prelude": "0.52.0",
16
17
  "@effect-app/schema": "0.46.0"
17
18
  },
18
19
  "devDependencies": {
19
20
  "@rollup/pluginutils": "^5.0.2",
20
21
  "@babel/cli": "^7.21.5",
21
- "@types/node": "~18.16.3",
22
+ "@types/node": "~20.1.0",
22
23
  "json5": "^2.2.3",
23
24
  "ts-node": "^10.9.1",
24
25
  "typescript": "https://cdn.jsdelivr.net/npm/@tsplus/installer@0.0.176/compiler/typescript.tgz",
25
- "vite": "^4.3.4",
26
- "vitest": "^0.30.1",
26
+ "vite": "^4.3.5",
27
+ "vitest": "^0.31.0",
27
28
  "vue": "^3.2.47",
28
29
  "@effect-app/compiler": "0.26.0"
29
30
  },