@effect-app/vue 0.43.0 → 0.45.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,30 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 0.45.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add validation message customization
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+ - @effect-app/vue@0.45.0
13
+
14
+ ## 0.44.0
15
+
16
+ ### Minor Changes
17
+
18
+ - Update packages
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies
23
+ - @effect-app/core@0.52.0
24
+ - @effect-app/prelude@0.52.0
25
+ - @effect-app/schema@0.46.0
26
+ - @effect-app/vue@0.44.0
27
+
3
28
  ## 0.43.0
4
29
 
5
30
  ### Minor Changes
package/_cjs/form.cjs CHANGED
@@ -3,15 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.ValidationMessage = void 0;
6
7
  exports.buildFieldInfoFromProps = buildFieldInfoFromProps;
7
8
  exports.convertIn = convertIn;
8
9
  exports.convertOut = convertOut;
9
10
  exports.convertOutInt = convertOutInt;
11
+ exports.translate = exports.customSchemaErrors = void 0;
10
12
  var tsplus_module_1 = _interopRequireWildcard(require("@effect-app/prelude/utils"));
11
13
  var tsplus_module_2 = _interopRequireWildcard(require("@effect/data/Option"));
12
14
  var tsplus_module_3 = _interopRequireWildcard(require("@effect/data/Either"));
13
15
  var tsplus_module_4 = _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,74 @@ 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;
47
+ class ValidationMessage {
48
+ constructor(message, internal) {
49
+ this.message = message;
50
+ this.internal = internal;
51
+ }
52
+ toString() {
53
+ return this.message;
54
+ }
55
+ }
56
+ exports.ValidationMessage = ValidationMessage;
37
57
  function buildFieldInfo(propOrSchema, fieldKey) {
38
58
  const metadata = (0, _schema.getMetadataFromSchemaOrProp)(propOrSchema);
39
59
  const schema = (0, _schema.isSchema)(propOrSchema) ? propOrSchema : propOrSchema._schema;
40
60
  const parse = _schema.Parser.for(schema);
41
61
  function renderError(e) {
42
62
  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"))})`;
63
+ const custom = customSchemaErrors.value.get(schema);
64
+ return custom ? custom(err, e) : translate.value({
65
+ defaultMessage: "The entered value is not a valid {type}: {message}",
66
+ id: "validation.not_a_valid"
67
+ }, {
68
+ type: translate.value({
69
+ defaultMessage: (0, _vue.capitalize)(fieldKey.toString()),
70
+ id: `fieldNames.${String(fieldKey)}`
71
+ }),
72
+ message: err.slice(err.indexOf("expected")) // TODO: this is not translated.
73
+ });
44
74
  }
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}`];
75
+
76
+ const stringRules = [v => v === null || metadata.minLength === undefined || v.length >= metadata.minLength || translate.value({
77
+ defaultMessage: "The field requires at least {minLength} characters",
78
+ id: "validation.string.minLength"
79
+ }, {
80
+ minLength: metadata.minLength
81
+ }), v => v === null || metadata.maxLength === undefined || v.length <= metadata.maxLength || translate.value({
82
+ defaultMessage: "The field cannot have more than {maxLength} characters",
83
+ id: "validation.string.maxLength"
84
+ }, {
85
+ maxLength: metadata.maxLength
86
+ })];
87
+ const numberRules = [v => v === null || metadata.minimum === undefined || metadata.minimumExclusive && v > metadata.minimum || !metadata.minimumExclusive && v >= metadata.minimum || translate.value({
88
+ defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
89
+ id: "validation.number.min"
90
+ }, {
91
+ isExclusive: metadata.minimumExclusive,
92
+ minimum: metadata.minimum
93
+ }), v => v === null || metadata.maximum === undefined || metadata.maximumExclusive && v > metadata.maximum || !metadata.maximumExclusive && v >= metadata.maximum || translate.value({
94
+ defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
95
+ id: "validation.number.max"
96
+ }, {
97
+ isExclusive: metadata.maximumExclusive,
98
+ maximum: metadata.maximum
99
+ })];
47
100
  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));
48
101
  const rules = [...(metadata.type === "text" ? stringRules : numberRules), parseRule];
49
102
  const info = {
50
103
  type: metadata.type,
51
- rules: [v => !metadata.required || v !== "" || "The field cannot be empty", v => {
104
+ rules: [v => !metadata.required || v !== "" || translate.value({
105
+ defaultMessage: "The field cannot be empty",
106
+ id: "validation.empty"
107
+ }), v => {
52
108
  const converted = convertOutInt(v, metadata.type);
53
109
  for (const r of rules) {
54
110
  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","ValidationMessage","constructor","message","internal","toString","propOrSchema","fieldKey","metadata","getMetadataFromSchemaOrProp","schema","isSchema","parse","Parser","for","renderError","e","err","drawError","custom","value","defaultMessage","id","capitalize","String","slice","indexOf","stringRules","minLength","undefined","length","maxLength","numberRules","minimum","minimumExclusive","isExclusive","maximum","maximumExclusive","parseRule","tsplus_module_4","flow","These","result","_","tsplus_module_3","match","optErr","tsplus_module_2","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,20 @@ 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
+
72
+ export class ValidationMessage {
73
+ constructor(
74
+ public readonly message: string,
75
+ public readonly internal: { type: string; message: string; schema: SchemaAny }
76
+ ) {}
77
+ toString() {
78
+ return this.message
79
+ }
80
+ }
81
+
67
82
  function buildFieldInfo(
68
83
  propOrSchema: AnyProperty | SchemaAny,
69
84
  fieldKey: PropertyKey
@@ -74,11 +89,17 @@ function buildFieldInfo(
74
89
 
75
90
  function renderError(e: any) {
76
91
  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"))})`
