adaptform 2.0.0 → 2.0.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/dist/index.cjs +13 -13
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -8
- package/dist/index.d.ts +5 -8
- package/dist/index.mjs +13 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -52,13 +52,13 @@ var BooleanType = class extends FieldType {
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
// src/core/utils/luxon-loader.ts
|
|
55
|
-
var
|
|
55
|
+
var DateTimeConstructor = null;
|
|
56
56
|
var isLoading = false;
|
|
57
57
|
var loadError = null;
|
|
58
58
|
var loadPromise = null;
|
|
59
|
-
function
|
|
60
|
-
if (
|
|
61
|
-
return
|
|
59
|
+
function getDateTimeConstructor() {
|
|
60
|
+
if (DateTimeConstructor) {
|
|
61
|
+
return DateTimeConstructor;
|
|
62
62
|
}
|
|
63
63
|
if (loadError) {
|
|
64
64
|
throw loadError;
|
|
@@ -69,12 +69,12 @@ function getDateTime() {
|
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
71
|
throw new Error(
|
|
72
|
-
"Luxon is not initialized.
|
|
72
|
+
"Luxon is not initialized. Install: npm install luxon"
|
|
73
73
|
);
|
|
74
74
|
}
|
|
75
75
|
function initLuxon() {
|
|
76
|
-
if (
|
|
77
|
-
return Promise.resolve(
|
|
76
|
+
if (DateTimeConstructor) {
|
|
77
|
+
return Promise.resolve(DateTimeConstructor);
|
|
78
78
|
}
|
|
79
79
|
if (loadPromise) {
|
|
80
80
|
return loadPromise;
|
|
@@ -83,11 +83,11 @@ function initLuxon() {
|
|
|
83
83
|
loadPromise = (async () => {
|
|
84
84
|
try {
|
|
85
85
|
const luxon = await import('luxon');
|
|
86
|
-
|
|
87
|
-
return
|
|
86
|
+
DateTimeConstructor = luxon.DateTime;
|
|
87
|
+
return DateTimeConstructor;
|
|
88
88
|
} catch (error) {
|
|
89
89
|
loadError = new Error(
|
|
90
|
-
'DateLuxonType requires the "luxon" package to be installed.\
|
|
90
|
+
'DateLuxonType requires the "luxon" package to be installed.\nInstall: npm install luxon'
|
|
91
91
|
);
|
|
92
92
|
throw loadError;
|
|
93
93
|
} finally {
|
|
@@ -97,10 +97,10 @@ function initLuxon() {
|
|
|
97
97
|
return loadPromise;
|
|
98
98
|
}
|
|
99
99
|
function isLuxonAvailable() {
|
|
100
|
-
return
|
|
100
|
+
return DateTimeConstructor !== null;
|
|
101
101
|
}
|
|
102
102
|
function resetLuxon() {
|
|
103
|
-
|
|
103
|
+
DateTimeConstructor = null;
|
|
104
104
|
isLoading = false;
|
|
105
105
|
loadError = null;
|
|
106
106
|
loadPromise = null;
|
|
@@ -110,7 +110,7 @@ initLuxon().catch(() => {
|
|
|
110
110
|
|
|
111
111
|
exports.BasePlugin = BasePlugin;
|
|
112
112
|
exports.BooleanType = BooleanType;
|
|
113
|
-
exports.
|
|
113
|
+
exports.getDateTimeConstructor = getDateTimeConstructor;
|
|
114
114
|
exports.initLuxon = initLuxon;
|
|
115
115
|
exports.isLuxonAvailable = isLuxonAvailable;
|
|
116
116
|
exports.resetLuxon = resetLuxon;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/plugins/FieldPlugin.ts","../src/core/types/FieldType.ts","../src/core/types/BooleanType.ts","../src/core/utils/luxon-loader.ts"],"names":[],"mappings":";;;AAaO,IAAe,aAAf,MAA6D;AAAA,EAGlE,WAAA,CAAY,aAAA,GAA+B,EAAC,EAAG;AAC7C,IAAA,IAAA,CAAK,aAAA,GAAgB;AAAA,MACnB,QAAA,EAAU,CAAA;AAAA,MACV,GAAG;AAAA,KACL;AAAA,EACF;AACF;;;AClBA,IAA8B,YAA9B,MAAkF;AAAA,EAGhF,YAAY,OAAA,EAAY;AACtB,IAAA,IAAA,CAAK,OAAA,GAAU;AAAA,MACb,UAAA,EAAY,IAAA;AAAA,MACZ,UAAU,EAAC;AAAA,MACX,GAAG;AAAA,KACL;AAAA,EACF;AAOF,CAAA;;;ACjBO,IAAM,WAAA,GAAN,cAA0B,SAAA,CAAmC;AAAA,EAClE,KAAK,QAAA,EAA+B;AAClC,IAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,MAAA,EAAW,OAAO,IAAA;AACxD,IAAA,IAAI,OAAO,QAAA,KAAa,SAAA,EAAW,OAAO,QAAA;AAE1C,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,IAAI,QAAA,KAAa,MAAA,IAAU,QAAA,KAAa,GAAA,EAAK,OAAO,IAAA;AACpD,MAAA,IAAI,QAAA,KAAa,OAAA,IAAW,QAAA,KAAa,GAAA,EAAK,OAAO,KAAA;AAAA,IACvD;AAEA,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,IAAI,QAAA,KAAa,GAAG,OAAO,IAAA;AAC3B,MAAA,IAAI,QAAA,KAAa,GAAG,OAAO,KAAA;AAAA,IAC7B;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,SAAS,KAAA,EAA0B;AACjC,IAAA,MAAM,SAAmB,EAAC;AAE1B,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,UAAA,IAAc,KAAA,KAAU,IAAA,EAAM;AAC7C,MAAA,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,cAAc,qHAA2B,CAAA;AAAA,IAC9E;AAEA,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,WAAA,IAAe,KAAA,KAAU,KAAA,EAAO;AAC/C,MAAA,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,eAAe,sHAA4B,CAAA;AAAA,IAChF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,WAAA,GAAsB;AACpB,IAAA,OAAO,+GAAA;AAAA,EACT;AACF;;;
|
|
1
|
+
{"version":3,"sources":["../src/core/plugins/FieldPlugin.ts","../src/core/types/FieldType.ts","../src/core/types/BooleanType.ts","../src/core/utils/luxon-loader.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import {PluginOptions} from \"@core/options\";\nimport Field from \"@core/fields/Field\";\n\nexport interface FieldPlugin<T = any> {\n pluginOptions?: PluginOptions\n\n init?(field: Field<T>): void\n\n toRawValue?(value: any, field: Field<T>): any\n\n toValueClear?(value: any, field: Field<T>): any\n}\n\nexport abstract class BasePlugin<T = any> implements FieldPlugin<T> {\n pluginOptions: PluginOptions\n\n constructor(pluginOptions: PluginOptions = {}) {\n this.pluginOptions = {\n priority: 0,\n ...pluginOptions\n }\n }\n}","import {FieldOptions} from \"@core/options\";\nimport Form from \"@core/Form\";\n\n\nexport default abstract class FieldType<T, O extends FieldOptions = FieldOptions> {\n options: O\n\n constructor(options: O) {\n this.options = {\n isRequired: true,\n messages: {},\n ...options\n } as O\n }\n\n abstract cast(rawValue: any): T | null\n\n abstract validate(value: T, form?: Form): string[]\n\n abstract getTypeName(): string\n}","import FieldType from \"@core/types/FieldType\";\nimport {BooleanOptions} from \"@core/options\";\n\nexport class BooleanType extends FieldType<boolean, BooleanOptions> {\n cast(rawValue: any): boolean | null {\n if (rawValue === null || rawValue === undefined) return null\n if (typeof rawValue === 'boolean') return rawValue\n\n if (typeof rawValue === 'string') {\n if (rawValue === 'true' || rawValue === '1') return true\n if (rawValue === 'false' || rawValue === '0') return false\n }\n\n if (typeof rawValue === 'number') {\n if (rawValue === 1) return true\n if (rawValue === 0) return false\n }\n\n return null\n }\n\n validate(value: boolean): string[] {\n const errors: string[] = []\n\n if (this.options.mustBeTrue && value !== true) {\n errors.push(this.options.messages?.mustBeTrue ?? 'Значение должно быть true')\n }\n\n if (this.options.mustBeFalse && value !== false) {\n errors.push(this.options.messages?.mustBeFalse ?? 'Значение должно быть false')\n }\n\n return errors\n }\n\n getTypeName(): string {\n return 'логическое значение'\n }\n}","let DateTimeConstructor: any = null\nlet isLoading = false\nlet loadError: Error | null = null\nlet loadPromise: Promise<any> | null = null\n\nexport function getDateTimeConstructor(): any {\n if (DateTimeConstructor) {\n return DateTimeConstructor\n }\n\n if (loadError) {\n throw loadError\n }\n\n if (isLoading) {\n throw new Error(\n 'Luxon is still loading. Please await initLuxon() first.'\n )\n }\n\n throw new Error(\n 'Luxon is not initialized. Install: npm install luxon'\n )\n}\n\nexport function initLuxon(): Promise<any> {\n if (DateTimeConstructor) {\n return Promise.resolve(DateTimeConstructor)\n }\n\n if (loadPromise) {\n return loadPromise\n }\n\n isLoading = true\n loadPromise = (async () => {\n try {\n const luxon = await import('luxon')\n DateTimeConstructor = luxon.DateTime\n return DateTimeConstructor\n } catch (error) {\n loadError = new Error(\n 'DateLuxonType requires the \"luxon\" package to be installed.\\n' +\n 'Install: npm install luxon'\n )\n throw loadError\n } finally {\n isLoading = false\n }\n })()\n\n return loadPromise\n}\n\nexport function isLuxonAvailable(): boolean {\n return DateTimeConstructor !== null\n}\n\nexport function resetLuxon(): void {\n DateTimeConstructor = null\n isLoading = false\n loadError = null\n loadPromise = null\n}\n\ninitLuxon().catch(() => {})"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { DateTime } from 'luxon';
|
|
2
|
-
export { DateTime as LuxonDateTime } from 'luxon';
|
|
3
|
-
|
|
4
1
|
interface FieldPlugin<T = any> {
|
|
5
2
|
pluginOptions?: PluginOptions;
|
|
6
3
|
init?(field: Field<T>): void;
|
|
@@ -88,8 +85,8 @@ interface DateOptions extends FieldOptions {
|
|
|
88
85
|
messages?: messagesDateOptions;
|
|
89
86
|
}
|
|
90
87
|
interface DateLuxonOptions extends FieldOptions {
|
|
91
|
-
minDate?:
|
|
92
|
-
maxDate?:
|
|
88
|
+
minDate?: any;
|
|
89
|
+
maxDate?: any;
|
|
93
90
|
inputFormat?: string;
|
|
94
91
|
outputFormat?: string;
|
|
95
92
|
isDatetime?: boolean;
|
|
@@ -231,9 +228,9 @@ declare class BooleanType extends FieldType<boolean, BooleanOptions> {
|
|
|
231
228
|
getTypeName(): string;
|
|
232
229
|
}
|
|
233
230
|
|
|
234
|
-
declare function
|
|
235
|
-
declare function initLuxon(): Promise<
|
|
231
|
+
declare function getDateTimeConstructor(): any;
|
|
232
|
+
declare function initLuxon(): Promise<any>;
|
|
236
233
|
declare function isLuxonAvailable(): boolean;
|
|
237
234
|
declare function resetLuxon(): void;
|
|
238
235
|
|
|
239
|
-
export { type ArrayFieldOptions, type ArrayFormFieldOptions, BasePlugin, type BooleanOptions, BooleanType, type DateLuxonOptions, type DateOptions, type DecimalOptions, type FieldOptions, type FieldPlugin, type MaskPluginOptions, type NumberOptions, type PluginOptions, type StringOptions,
|
|
236
|
+
export { type ArrayFieldOptions, type ArrayFormFieldOptions, BasePlugin, type BooleanOptions, BooleanType, type DateLuxonOptions, type DateOptions, type DecimalOptions, type FieldOptions, type FieldPlugin, type MaskPluginOptions, type NumberOptions, type PluginOptions, type StringOptions, getDateTimeConstructor, initLuxon, isLuxonAvailable, type messagesArrayFieldOptions, type messagesArrayFormFieldOptions, type messagesBooleanOptions, type messagesDateLuxonOptions, type messagesDateOptions, type messagesDecimalOptions, type messagesNumberOptions, type messagesOptions, type messagesStringOptions, resetLuxon };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { DateTime } from 'luxon';
|
|
2
|
-
export { DateTime as LuxonDateTime } from 'luxon';
|
|
3
|
-
|
|
4
1
|
interface FieldPlugin<T = any> {
|
|
5
2
|
pluginOptions?: PluginOptions;
|
|
6
3
|
init?(field: Field<T>): void;
|
|
@@ -88,8 +85,8 @@ interface DateOptions extends FieldOptions {
|
|
|
88
85
|
messages?: messagesDateOptions;
|
|
89
86
|
}
|
|
90
87
|
interface DateLuxonOptions extends FieldOptions {
|
|
91
|
-
minDate?:
|
|
92
|
-
maxDate?:
|
|
88
|
+
minDate?: any;
|
|
89
|
+
maxDate?: any;
|
|
93
90
|
inputFormat?: string;
|
|
94
91
|
outputFormat?: string;
|
|
95
92
|
isDatetime?: boolean;
|
|
@@ -231,9 +228,9 @@ declare class BooleanType extends FieldType<boolean, BooleanOptions> {
|
|
|
231
228
|
getTypeName(): string;
|
|
232
229
|
}
|
|
233
230
|
|
|
234
|
-
declare function
|
|
235
|
-
declare function initLuxon(): Promise<
|
|
231
|
+
declare function getDateTimeConstructor(): any;
|
|
232
|
+
declare function initLuxon(): Promise<any>;
|
|
236
233
|
declare function isLuxonAvailable(): boolean;
|
|
237
234
|
declare function resetLuxon(): void;
|
|
238
235
|
|
|
239
|
-
export { type ArrayFieldOptions, type ArrayFormFieldOptions, BasePlugin, type BooleanOptions, BooleanType, type DateLuxonOptions, type DateOptions, type DecimalOptions, type FieldOptions, type FieldPlugin, type MaskPluginOptions, type NumberOptions, type PluginOptions, type StringOptions,
|
|
236
|
+
export { type ArrayFieldOptions, type ArrayFormFieldOptions, BasePlugin, type BooleanOptions, BooleanType, type DateLuxonOptions, type DateOptions, type DecimalOptions, type FieldOptions, type FieldPlugin, type MaskPluginOptions, type NumberOptions, type PluginOptions, type StringOptions, getDateTimeConstructor, initLuxon, isLuxonAvailable, type messagesArrayFieldOptions, type messagesArrayFormFieldOptions, type messagesBooleanOptions, type messagesDateLuxonOptions, type messagesDateOptions, type messagesDecimalOptions, type messagesNumberOptions, type messagesOptions, type messagesStringOptions, resetLuxon };
|
package/dist/index.mjs
CHANGED
|
@@ -50,13 +50,13 @@ var BooleanType = class extends FieldType {
|
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
// src/core/utils/luxon-loader.ts
|
|
53
|
-
var
|
|
53
|
+
var DateTimeConstructor = null;
|
|
54
54
|
var isLoading = false;
|
|
55
55
|
var loadError = null;
|
|
56
56
|
var loadPromise = null;
|
|
57
|
-
function
|
|
58
|
-
if (
|
|
59
|
-
return
|
|
57
|
+
function getDateTimeConstructor() {
|
|
58
|
+
if (DateTimeConstructor) {
|
|
59
|
+
return DateTimeConstructor;
|
|
60
60
|
}
|
|
61
61
|
if (loadError) {
|
|
62
62
|
throw loadError;
|
|
@@ -67,12 +67,12 @@ function getDateTime() {
|
|
|
67
67
|
);
|
|
68
68
|
}
|
|
69
69
|
throw new Error(
|
|
70
|
-
"Luxon is not initialized.
|
|
70
|
+
"Luxon is not initialized. Install: npm install luxon"
|
|
71
71
|
);
|
|
72
72
|
}
|
|
73
73
|
function initLuxon() {
|
|
74
|
-
if (
|
|
75
|
-
return Promise.resolve(
|
|
74
|
+
if (DateTimeConstructor) {
|
|
75
|
+
return Promise.resolve(DateTimeConstructor);
|
|
76
76
|
}
|
|
77
77
|
if (loadPromise) {
|
|
78
78
|
return loadPromise;
|
|
@@ -81,11 +81,11 @@ function initLuxon() {
|
|
|
81
81
|
loadPromise = (async () => {
|
|
82
82
|
try {
|
|
83
83
|
const luxon = await import('luxon');
|
|
84
|
-
|
|
85
|
-
return
|
|
84
|
+
DateTimeConstructor = luxon.DateTime;
|
|
85
|
+
return DateTimeConstructor;
|
|
86
86
|
} catch (error) {
|
|
87
87
|
loadError = new Error(
|
|
88
|
-
'DateLuxonType requires the "luxon" package to be installed.\
|
|
88
|
+
'DateLuxonType requires the "luxon" package to be installed.\nInstall: npm install luxon'
|
|
89
89
|
);
|
|
90
90
|
throw loadError;
|
|
91
91
|
} finally {
|
|
@@ -95,10 +95,10 @@ function initLuxon() {
|
|
|
95
95
|
return loadPromise;
|
|
96
96
|
}
|
|
97
97
|
function isLuxonAvailable() {
|
|
98
|
-
return
|
|
98
|
+
return DateTimeConstructor !== null;
|
|
99
99
|
}
|
|
100
100
|
function resetLuxon() {
|
|
101
|
-
|
|
101
|
+
DateTimeConstructor = null;
|
|
102
102
|
isLoading = false;
|
|
103
103
|
loadError = null;
|
|
104
104
|
loadPromise = null;
|
|
@@ -106,6 +106,6 @@ function resetLuxon() {
|
|
|
106
106
|
initLuxon().catch(() => {
|
|
107
107
|
});
|
|
108
108
|
|
|
109
|
-
export { BasePlugin, BooleanType,
|
|
109
|
+
export { BasePlugin, BooleanType, getDateTimeConstructor, initLuxon, isLuxonAvailable, resetLuxon };
|
|
110
110
|
//# sourceMappingURL=index.mjs.map
|
|
111
111
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/plugins/FieldPlugin.ts","../src/core/types/FieldType.ts","../src/core/types/BooleanType.ts","../src/core/utils/luxon-loader.ts"],"names":[],"mappings":";AAaO,IAAe,aAAf,MAA6D;AAAA,EAGlE,WAAA,CAAY,aAAA,GAA+B,EAAC,EAAG;AAC7C,IAAA,IAAA,CAAK,aAAA,GAAgB;AAAA,MACnB,QAAA,EAAU,CAAA;AAAA,MACV,GAAG;AAAA,KACL;AAAA,EACF;AACF;;;AClBA,IAA8B,YAA9B,MAAkF;AAAA,EAGhF,YAAY,OAAA,EAAY;AACtB,IAAA,IAAA,CAAK,OAAA,GAAU;AAAA,MACb,UAAA,EAAY,IAAA;AAAA,MACZ,UAAU,EAAC;AAAA,MACX,GAAG;AAAA,KACL;AAAA,EACF;AAOF,CAAA;;;ACjBO,IAAM,WAAA,GAAN,cAA0B,SAAA,CAAmC;AAAA,EAClE,KAAK,QAAA,EAA+B;AAClC,IAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,MAAA,EAAW,OAAO,IAAA;AACxD,IAAA,IAAI,OAAO,QAAA,KAAa,SAAA,EAAW,OAAO,QAAA;AAE1C,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,IAAI,QAAA,KAAa,MAAA,IAAU,QAAA,KAAa,GAAA,EAAK,OAAO,IAAA;AACpD,MAAA,IAAI,QAAA,KAAa,OAAA,IAAW,QAAA,KAAa,GAAA,EAAK,OAAO,KAAA;AAAA,IACvD;AAEA,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,IAAI,QAAA,KAAa,GAAG,OAAO,IAAA;AAC3B,MAAA,IAAI,QAAA,KAAa,GAAG,OAAO,KAAA;AAAA,IAC7B;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,SAAS,KAAA,EAA0B;AACjC,IAAA,MAAM,SAAmB,EAAC;AAE1B,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,UAAA,IAAc,KAAA,KAAU,IAAA,EAAM;AAC7C,MAAA,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,cAAc,qHAA2B,CAAA;AAAA,IAC9E;AAEA,IAAA,IAAI,IAAA,CAAK,OAAA,CAAQ,WAAA,IAAe,KAAA,KAAU,KAAA,EAAO;AAC/C,MAAA,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,eAAe,sHAA4B,CAAA;AAAA,IAChF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,WAAA,GAAsB;AACpB,IAAA,OAAO,+GAAA;AAAA,EACT;AACF;;;
|
|
1
|
+
{"version":3,"sources":["../src/core/plugins/FieldPlugin.ts","../src/core/types/FieldType.ts","../src/core/types/BooleanType.ts","../src/core/utils/luxon-loader.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["import {PluginOptions} from \"@core/options\";\nimport Field from \"@core/fields/Field\";\n\nexport interface FieldPlugin<T = any> {\n pluginOptions?: PluginOptions\n\n init?(field: Field<T>): void\n\n toRawValue?(value: any, field: Field<T>): any\n\n toValueClear?(value: any, field: Field<T>): any\n}\n\nexport abstract class BasePlugin<T = any> implements FieldPlugin<T> {\n pluginOptions: PluginOptions\n\n constructor(pluginOptions: PluginOptions = {}) {\n this.pluginOptions = {\n priority: 0,\n ...pluginOptions\n }\n }\n}","import {FieldOptions} from \"@core/options\";\nimport Form from \"@core/Form\";\n\n\nexport default abstract class FieldType<T, O extends FieldOptions = FieldOptions> {\n options: O\n\n constructor(options: O) {\n this.options = {\n isRequired: true,\n messages: {},\n ...options\n } as O\n }\n\n abstract cast(rawValue: any): T | null\n\n abstract validate(value: T, form?: Form): string[]\n\n abstract getTypeName(): string\n}","import FieldType from \"@core/types/FieldType\";\nimport {BooleanOptions} from \"@core/options\";\n\nexport class BooleanType extends FieldType<boolean, BooleanOptions> {\n cast(rawValue: any): boolean | null {\n if (rawValue === null || rawValue === undefined) return null\n if (typeof rawValue === 'boolean') return rawValue\n\n if (typeof rawValue === 'string') {\n if (rawValue === 'true' || rawValue === '1') return true\n if (rawValue === 'false' || rawValue === '0') return false\n }\n\n if (typeof rawValue === 'number') {\n if (rawValue === 1) return true\n if (rawValue === 0) return false\n }\n\n return null\n }\n\n validate(value: boolean): string[] {\n const errors: string[] = []\n\n if (this.options.mustBeTrue && value !== true) {\n errors.push(this.options.messages?.mustBeTrue ?? 'Значение должно быть true')\n }\n\n if (this.options.mustBeFalse && value !== false) {\n errors.push(this.options.messages?.mustBeFalse ?? 'Значение должно быть false')\n }\n\n return errors\n }\n\n getTypeName(): string {\n return 'логическое значение'\n }\n}","let DateTimeConstructor: any = null\nlet isLoading = false\nlet loadError: Error | null = null\nlet loadPromise: Promise<any> | null = null\n\nexport function getDateTimeConstructor(): any {\n if (DateTimeConstructor) {\n return DateTimeConstructor\n }\n\n if (loadError) {\n throw loadError\n }\n\n if (isLoading) {\n throw new Error(\n 'Luxon is still loading. Please await initLuxon() first.'\n )\n }\n\n throw new Error(\n 'Luxon is not initialized. Install: npm install luxon'\n )\n}\n\nexport function initLuxon(): Promise<any> {\n if (DateTimeConstructor) {\n return Promise.resolve(DateTimeConstructor)\n }\n\n if (loadPromise) {\n return loadPromise\n }\n\n isLoading = true\n loadPromise = (async () => {\n try {\n const luxon = await import('luxon')\n DateTimeConstructor = luxon.DateTime\n return DateTimeConstructor\n } catch (error) {\n loadError = new Error(\n 'DateLuxonType requires the \"luxon\" package to be installed.\\n' +\n 'Install: npm install luxon'\n )\n throw loadError\n } finally {\n isLoading = false\n }\n })()\n\n return loadPromise\n}\n\nexport function isLuxonAvailable(): boolean {\n return DateTimeConstructor !== null\n}\n\nexport function resetLuxon(): void {\n DateTimeConstructor = null\n isLoading = false\n loadError = null\n loadPromise = null\n}\n\ninitLuxon().catch(() => {})"]}
|