@evolu/common 8.2.0 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/Function.d.ts +1 -0
- package/dist/src/Function.d.ts.map +1 -1
- package/dist/src/Http.d.ts +9 -0
- package/dist/src/Http.d.ts.map +1 -1
- package/dist/src/Object.d.ts +1 -0
- package/dist/src/Object.d.ts.map +1 -1
- package/dist/src/RefCount.d.ts +1 -0
- package/dist/src/RefCount.d.ts.map +1 -1
- package/dist/src/Relation.d.ts +2 -0
- package/dist/src/Relation.d.ts.map +1 -1
- package/dist/src/Resource.d.ts +1 -0
- package/dist/src/Resource.d.ts.map +1 -1
- package/dist/src/Result.d.ts +383 -548
- package/dist/src/Result.d.ts.map +1 -1
- package/dist/src/Result.js +296 -46
- package/dist/src/StackTrace.d.ts +1 -0
- package/dist/src/StackTrace.d.ts.map +1 -1
- package/dist/src/Task.d.ts +985 -1069
- package/dist/src/Task.d.ts.map +1 -1
- package/dist/src/Task.js +1007 -156
- package/dist/src/Time.d.ts +1 -0
- package/dist/src/Time.d.ts.map +1 -1
- package/dist/src/Type.d.ts +1285 -734
- package/dist/src/Type.d.ts.map +1 -1
- package/dist/src/Type.js +1057 -193
- package/dist/src/intl/_en.d.ts +126 -0
- package/dist/src/intl/_en.d.ts.map +1 -0
- package/dist/src/intl/_en.js +267 -0
- package/dist/src/intl/ar.d.ts +117 -0
- package/dist/src/intl/ar.d.ts.map +1 -0
- package/dist/src/intl/ar.js +245 -0
- package/dist/src/intl/bn.d.ts +117 -0
- package/dist/src/intl/bn.d.ts.map +1 -0
- package/dist/src/intl/bn.js +258 -0
- package/dist/src/intl/ca.d.ts +117 -0
- package/dist/src/intl/ca.d.ts.map +1 -0
- package/dist/src/intl/ca.js +258 -0
- package/dist/src/intl/cs.d.ts +20 -7
- package/dist/src/intl/cs.d.ts.map +1 -1
- package/dist/src/intl/cs.js +54 -27
- package/dist/src/intl/da.d.ts +117 -0
- package/dist/src/intl/da.d.ts.map +1 -0
- package/dist/src/intl/da.js +258 -0
- package/dist/src/intl/de.d.ts +117 -0
- package/dist/src/intl/de.d.ts.map +1 -0
- package/dist/src/intl/de.js +258 -0
- package/dist/src/intl/el.d.ts +117 -0
- package/dist/src/intl/el.d.ts.map +1 -0
- package/dist/src/intl/el.js +265 -0
- package/dist/src/intl/es.d.ts +117 -0
- package/dist/src/intl/es.d.ts.map +1 -0
- package/dist/src/intl/es.js +258 -0
- package/dist/src/intl/fa.d.ts +117 -0
- package/dist/src/intl/fa.d.ts.map +1 -0
- package/dist/src/intl/fa.js +258 -0
- package/dist/src/intl/fi.d.ts +117 -0
- package/dist/src/intl/fi.d.ts.map +1 -0
- package/dist/src/intl/fi.js +258 -0
- package/dist/src/intl/fil.d.ts +117 -0
- package/dist/src/intl/fil.d.ts.map +1 -0
- package/dist/src/intl/fil.js +258 -0
- package/dist/src/intl/fr.d.ts +117 -0
- package/dist/src/intl/fr.d.ts.map +1 -0
- package/dist/src/intl/fr.js +258 -0
- package/dist/src/intl/he.d.ts +117 -0
- package/dist/src/intl/he.d.ts.map +1 -0
- package/dist/src/intl/he.js +258 -0
- package/dist/src/intl/hi.d.ts +117 -0
- package/dist/src/intl/hi.d.ts.map +1 -0
- package/dist/src/intl/hi.js +258 -0
- package/dist/src/intl/hr.d.ts +117 -0
- package/dist/src/intl/hr.d.ts.map +1 -0
- package/dist/src/intl/hr.js +265 -0
- package/dist/src/intl/hu.d.ts +63 -0
- package/dist/src/intl/hu.d.ts.map +1 -0
- package/dist/src/intl/hu.js +204 -0
- package/dist/src/intl/id.d.ts +117 -0
- package/dist/src/intl/id.d.ts.map +1 -0
- package/dist/src/intl/id.js +258 -0
- package/dist/src/intl/index.d.ts +42 -0
- package/dist/src/intl/index.d.ts.map +1 -1
- package/dist/src/intl/index.js +42 -0
- package/dist/src/intl/it.d.ts +117 -0
- package/dist/src/intl/it.d.ts.map +1 -0
- package/dist/src/intl/it.js +258 -0
- package/dist/src/intl/ja.d.ts +117 -0
- package/dist/src/intl/ja.d.ts.map +1 -0
- package/dist/src/intl/ja.js +258 -0
- package/dist/src/intl/ko.d.ts +117 -0
- package/dist/src/intl/ko.d.ts.map +1 -0
- package/dist/src/intl/ko.js +258 -0
- package/dist/src/intl/ml.d.ts +117 -0
- package/dist/src/intl/ml.d.ts.map +1 -0
- package/dist/src/intl/ml.js +258 -0
- package/dist/src/intl/mr.d.ts +117 -0
- package/dist/src/intl/mr.d.ts.map +1 -0
- package/dist/src/intl/mr.js +258 -0
- package/dist/src/intl/ms.d.ts +117 -0
- package/dist/src/intl/ms.d.ts.map +1 -0
- package/dist/src/intl/ms.js +245 -0
- package/dist/src/intl/nb.d.ts +63 -0
- package/dist/src/intl/nb.d.ts.map +1 -0
- package/dist/src/intl/nb.js +191 -0
- package/dist/src/intl/nl.d.ts +117 -0
- package/dist/src/intl/nl.d.ts.map +1 -0
- package/dist/src/intl/nl.js +258 -0
- package/dist/src/intl/pa.d.ts +117 -0
- package/dist/src/intl/pa.d.ts.map +1 -0
- package/dist/src/intl/pa.js +258 -0
- package/dist/src/intl/pl.d.ts +117 -0
- package/dist/src/intl/pl.d.ts.map +1 -0
- package/dist/src/intl/pl.js +242 -0
- package/dist/src/intl/pt-BR.d.ts +117 -0
- package/dist/src/intl/pt-BR.d.ts.map +1 -0
- package/dist/src/intl/pt-BR.js +258 -0
- package/dist/src/intl/pt.d.ts +117 -0
- package/dist/src/intl/pt.d.ts.map +1 -0
- package/dist/src/intl/pt.js +246 -0
- package/dist/src/intl/ro.d.ts +117 -0
- package/dist/src/intl/ro.d.ts.map +1 -0
- package/dist/src/intl/ro.js +258 -0
- package/dist/src/intl/sk.d.ts +117 -0
- package/dist/src/intl/sk.d.ts.map +1 -0
- package/dist/src/intl/sk.js +244 -0
- package/dist/src/intl/sl.d.ts +117 -0
- package/dist/src/intl/sl.d.ts.map +1 -0
- package/dist/src/intl/sl.js +258 -0
- package/dist/src/intl/sv.d.ts +117 -0
- package/dist/src/intl/sv.d.ts.map +1 -0
- package/dist/src/intl/sv.js +258 -0
- package/dist/src/intl/sw.d.ts +63 -0
- package/dist/src/intl/sw.d.ts.map +1 -0
- package/dist/src/intl/sw.js +191 -0
- package/dist/src/intl/ta.d.ts +117 -0
- package/dist/src/intl/ta.d.ts.map +1 -0
- package/dist/src/intl/ta.js +258 -0
- package/dist/src/intl/te.d.ts +117 -0
- package/dist/src/intl/te.d.ts.map +1 -0
- package/dist/src/intl/te.js +258 -0
- package/dist/src/intl/th.d.ts +117 -0
- package/dist/src/intl/th.d.ts.map +1 -0
- package/dist/src/intl/th.js +258 -0
- package/dist/src/intl/tr.d.ts +117 -0
- package/dist/src/intl/tr.d.ts.map +1 -0
- package/dist/src/intl/tr.js +255 -0
- package/dist/src/intl/uk.d.ts +117 -0
- package/dist/src/intl/uk.d.ts.map +1 -0
- package/dist/src/intl/uk.js +258 -0
- package/dist/src/intl/ur.d.ts +117 -0
- package/dist/src/intl/ur.d.ts.map +1 -0
- package/dist/src/intl/ur.js +245 -0
- package/dist/src/intl/vi.d.ts +117 -0
- package/dist/src/intl/vi.d.ts.map +1 -0
- package/dist/src/intl/vi.js +255 -0
- package/dist/src/intl/zh-CN.d.ts +117 -0
- package/dist/src/intl/zh-CN.d.ts.map +1 -0
- package/dist/src/intl/zh-CN.js +258 -0
- package/dist/src/intl/zh-TW.d.ts +117 -0
- package/dist/src/intl/zh-TW.d.ts.map +1 -0
- package/dist/src/intl/zh-TW.js +258 -0
- package/dist/src/local-first/Owner.d.ts +156 -62
- package/dist/src/local-first/Owner.d.ts.map +1 -1
- package/dist/src/local-first/Owner.js +119 -20
- package/package.json +1 -1
- package/src/Function.ts +2 -0
- package/src/Http.ts +9 -0
- package/src/Object.ts +2 -0
- package/src/RefCount.ts +2 -0
- package/src/Relation.ts +4 -0
- package/src/Resource.ts +2 -0
- package/src/Result.ts +397 -560
- package/src/StackTrace.ts +2 -0
- package/src/Task.ts +1143 -1222
- package/src/Time.ts +2 -0
- package/src/Type.ts +1598 -712
- package/src/intl/_en.ts +497 -0
- package/src/intl/ar.ts +417 -0
- package/src/intl/bn.ts +486 -0
- package/src/intl/ca.ts +488 -0
- package/src/intl/cs.ts +95 -31
- package/src/intl/da.ts +488 -0
- package/src/intl/de.ts +488 -0
- package/src/intl/el.ts +494 -0
- package/src/intl/es.ts +488 -0
- package/src/intl/fa.ts +487 -0
- package/src/intl/fi.ts +487 -0
- package/src/intl/fil.ts +488 -0
- package/src/intl/fr.ts +488 -0
- package/src/intl/he.ts +486 -0
- package/src/intl/hi.ts +487 -0
- package/src/intl/hr.ts +494 -0
- package/src/intl/hu.ts +387 -0
- package/src/intl/id.ts +487 -0
- package/src/intl/index.ts +42 -0
- package/src/intl/it.ts +488 -0
- package/src/intl/ja.ts +488 -0
- package/src/intl/ko.ts +487 -0
- package/src/intl/ml.ts +487 -0
- package/src/intl/mr.ts +487 -0
- package/src/intl/ms.ts +410 -0
- package/src/intl/nb.ts +364 -0
- package/src/intl/nl.ts +488 -0
- package/src/intl/pa.ts +487 -0
- package/src/intl/pl.ts +450 -0
- package/src/intl/pt-BR.ts +487 -0
- package/src/intl/pt.ts +424 -0
- package/src/intl/ro.ts +488 -0
- package/src/intl/sk.ts +412 -0
- package/src/intl/sl.ts +487 -0
- package/src/intl/sv.ts +488 -0
- package/src/intl/sw.ts +324 -0
- package/src/intl/ta.ts +487 -0
- package/src/intl/te.ts +487 -0
- package/src/intl/th.ts +484 -0
- package/src/intl/tr.ts +487 -0
- package/src/intl/uk.ts +488 -0
- package/src/intl/ur.ts +410 -0
- package/src/intl/vi.ts +435 -0
- package/src/intl/zh-CN.ts +482 -0
- package/src/intl/zh-TW.ts +482 -0
- package/src/local-first/Owner.ts +156 -62
package/src/intl/th.ts
ADDED
|
@@ -0,0 +1,484 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ตัวจัดรูปแบบข้อผิดพลาด Evolu Type ภาษาไทย
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { assertNonNullable } from "../Assert.ts";
|
|
8
|
+
import { safelyStringifyUnknownValue } from "../String.ts";
|
|
9
|
+
import type {
|
|
10
|
+
ArrayError,
|
|
11
|
+
Base64UrlError,
|
|
12
|
+
BetweenError,
|
|
13
|
+
CapitalizedError,
|
|
14
|
+
DateIsoError,
|
|
15
|
+
DateIsoFromDateError,
|
|
16
|
+
DecimalStringError,
|
|
17
|
+
DiscriminatedUnionError,
|
|
18
|
+
EvoluTypeError,
|
|
19
|
+
FiniteError,
|
|
20
|
+
GreaterThanError,
|
|
21
|
+
GreaterThanOrEqualToError,
|
|
22
|
+
InstanceOfError,
|
|
23
|
+
Int64Error,
|
|
24
|
+
Int64StringError,
|
|
25
|
+
IntError,
|
|
26
|
+
IdError,
|
|
27
|
+
JsonError,
|
|
28
|
+
JsonValueError,
|
|
29
|
+
LengthError,
|
|
30
|
+
LessThanError,
|
|
31
|
+
LessThanOrEqualToError,
|
|
32
|
+
LiteralError,
|
|
33
|
+
MaxLengthError,
|
|
34
|
+
MinLengthError,
|
|
35
|
+
MnemonicError,
|
|
36
|
+
MultipleOfError,
|
|
37
|
+
NegativeDecimalStringError,
|
|
38
|
+
NegativeError,
|
|
39
|
+
NameError,
|
|
40
|
+
NeverError,
|
|
41
|
+
NonNaNError,
|
|
42
|
+
NonNegativeDecimalStringError,
|
|
43
|
+
NonNegativeError,
|
|
44
|
+
NonPositiveDecimalStringError,
|
|
45
|
+
NonPositiveError,
|
|
46
|
+
ObjectError,
|
|
47
|
+
ObjectNotObjectError,
|
|
48
|
+
ObjectPropertyAccessError,
|
|
49
|
+
ObjectTagError,
|
|
50
|
+
ObjectUnexpectedPrototypeError,
|
|
51
|
+
PositiveDecimalStringError,
|
|
52
|
+
PositiveError,
|
|
53
|
+
RecordError,
|
|
54
|
+
RegexError,
|
|
55
|
+
SetError,
|
|
56
|
+
TableIdError,
|
|
57
|
+
TemplateLiteralError,
|
|
58
|
+
TrimmedError,
|
|
59
|
+
TupleElementsError,
|
|
60
|
+
TupleError,
|
|
61
|
+
TypeError,
|
|
62
|
+
TypeErrorFormatter,
|
|
63
|
+
TypeOfError,
|
|
64
|
+
UInt64Error,
|
|
65
|
+
UnionError,
|
|
66
|
+
} from "../Type.ts";
|
|
67
|
+
|
|
68
|
+
const formatTypeOfError = (
|
|
69
|
+
error: TypeOfError<
|
|
70
|
+
"String" | "Number" | "BigInt" | "Boolean" | "Symbol" | "Function"
|
|
71
|
+
>,
|
|
72
|
+
): string => {
|
|
73
|
+
const typeOf = error.expected.toLowerCase();
|
|
74
|
+
|
|
75
|
+
return `ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่ ${typeOf}`;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const formatPlainObjectRootError = (
|
|
79
|
+
reason:
|
|
80
|
+
ObjectNotObjectError["reason"] | ObjectUnexpectedPrototypeError["reason"],
|
|
81
|
+
): string =>
|
|
82
|
+
reason.kind === "NotObject"
|
|
83
|
+
? `ค่า ${safelyStringifyUnknownValue(reason.value)} ไม่ใช่ออบเจ็กต์`
|
|
84
|
+
: "ค่านี้เป็นออบเจ็กต์ แต่ Object Output ต้องเป็นออบเจ็กต์ธรรมดาหรือมี null prototype";
|
|
85
|
+
|
|
86
|
+
/** จัดรูปแบบ NeverError เป็นภาษาไทย */
|
|
87
|
+
export const formatNeverError: TypeErrorFormatter<NeverError> = (error) =>
|
|
88
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ใช้ไม่ได้กับชนิด Never`;
|
|
89
|
+
|
|
90
|
+
/** จัดรูปแบบ String TypeOfError เป็นภาษาไทย */
|
|
91
|
+
export const formatStringError: TypeErrorFormatter<TypeOfError<"String">> =
|
|
92
|
+
formatTypeOfError;
|
|
93
|
+
|
|
94
|
+
/** จัดรูปแบบ TemplateLiteralError เป็นภาษาไทย */
|
|
95
|
+
export const formatTemplateLiteralError: TypeErrorFormatter<
|
|
96
|
+
TemplateLiteralError
|
|
97
|
+
> = (error) =>
|
|
98
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ตรงกับ template literal`;
|
|
99
|
+
|
|
100
|
+
/** จัดรูปแบบ Number TypeOfError เป็นภาษาไทย */
|
|
101
|
+
export const formatNumberError: TypeErrorFormatter<TypeOfError<"Number">> =
|
|
102
|
+
formatTypeOfError;
|
|
103
|
+
|
|
104
|
+
/** จัดรูปแบบ BigInt TypeOfError เป็นภาษาไทย */
|
|
105
|
+
export const formatBigIntError: TypeErrorFormatter<TypeOfError<"BigInt">> =
|
|
106
|
+
formatTypeOfError;
|
|
107
|
+
|
|
108
|
+
/** จัดรูปแบบ Boolean TypeOfError เป็นภาษาไทย */
|
|
109
|
+
export const formatBooleanError: TypeErrorFormatter<TypeOfError<"Boolean">> =
|
|
110
|
+
formatTypeOfError;
|
|
111
|
+
|
|
112
|
+
/** จัดรูปแบบ Symbol TypeOfError เป็นภาษาไทย */
|
|
113
|
+
export const formatSymbolError: TypeErrorFormatter<TypeOfError<"Symbol">> =
|
|
114
|
+
formatTypeOfError;
|
|
115
|
+
|
|
116
|
+
/** จัดรูปแบบ Function TypeOfError เป็นภาษาไทย */
|
|
117
|
+
export const formatFunctionError: TypeErrorFormatter<TypeOfError<"Function">> =
|
|
118
|
+
formatTypeOfError;
|
|
119
|
+
|
|
120
|
+
/** จัดรูปแบบ EvoluTypeError เป็นภาษาไทย */
|
|
121
|
+
export const formatEvoluTypeError: TypeErrorFormatter<EvoluTypeError> = (
|
|
122
|
+
error,
|
|
123
|
+
) => `ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่ Evolu Type`;
|
|
124
|
+
|
|
125
|
+
/** จัดรูปแบบ ObjectTagError เป็นภาษาไทย */
|
|
126
|
+
export const formatObjectTagError: TypeErrorFormatter<ObjectTagError> = (
|
|
127
|
+
error,
|
|
128
|
+
) =>
|
|
129
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่มี object tag ที่คาดไว้ ${safelyStringifyUnknownValue(error.expected)}`;
|
|
130
|
+
|
|
131
|
+
/** จัดรูปแบบ InstanceOfError เป็นภาษาไทย */
|
|
132
|
+
export const formatInstanceOfError: TypeErrorFormatter<InstanceOfError> = (
|
|
133
|
+
error,
|
|
134
|
+
) =>
|
|
135
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่อินสแตนซ์ของ ${error.constructorName}`;
|
|
136
|
+
|
|
137
|
+
/** จัดรูปแบบ LiteralError เป็นภาษาไทย */
|
|
138
|
+
export const formatLiteralError: TypeErrorFormatter<LiteralError> = (error) =>
|
|
139
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่เท่ากับลิเทอรัลที่คาดไว้แบบเคร่งครัด: ${globalThis.String(error.expected)}`;
|
|
140
|
+
|
|
141
|
+
/** จัดรูปแบบ UnionError เป็นภาษาไทย */
|
|
142
|
+
export const formatUnionError: TypeErrorFormatter<UnionError> = () =>
|
|
143
|
+
"ค่าไม่ตรงกับตัวเลือกที่อนุญาตใดเลย";
|
|
144
|
+
|
|
145
|
+
/** จัดรูปแบบ DateIsoError เป็นภาษาไทย */
|
|
146
|
+
export const formatDateIsoError: TypeErrorFormatter<DateIsoError> = (error) =>
|
|
147
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่สตริงวันที่และเวลา ISO รูปแบบมาตรฐาน`;
|
|
148
|
+
|
|
149
|
+
/** จัดรูปแบบ DateIsoFromDateError เป็นภาษาไทย */
|
|
150
|
+
export const formatDateIsoFromDateError: TypeErrorFormatter<
|
|
151
|
+
DateIsoFromDateError
|
|
152
|
+
> = () => "ไม่สามารถแทน Date เป็น DateIso ได้";
|
|
153
|
+
|
|
154
|
+
/** จัดรูปแบบ DecimalStringError เป็นภาษาไทย */
|
|
155
|
+
export const formatDecimalStringError: TypeErrorFormatter<
|
|
156
|
+
DecimalStringError
|
|
157
|
+
> = (error) =>
|
|
158
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นสตริงเลขทศนิยมรูปแบบมาตรฐาน`;
|
|
159
|
+
|
|
160
|
+
/** จัดรูปแบบ Int64Error เป็นภาษาไทย */
|
|
161
|
+
export const formatInt64Error: TypeErrorFormatter<Int64Error> = (error) =>
|
|
162
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่จำนวนเต็ม 64 บิตมีเครื่องหมาย (Int64) ที่ถูกต้อง`;
|
|
163
|
+
|
|
164
|
+
/** จัดรูปแบบ UInt64Error เป็นภาษาไทย */
|
|
165
|
+
export const formatUInt64Error: TypeErrorFormatter<UInt64Error> = (error) =>
|
|
166
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่จำนวนเต็ม 64 บิตไม่มีเครื่องหมาย (UInt64) ที่ถูกต้อง`;
|
|
167
|
+
|
|
168
|
+
/** จัดรูปแบบ Int64StringError เป็นภาษาไทย */
|
|
169
|
+
export const formatInt64StringError: TypeErrorFormatter<Int64StringError> = (
|
|
170
|
+
error,
|
|
171
|
+
) =>
|
|
172
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่สตริง Int64 ที่ถูกต้อง`;
|
|
173
|
+
|
|
174
|
+
/** จัดรูปแบบ CapitalizedError เป็นภาษาไทย */
|
|
175
|
+
export const formatCapitalizedError: TypeErrorFormatter<CapitalizedError> = (
|
|
176
|
+
error,
|
|
177
|
+
) =>
|
|
178
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่`;
|
|
179
|
+
|
|
180
|
+
/** จัดรูปแบบ TrimmedError เป็นภาษาไทย */
|
|
181
|
+
export const formatTrimmedError: TypeErrorFormatter<TrimmedError> = (error) =>
|
|
182
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องตัดช่องว่างหัวท้ายแล้ว`;
|
|
183
|
+
|
|
184
|
+
/** จัดรูปแบบ MinLengthError เป็นภาษาไทย */
|
|
185
|
+
export const formatMinLengthError: TypeErrorFormatter<MinLengthError> = (
|
|
186
|
+
error,
|
|
187
|
+
) =>
|
|
188
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} มีความยาวไม่ถึงขั้นต่ำ ${error.min}`;
|
|
189
|
+
|
|
190
|
+
/** จัดรูปแบบ MaxLengthError เป็นภาษาไทย */
|
|
191
|
+
export const formatMaxLengthError: TypeErrorFormatter<MaxLengthError> = (
|
|
192
|
+
error,
|
|
193
|
+
) =>
|
|
194
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} มีความยาวเกินสูงสุด ${error.max}`;
|
|
195
|
+
|
|
196
|
+
/** จัดรูปแบบ LengthError เป็นภาษาไทย */
|
|
197
|
+
export const formatLengthError: TypeErrorFormatter<LengthError> = (error) =>
|
|
198
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} มีความยาวไม่เท่ากับ ${error.exact} ที่กำหนด`;
|
|
199
|
+
|
|
200
|
+
/** จัดรูปแบบ RegexError เป็นภาษาไทย */
|
|
201
|
+
export const formatRegexError: TypeErrorFormatter<RegexError> = (error) =>
|
|
202
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ตรงกับ /${error.source}/${error.flags}`;
|
|
203
|
+
|
|
204
|
+
/** จัดรูปแบบ Base64UrlError เป็นภาษาไทย */
|
|
205
|
+
export const formatBase64UrlError: TypeErrorFormatter<Base64UrlError> = (
|
|
206
|
+
error,
|
|
207
|
+
) =>
|
|
208
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่สตริง Base64Url ที่ถูกต้อง`;
|
|
209
|
+
|
|
210
|
+
/** จัดรูปแบบ NameError เป็นภาษาไทย */
|
|
211
|
+
export const formatNameError: TypeErrorFormatter<NameError> = (error) =>
|
|
212
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่ Name ที่ถูกต้อง`;
|
|
213
|
+
|
|
214
|
+
/** จัดรูปแบบ MnemonicError เป็นภาษาไทย */
|
|
215
|
+
export const formatMnemonicError: TypeErrorFormatter<MnemonicError> = (error) =>
|
|
216
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่ mnemonic BIP39 ภาษาอังกฤษที่ถูกต้อง`;
|
|
217
|
+
|
|
218
|
+
/** จัดรูปแบบ IdError เป็นภาษาไทย */
|
|
219
|
+
export const formatIdError: TypeErrorFormatter<IdError> = (error) =>
|
|
220
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่ Id ที่ถูกต้อง`;
|
|
221
|
+
|
|
222
|
+
/** จัดรูปแบบ TableIdError เป็นภาษาไทย */
|
|
223
|
+
export const formatTableIdError: TypeErrorFormatter<TableIdError> = (error) =>
|
|
224
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ไม่ใช่ Id ที่ถูกต้องสำหรับตาราง ${error.table}`;
|
|
225
|
+
|
|
226
|
+
/** จัดรูปแบบ NonNegativeError เป็นภาษาไทย */
|
|
227
|
+
export const formatNonNegativeError: TypeErrorFormatter<NonNegativeError> = (
|
|
228
|
+
error,
|
|
229
|
+
) => `ค่า ${safelyStringifyUnknownValue(error.value)} ต้องไม่เป็นลบ (>= 0)`;
|
|
230
|
+
|
|
231
|
+
/** จัดรูปแบบ NonNegativeDecimalStringError เป็นภาษาไทย */
|
|
232
|
+
export const formatNonNegativeDecimalStringError: TypeErrorFormatter<
|
|
233
|
+
NonNegativeDecimalStringError
|
|
234
|
+
> = (error) =>
|
|
235
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นสตริงเลขทศนิยมที่ไม่เป็นลบ`;
|
|
236
|
+
|
|
237
|
+
/** จัดรูปแบบ PositiveError เป็นภาษาไทย */
|
|
238
|
+
export const formatPositiveError: TypeErrorFormatter<PositiveError> = (error) =>
|
|
239
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นบวก (> 0)`;
|
|
240
|
+
|
|
241
|
+
/** จัดรูปแบบ PositiveDecimalStringError เป็นภาษาไทย */
|
|
242
|
+
export const formatPositiveDecimalStringError: TypeErrorFormatter<
|
|
243
|
+
PositiveDecimalStringError
|
|
244
|
+
> = (error) =>
|
|
245
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นสตริงเลขทศนิยมบวก`;
|
|
246
|
+
|
|
247
|
+
/** จัดรูปแบบ NonPositiveError เป็นภาษาไทย */
|
|
248
|
+
export const formatNonPositiveError: TypeErrorFormatter<NonPositiveError> = (
|
|
249
|
+
error,
|
|
250
|
+
) => `ค่า ${safelyStringifyUnknownValue(error.value)} ต้องไม่เป็นบวก (<= 0)`;
|
|
251
|
+
|
|
252
|
+
/** จัดรูปแบบ NonPositiveDecimalStringError เป็นภาษาไทย */
|
|
253
|
+
export const formatNonPositiveDecimalStringError: TypeErrorFormatter<
|
|
254
|
+
NonPositiveDecimalStringError
|
|
255
|
+
> = (error) =>
|
|
256
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นสตริงเลขทศนิยมที่ไม่เป็นบวก`;
|
|
257
|
+
|
|
258
|
+
/** จัดรูปแบบ NegativeError เป็นภาษาไทย */
|
|
259
|
+
export const formatNegativeError: TypeErrorFormatter<NegativeError> = (error) =>
|
|
260
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นลบ (< 0)`;
|
|
261
|
+
|
|
262
|
+
/** จัดรูปแบบ NegativeDecimalStringError เป็นภาษาไทย */
|
|
263
|
+
export const formatNegativeDecimalStringError: TypeErrorFormatter<
|
|
264
|
+
NegativeDecimalStringError
|
|
265
|
+
> = (error) =>
|
|
266
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นสตริงเลขทศนิยมลบ`;
|
|
267
|
+
|
|
268
|
+
/** จัดรูปแบบ IntError เป็นภาษาไทย */
|
|
269
|
+
export const formatIntError: TypeErrorFormatter<IntError> = (error) =>
|
|
270
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นจำนวนเต็มปลอดภัย`;
|
|
271
|
+
|
|
272
|
+
/** จัดรูปแบบ GreaterThanError เป็นภาษาไทย */
|
|
273
|
+
export const formatGreaterThanError: TypeErrorFormatter<GreaterThanError> = (
|
|
274
|
+
error,
|
|
275
|
+
) => `ค่า ${safelyStringifyUnknownValue(error.value)} ต้องมากกว่า ${error.min}`;
|
|
276
|
+
|
|
277
|
+
/** จัดรูปแบบ GreaterThanOrEqualToError เป็นภาษาไทย */
|
|
278
|
+
export const formatGreaterThanOrEqualToError: TypeErrorFormatter<
|
|
279
|
+
GreaterThanOrEqualToError
|
|
280
|
+
> = (error) =>
|
|
281
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องมากกว่าหรือเท่ากับ ${error.min}`;
|
|
282
|
+
|
|
283
|
+
/** จัดรูปแบบ LessThanError เป็นภาษาไทย */
|
|
284
|
+
export const formatLessThanError: TypeErrorFormatter<LessThanError> = (error) =>
|
|
285
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องน้อยกว่า ${error.max}`;
|
|
286
|
+
|
|
287
|
+
/** จัดรูปแบบ LessThanOrEqualToError เป็นภาษาไทย */
|
|
288
|
+
export const formatLessThanOrEqualToError: TypeErrorFormatter<
|
|
289
|
+
LessThanOrEqualToError
|
|
290
|
+
> = (error) =>
|
|
291
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องน้อยกว่าหรือเท่ากับ ${error.max}`;
|
|
292
|
+
|
|
293
|
+
/** จัดรูปแบบ NonNaNError เป็นภาษาไทย */
|
|
294
|
+
export const formatNonNaNError: TypeErrorFormatter<NonNaNError> = () =>
|
|
295
|
+
"ค่าต้องไม่เป็น NaN";
|
|
296
|
+
|
|
297
|
+
/** จัดรูปแบบ FiniteError เป็นภาษาไทย */
|
|
298
|
+
export const formatFiniteError: TypeErrorFormatter<FiniteError> = (error) =>
|
|
299
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นจำนวนจำกัด`;
|
|
300
|
+
|
|
301
|
+
/** จัดรูปแบบ MultipleOfError เป็นภาษาไทย */
|
|
302
|
+
export const formatMultipleOfError: TypeErrorFormatter<MultipleOfError> = (
|
|
303
|
+
error,
|
|
304
|
+
) =>
|
|
305
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องเป็นพหุคูณของ ${error.divisor}`;
|
|
306
|
+
|
|
307
|
+
/** จัดรูปแบบ BetweenError เป็นภาษาไทย */
|
|
308
|
+
export const formatBetweenError: TypeErrorFormatter<BetweenError> = (error) =>
|
|
309
|
+
`ค่า ${safelyStringifyUnknownValue(error.value)} ต้องอยู่ระหว่าง ${error.min} และ ${error.max} (รวมขอบเขต)`;
|
|
310
|
+
|
|
311
|
+
/** จัดรูปแบบ ArrayError เป็นภาษาไทย */
|
|
312
|
+
export const formatArrayError: TypeErrorFormatter<ArrayError> = (error) => {
|
|
313
|
+
if (error.reason.kind === "NotArray") {
|
|
314
|
+
return `ค่า ${safelyStringifyUnknownValue(error.reason.value)} ไม่ใช่อาร์เรย์`;
|
|
315
|
+
}
|
|
316
|
+
const issue = error.reason.issues[0];
|
|
317
|
+
|
|
318
|
+
switch (issue.kind) {
|
|
319
|
+
case "Hole":
|
|
320
|
+
return `ไม่มีองค์ประกอบอาร์เรย์ที่ดัชนี ${issue.index}`;
|
|
321
|
+
case "Accessor":
|
|
322
|
+
return `องค์ประกอบอาร์เรย์ที่ดัชนี ${issue.index} ต้องเป็น data property`;
|
|
323
|
+
case "ExcessProperty":
|
|
324
|
+
return "ไม่อนุญาตให้มี Array property ส่วนเกิน โปรดลบออกหรือใช้ Type อื่น";
|
|
325
|
+
case "Element":
|
|
326
|
+
return `องค์ประกอบอาร์เรย์ที่ดัชนี ${issue.index} ไม่ถูกต้อง`;
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
/** จัดรูปแบบ SetError เป็นภาษาไทย */
|
|
331
|
+
export const formatSetError: TypeErrorFormatter<SetError> = (error) => {
|
|
332
|
+
if (error.reason.kind === "NotSet") {
|
|
333
|
+
return `ค่า ${safelyStringifyUnknownValue(error.reason.value)} ไม่ใช่ Set`;
|
|
334
|
+
}
|
|
335
|
+
if (error.reason.kind === "UnexpectedPrototype") {
|
|
336
|
+
return "ค่านี้เป็นอินสแตนซ์ของคลาสย่อย Set แต่ Set Output ต้องเป็นอินสแตนซ์ของ Set โดยตรง";
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
const issue = error.reason.issues[0];
|
|
340
|
+
|
|
341
|
+
switch (issue.kind) {
|
|
342
|
+
case "ExcessProperty":
|
|
343
|
+
return `ไม่อนุญาตให้มี Set property ส่วนเกิน ${safelyStringifyUnknownValue(issue.key)}`;
|
|
344
|
+
case "Element":
|
|
345
|
+
return `องค์ประกอบ Set ที่ดัชนี ${issue.index} ไม่ถูกต้อง`;
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
/** จัดรูปแบบ TupleError เป็นภาษาไทย */
|
|
350
|
+
export const formatTupleError: TypeErrorFormatter<
|
|
351
|
+
TupleError | TupleElementsError<TypeError>
|
|
352
|
+
> = (error) => {
|
|
353
|
+
if (error.reason.kind === "NotArray") {
|
|
354
|
+
return `ค่า ${safelyStringifyUnknownValue(error.reason.value)} ไม่ใช่ทูเพิล`;
|
|
355
|
+
}
|
|
356
|
+
if (error.reason.kind === "InvalidLength") {
|
|
357
|
+
return `Tuple ต้องมีองค์ประกอบ ${error.reason.expected} รายการพอดี แต่ค่านี้มี ${error.reason.actual} รายการ`;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
const issue = error.reason.issues[0];
|
|
361
|
+
|
|
362
|
+
switch (issue.kind) {
|
|
363
|
+
case "Hole":
|
|
364
|
+
return `ไม่มีองค์ประกอบ Tuple ที่ดัชนี ${issue.index}`;
|
|
365
|
+
case "Accessor":
|
|
366
|
+
return `องค์ประกอบ Tuple ที่ดัชนี ${issue.index} ต้องเป็น data property`;
|
|
367
|
+
case "ExcessProperty":
|
|
368
|
+
return "ไม่อนุญาตให้มี Tuple property ส่วนเกิน โปรดลบออกหรือใช้ Type อื่น";
|
|
369
|
+
case "Element":
|
|
370
|
+
return `องค์ประกอบ Tuple ที่ดัชนี ${issue.index} ไม่ถูกต้อง`;
|
|
371
|
+
}
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
/** จัดรูปแบบ RecordError เป็นภาษาไทย */
|
|
375
|
+
export const formatRecordError: TypeErrorFormatter<RecordError> = (error) => {
|
|
376
|
+
if (error.reason.kind === "NotRecord") {
|
|
377
|
+
return `ค่า ${safelyStringifyUnknownValue(error.reason.value)} ไม่ใช่ Record`;
|
|
378
|
+
}
|
|
379
|
+
if (error.reason.kind === "NotPlainRecord") {
|
|
380
|
+
return "ค่านี้เป็นออบเจ็กต์ แต่ Record Output ต้องเป็นออบเจ็กต์ธรรมดาหรือมี null prototype";
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
const issue = error.reason.issues[0];
|
|
384
|
+
|
|
385
|
+
switch (issue.kind) {
|
|
386
|
+
case "Key":
|
|
387
|
+
return `คีย์ property ${safelyStringifyUnknownValue(issue.key)} ไม่ถูกต้อง`;
|
|
388
|
+
case "Value":
|
|
389
|
+
return `ค่าของ property ${safelyStringifyUnknownValue(issue.key)} ไม่ถูกต้อง`;
|
|
390
|
+
case "Accessor":
|
|
391
|
+
return `Record property ${safelyStringifyUnknownValue(issue.key)} ต้องเป็น data property`;
|
|
392
|
+
case "NonEnumerable":
|
|
393
|
+
return `Record property ${safelyStringifyUnknownValue(issue.key)} ต้อง enumerable ได้`;
|
|
394
|
+
case "Collision":
|
|
395
|
+
return `คีย์ Record ${safelyStringifyUnknownValue(issue.previousKey)} และ ${safelyStringifyUnknownValue(issue.key)} ถอดรหัสเป็นคีย์เดียวกัน ${safelyStringifyUnknownValue(issue.outputKey)}`;
|
|
396
|
+
}
|
|
397
|
+
};
|
|
398
|
+
|
|
399
|
+
/** จัดรูปแบบ ObjectError เป็นภาษาไทย */
|
|
400
|
+
export const formatObjectError: TypeErrorFormatter<ObjectError> = (error) => {
|
|
401
|
+
if (error.reason.kind !== "Properties") {
|
|
402
|
+
return formatPlainObjectRootError(error.reason);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
const key = Reflect.ownKeys(error.reason.errors).at(0);
|
|
406
|
+
assertNonNullable(key);
|
|
407
|
+
const propertyError = error.reason.errors[key];
|
|
408
|
+
assertNonNullable(propertyError);
|
|
409
|
+
|
|
410
|
+
if (propertyError.type === "ObjectPropertyAccess") {
|
|
411
|
+
switch ((propertyError as ObjectPropertyAccessError).reason) {
|
|
412
|
+
case "Accessor":
|
|
413
|
+
return "Object property ต้องเป็น data property แปลงค่า accessor เป็นข้อมูลธรรมดาก่อนใช้ Type นี้ หรือใช้ Type อื่น";
|
|
414
|
+
case "NonEnumerable":
|
|
415
|
+
return "Object property ต้อง enumerable ได้ ตั้งค่าให้ enumerable หรือใช้ Type อื่น";
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
if (propertyError.type === "ObjectMissingProperty") {
|
|
419
|
+
return `ไม่มี property ที่ต้องมี ${safelyStringifyUnknownValue(key)}`;
|
|
420
|
+
}
|
|
421
|
+
if (typeof key === "symbol") {
|
|
422
|
+
return "คีย์ Object property ต้องเป็นสตริง โปรดลบ symbol property หรือใช้ Type อื่น";
|
|
423
|
+
}
|
|
424
|
+
if (propertyError.type === "ObjectExcessProperty") {
|
|
425
|
+
return `ไม่อนุญาตให้มี property ${safelyStringifyUnknownValue(key)} โปรดลบออกหรือใช้ Type อื่น`;
|
|
426
|
+
}
|
|
427
|
+
return `property ${safelyStringifyUnknownValue(key)} ไม่ถูกต้อง`;
|
|
428
|
+
};
|
|
429
|
+
|
|
430
|
+
/** จัดรูปแบบ DiscriminatedUnionError เป็นภาษาไทย */
|
|
431
|
+
export const formatDiscriminatedUnionError: TypeErrorFormatter<
|
|
432
|
+
DiscriminatedUnionError
|
|
433
|
+
> = (error) => {
|
|
434
|
+
switch (error.reason.kind) {
|
|
435
|
+
case "Object":
|
|
436
|
+
return formatPlainObjectRootError(error.reason.error.reason);
|
|
437
|
+
case "PropertyAccess": {
|
|
438
|
+
const property = `discriminator property ${safelyStringifyUnknownValue(error.reason.key)}`;
|
|
439
|
+
if (error.reason.reason === "Accessor") {
|
|
440
|
+
return `${property} ต้องเป็น data property`;
|
|
441
|
+
}
|
|
442
|
+
if (error.reason.reason === "Inherited") {
|
|
443
|
+
return `${property} ต้องเป็น own property`;
|
|
444
|
+
}
|
|
445
|
+
return `${property} ต้อง enumerable ได้`;
|
|
446
|
+
}
|
|
447
|
+
case "Discriminator":
|
|
448
|
+
return `discriminator property ${safelyStringifyUnknownValue(error.reason.key)} มีค่าที่ไม่คาดไว้ ${safelyStringifyUnknownValue(error.reason.value)}`;
|
|
449
|
+
case "Member":
|
|
450
|
+
return `ตัวเลือกที่เลือก ${safelyStringifyUnknownValue(error.reason.discriminator)} ไม่ถูกต้อง`;
|
|
451
|
+
}
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
/** จัดรูปแบบ JsonValueError เป็นภาษาไทย */
|
|
455
|
+
export const formatJsonValueError: TypeErrorFormatter<JsonValueError> = (
|
|
456
|
+
error,
|
|
457
|
+
) => {
|
|
458
|
+
const issue = error.reason.issues[0];
|
|
459
|
+
|
|
460
|
+
switch (issue.kind) {
|
|
461
|
+
case "InvalidType":
|
|
462
|
+
return `ค่า ${safelyStringifyUnknownValue(issue.value)} ไม่ใช่ค่า JSON`;
|
|
463
|
+
case "NonFiniteNumber":
|
|
464
|
+
return "ตัวเลข JSON ต้องเป็นจำนวนจำกัด";
|
|
465
|
+
case "UnexpectedPrototype":
|
|
466
|
+
return "ค่านี้เป็นออบเจ็กต์ แต่ JsonValue object ต้องเป็นออบเจ็กต์ธรรมดาหรือมี null prototype";
|
|
467
|
+
case "Accessor":
|
|
468
|
+
return "JSON property ต้องเป็น data property แปลงค่า accessor เป็นข้อมูลธรรมดาก่อนใช้ Type นี้ หรือใช้ Type อื่น";
|
|
469
|
+
case "NonEnumerable":
|
|
470
|
+
return "JSON object property ต้อง enumerable ได้ โปรดลบออกหรือใช้ Type อื่น";
|
|
471
|
+
case "SymbolProperty":
|
|
472
|
+
return "คีย์ JSON object property ต้องเป็นสตริง โปรดลบ symbol property หรือใช้ Type อื่น";
|
|
473
|
+
case "Hole":
|
|
474
|
+
return "ไม่มีองค์ประกอบของ JSON array";
|
|
475
|
+
case "ExcessProperty":
|
|
476
|
+
return "ไม่อนุญาตให้มี JSON array property ส่วนเกิน โปรดลบออกหรือใช้ Type อื่น";
|
|
477
|
+
case "CircularReference":
|
|
478
|
+
return "JsonValue ต้องไม่มีการอ้างอิงแบบวงกลม";
|
|
479
|
+
}
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
/** จัดรูปแบบ JsonError เป็นภาษาไทย */
|
|
483
|
+
export const formatJsonError: TypeErrorFormatter<JsonError> = (error) =>
|
|
484
|
+
`ไม่สามารถแยกวิเคราะห์ค่า ${safelyStringifyUnknownValue(error.value)} เป็น JsonValue ได้`;
|