92
+ const custom = customSchemaErrors.value.get(schema)
93
+ return custom ? custom(err, e) : translate.value(
94
+ { defaultMessage: "The entered value is not a valid {type}: {message}", id: "validation.not_a_valid" },
95
+ {
96
+ type: translate.value({
97
+ defaultMessage: capitalize(fieldKey.toString()),
98
+ id: `fieldNames.${String(fieldKey)}`
99
+ }),
100
+ message: err.slice(err.indexOf("expected")) // TODO: this is not translated.
101
+ }
102
+ )
82
103
  }
83
104
 
84
105
  const stringRules = [
@@ -86,12 +107,22 @@ function buildFieldInfo(
86
107
  v === null
87
108
  || metadata.minLength === undefined
88
109
  || v.length >= metadata.minLength
89
- || `The field requires at least ${metadata.minLength} characters`,
110
+ || translate.value({
111
+ defaultMessage: "The field requires at least {minLength} characters",
112
+ id: "validation.string.minLength"
113
+ }, {
114
+ minLength: metadata.minLength
115
+ }),
90
116
  (v: string | null) =>
91
117
  v === null
92
118
  || metadata.maxLength === undefined
93
119
  || v.length <= metadata.maxLength
94
- || `The field cannot have more than ${metadata.maxLength} characters`
120
+ || translate.value({
121
+ defaultMessage: "The field cannot have more than {maxLength} characters",
122
+ id: "validation.string.maxLength"
123
+ }, {
124
+ maxLength: metadata.maxLength
125
+ })
95
126
  ]
96
127
 
97
128
  const numberRules = [
@@ -100,13 +131,19 @@ function buildFieldInfo(
100
131
  || metadata.minimum === undefined
101
132
  || metadata.minimumExclusive && v > metadata.minimum
102
133
  || !metadata.minimumExclusive && v >= metadata.minimum
103
- || `The value should be ${metadata.minimumExclusive ? "larger than" : "at least"} ${metadata.minimum}`,
134
+ || translate.value({
135
+ defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
136
+ id: "validation.number.min"
137
+ }, { isExclusive: metadata.minimumExclusive, minimum: metadata.minimum }),
104
138
  (v: number | null) =>
105
139
  v === null
106
140
  || metadata.maximum === undefined
107
141
  || metadata.maximumExclusive && v > metadata.maximum
108
142
  || !metadata.maximumExclusive && v >= metadata.maximum
109
- || `The value should be ${metadata.maximumExclusive ? "smaller than" : "at most"} ${metadata.maximum}`
143
+ || translate.value({
144
+ defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
145
+ id: "validation.number.max"
146
+ }, { isExclusive: metadata.maximumExclusive, maximum: metadata.maximum })
110
147
  ]
111
148
 
112
149
  const parseRule = flow(
@@ -133,7 +170,10 @@ function buildFieldInfo(
133
170
  const info = {
134
171
  type: metadata.type,
135
172
  rules: [
136
- (v: string) => !metadata.required || v !== "" || "The field cannot be empty",
173
+ (v: string) =>
174
+ !metadata.required
175
+ || v !== ""
176
+ || translate.value({ defaultMessage: "The field cannot be empty", id: "validation.empty" }),
137
177
  (v: string) => {
138
178
  const converted = convertOutInt(v, metadata.type)
139
179
 
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,24 @@ 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>>;
31
+ export declare class ValidationMessage {
32
+ readonly message: string;
33
+ readonly internal: {
34
+ type: string;
35
+ message: string;
36
+ schema: SchemaAny;
37
+ };
38
+ constructor(message: string, internal: {
39
+ type: string;
40
+ message: string;
41
+ schema: SchemaAny;
42
+ });
43
+ toString(): string;
44
+ }
26
45
  export {};
27
46
  //# 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;AAEzG,qBAAa,iBAAiB;aAEV,OAAO,EAAE,MAAM;aACf,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE;gBAD9D,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE;IAEhF,QAAQ;CAGT"}
package/dist/form.js CHANGED
@@ -3,7 +3,8 @@ import * as tsplus_module_2 from "@effect/data/Option";
3
3
  import * as tsplus_module_3 from "@effect/data/Either";
4
4
  import * as tsplus_module_4 from "@effect-app/core/Function";
5
5
  import { drawError, getMetadataFromSchemaOrProp, isSchema, Parser, These } from "@effect-app/prelude/schema";
6
- import { capitalize } from "vue";
6
+ import { createIntl } from "@formatjs/intl";
7
+ import { capitalize, ref } from "vue";
7
8
  export function convertIn(v, type) {
8
9
  return v === null ? "" : type === "text" ? v : `${v}`;
9
10
  }
@@ -24,35 +25,70 @@ export function buildFieldInfoFromProps(props) {
24
25
  const f = Symbol();
25
26
  class PhantomTypeParameter {
26
27
  }
28
+ const defaultIntl = createIntl({ locale: "en" });
29
+ export const translate = ref(defaultIntl.formatMessage.bind(defaultIntl));
30
+ export const customSchemaErrors = ref(new Map());
31
+ export class ValidationMessage {
32
+ constructor(message, internal) {
33
+ this.message = message;
34
+ this.internal = internal;
35
+ }
36
+ toString() {
37
+ return this.message;
38
+ }
39
+ }
27
40
  function buildFieldInfo(propOrSchema, fieldKey) {
28
41
  const metadata = getMetadataFromSchemaOrProp(propOrSchema);
29
42
  const schema = isSchema(propOrSchema) ? propOrSchema : propOrSchema._schema;
30
43
  const parse = Parser.for(schema);
31
44
  function renderError(e) {
32
45
  const err = drawError(e);
33
- return `The entered value is not a valid ${capitalize(fieldKey.toString())} (${err.slice(err.indexOf("expected"))})`;
46
+ const custom = customSchemaErrors.value.get(schema);
47
+ return custom ? custom(err, e) : translate.value({ defaultMessage: "The entered value is not a valid {type}: {message}", id: "validation.not_a_valid" }, {
48
+ type: translate.value({
49
+ defaultMessage: capitalize(fieldKey.toString()),
50
+ id: `fieldNames.${String(fieldKey)}`
51
+ }),
52
+ message: err.slice(err.indexOf("expected")) // TODO: this is not translated.
53
+ });
34
54
  }
35
55
  const stringRules = [
36
56
  (v) => v === null
37
57
  || metadata.minLength === undefined
38
58
  || v.length >= metadata.minLength
39
- || `The field requires at least ${metadata.minLength} characters`,
59
+ || translate.value({
60
+ defaultMessage: "The field requires at least {minLength} characters",
61
+ id: "validation.string.minLength"
62
+ }, {
63
+ minLength: metadata.minLength
64
+ }),
40
65
  (v) => v === null
41
66
  || metadata.maxLength === undefined
42
67
  || v.length <= metadata.maxLength
43
- || `The field cannot have more than ${metadata.maxLength} characters`
68
+ || translate.value({
69
+ defaultMessage: "The field cannot have more than {maxLength} characters",
70
+ id: "validation.string.maxLength"
71
+ }, {
72
+ maxLength: metadata.maxLength
73
+ })
44
74
  ];
45
75
  const numberRules = [
46
76
  (v) => v === null
47
77
  || metadata.minimum === undefined
48
78
  || metadata.minimumExclusive && v > metadata.minimum
49
79
  || !metadata.minimumExclusive && v >= metadata.minimum
50
- || `The value should be ${metadata.minimumExclusive ? "larger than" : "at least"} ${metadata.minimum}`,
80
+ || translate.value({
81
+ defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
82
+ id: "validation.number.min"
83
+ }, { isExclusive: metadata.minimumExclusive, minimum: metadata.minimum }),
51
84
  (v) => v === null
52
85
  || metadata.maximum === undefined
53
86
  || metadata.maximumExclusive && v > metadata.maximum
54
87
  || !metadata.maximumExclusive && v >= metadata.maximum
55
- || `The value should be ${metadata.maximumExclusive ? "smaller than" : "at most"} ${metadata.maximum}`
88
+ || translate.value({
89
+ defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
90
+ id: "validation.number.max"
91
+ }, { isExclusive: metadata.maximumExclusive, maximum: metadata.maximum })
56
92
  ];
57
93
  const parseRule = tsplus_module_4.flow(parse, These.result, (_) => tsplus_module_3.match(_, renderError, ([_, optErr]) => tsplus_module_2.isSome(optErr)
58
94
  ? renderError(optErr.value)
@@ -66,7 +102,9 @@ function buildFieldInfo(propOrSchema, fieldKey) {
66
102
  const info = {
67
103
  type: metadata.type,
68
104
  rules: [
69
- (v) => !metadata.required || v !== "" || "The field cannot be empty",
105
+ (v) => !metadata.required
106
+ || v !== ""
107
+ || translate.value({ defaultMessage: "The field cannot be empty", id: "validation.empty" }),
70
108
  (v) => {
71
109
  const converted = convertOutInt(v, metadata.type);
72
110
  for (const r of rules) {
@@ -82,4 +120,4 @@ function buildFieldInfo(propOrSchema, fieldKey) {
82
120
  };
83
121
  return info;
84
122
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBUzVHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFaEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxDQUFnQixFQUFFLElBQStCO0lBQ3pFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUE7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsQ0FBUyxFQUFFLElBQStCO0lBQ3RFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0YsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxDQUFTLEVBQUUsR0FBZ0MsRUFBRSxJQUErQjtJQUNyRyxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7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
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBUzVHLE9BQU8sRUFBRSxVQUFVLEVBQXVCLE1BQU0sZ0JBQWdCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFFckMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxDQUFnQixFQUFFLElBQStCO0lBQ3pFLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUE7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsQ0FBUyxFQUFFLElBQStCO0lBQ3RFLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0YsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxDQUFTLEVBQUUsR0FBZ0MsRUFBRSxJQUErQjtJQUNyRyxP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
package/package.json CHANGED
@@ -1,29 +1,30 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "0.43.0",
3
+ "version": "0.45.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@effect/data": "^0.12.2",
8
- "@effect/io": "^0.25.7",
8
+ "@effect/io": "^0.25.8",
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/prelude": "0.51.0",
14
- "@effect-app/vue": "0.43.0",
15
- "@effect-app/schema": "0.45.0",
16
- "@effect-app/core": "0.51.0"
14
+ "@effect-app/prelude": "0.52.0",
15
+ "@effect-app/vue": "0.45.0",
16
+ "@effect-app/schema": "0.46.0",
17
+ "@effect-app/core": "0.52.0"
17
18
  },
18
19
  "devDependencies": {
19
20
  "@rollup/pluginutils": "^5.0.2",
20
- "@babel/cli": "^7.21.0",
21
- "@types/node": "~18.16.1",
21
+ "@babel/cli": "^7.21.5",
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.2",
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
  },