@nmtjs/type 0.15.0-beta.50 → 0.15.0-beta.52
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/temporal/global.d.ts +0 -1
- package/dist/temporal/global.js +7 -8
- package/dist/temporal/global.js.map +1 -1
- package/dist/temporal/polyfill.d.ts +8 -7
- package/dist/temporal/polyfill.js +21 -7
- package/dist/temporal/polyfill.js.map +1 -1
- package/dist/types/temporal.d.ts +14 -15
- package/dist/types/temporal.js +6 -1
- package/dist/types/temporal.js.map +1 -1
- package/package.json +3 -3
- package/src/temporal/global.ts +7 -9
- package/src/temporal/polyfill.ts +50 -7
- package/src/types/temporal.ts +61 -49
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import 'temporal-spec/global';
|
|
2
1
|
import { DurationType, PlainDateTimeType, PlainDateType, PlainMonthDayType, PlainTimeType, PlainYearMonthType, ZonedDateTimeType } from '../types/temporal.ts';
|
|
3
2
|
export declare const plainDate: () => PlainDateType;
|
|
4
3
|
export declare const plainDatetime: () => PlainDateTimeType;
|
package/dist/temporal/global.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import 'temporal-spec/global';
|
|
2
1
|
import { DurationType, PlainDateTimeType, PlainDateType, PlainMonthDayType, PlainTimeType, PlainYearMonthType, ZonedDateTimeType, } from '../types/temporal.js';
|
|
3
|
-
export const plainDate = PlainDateType.factory.bind(PlainDateType, Temporal);
|
|
4
|
-
export const plainDatetime = PlainDateTimeType.factory.bind(PlainDateTimeType, Temporal);
|
|
5
|
-
export const plainTime = PlainTimeType.factory.bind(PlainTimeType, Temporal);
|
|
6
|
-
export const zonedDatetime = ZonedDateTimeType.factory.bind(ZonedDateTimeType, Temporal);
|
|
7
|
-
export const duration = DurationType.factory.bind(DurationType, Temporal);
|
|
8
|
-
export const plainYearMonth = PlainYearMonthType.factory.bind(PlainYearMonthType, Temporal);
|
|
9
|
-
export const plainMonthDay = PlainMonthDayType.factory.bind(PlainMonthDayType, Temporal);
|
|
2
|
+
export const plainDate = PlainDateType.factory.bind(PlainDateType, globalThis.Temporal);
|
|
3
|
+
export const plainDatetime = PlainDateTimeType.factory.bind(PlainDateTimeType, globalThis.Temporal);
|
|
4
|
+
export const plainTime = PlainTimeType.factory.bind(PlainTimeType, globalThis.Temporal);
|
|
5
|
+
export const zonedDatetime = ZonedDateTimeType.factory.bind(ZonedDateTimeType, globalThis.Temporal);
|
|
6
|
+
export const duration = DurationType.factory.bind(DurationType, globalThis.Temporal);
|
|
7
|
+
export const plainYearMonth = PlainYearMonthType.factory.bind(PlainYearMonthType, globalThis.Temporal);
|
|
8
|
+
export const plainMonthDay = PlainMonthDayType.factory.bind(PlainMonthDayType, globalThis.Temporal);
|
|
10
9
|
//# sourceMappingURL=global.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/temporal/global.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/temporal/global.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAwB,aAAa,CAAC,OAAO,CAAC,IAAI,CACtE,aAAa,EACb,UAAU,CAAC,QAAQ,CACpB,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GACxB,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,SAAS,GAAwB,aAAa,CAAC,OAAO,CAAC,IAAI,CACtE,aAAa,EACb,UAAU,CAAC,QAAQ,CACpB,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GACxB,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,QAAQ,GAAuB,YAAY,CAAC,OAAO,CAAC,IAAI,CACnE,YAAY,EACZ,UAAU,CAAC,QAAQ,CACpB,CAAA;AACD,MAAM,CAAC,MAAM,cAAc,GACzB,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC1E,MAAM,CAAC,MAAM,aAAa,GACxB,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { Temporal } from 'temporal-polyfill';
|
|
1
2
|
import { DurationType, PlainDateTimeType, PlainDateType, PlainMonthDayType, PlainTimeType, PlainYearMonthType, ZonedDateTimeType } from '../types/temporal.ts';
|
|
2
|
-
export declare const plainDate: () => PlainDateType
|
|
3
|
-
export declare const plainDatetime: () => PlainDateTimeType
|
|
4
|
-
export declare const plainTime: () => PlainTimeType
|
|
5
|
-
export declare const zonedDatetime: () => ZonedDateTimeType
|
|
6
|
-
export declare const duration: () => DurationType
|
|
7
|
-
export declare const plainYearMonth: () => PlainYearMonthType
|
|
8
|
-
export declare const plainMonthDay: () => PlainMonthDayType
|
|
3
|
+
export declare const plainDate: () => PlainDateType<typeof Temporal>;
|
|
4
|
+
export declare const plainDatetime: () => PlainDateTimeType<typeof Temporal>;
|
|
5
|
+
export declare const plainTime: () => PlainTimeType<typeof Temporal>;
|
|
6
|
+
export declare const zonedDatetime: () => ZonedDateTimeType<typeof Temporal>;
|
|
7
|
+
export declare const duration: () => DurationType<typeof Temporal>;
|
|
8
|
+
export declare const plainYearMonth: () => PlainYearMonthType<typeof Temporal>;
|
|
9
|
+
export declare const plainMonthDay: () => PlainMonthDayType<typeof Temporal>;
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import { Temporal } from 'temporal-polyfill';
|
|
2
2
|
import { DurationType, PlainDateTimeType, PlainDateType, PlainMonthDayType, PlainTimeType, PlainYearMonthType, ZonedDateTimeType, } from '../types/temporal.js';
|
|
3
|
-
export const plainDate = PlainDateType.factory.bind(PlainDateType,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export const
|
|
3
|
+
export const plainDate = PlainDateType.factory.bind(PlainDateType,
|
|
4
|
+
// @ts-expect-error
|
|
5
|
+
Temporal);
|
|
6
|
+
export const plainDatetime = PlainDateTimeType.factory.bind(PlainDateTimeType,
|
|
7
|
+
// @ts-expect-error
|
|
8
|
+
Temporal);
|
|
9
|
+
export const plainTime = PlainTimeType.factory.bind(PlainTimeType,
|
|
10
|
+
// @ts-expect-error
|
|
11
|
+
Temporal);
|
|
12
|
+
export const zonedDatetime = ZonedDateTimeType.factory.bind(ZonedDateTimeType,
|
|
13
|
+
// @ts-expect-error
|
|
14
|
+
Temporal);
|
|
15
|
+
export const duration = DurationType.factory.bind(DurationType,
|
|
16
|
+
// @ts-expect-error
|
|
17
|
+
Temporal);
|
|
18
|
+
export const plainYearMonth = PlainYearMonthType.factory.bind(PlainYearMonthType,
|
|
19
|
+
// @ts-expect-error
|
|
20
|
+
Temporal);
|
|
21
|
+
export const plainMonthDay = PlainMonthDayType.factory.bind(PlainMonthDayType,
|
|
22
|
+
// @ts-expect-error
|
|
23
|
+
Temporal);
|
|
10
24
|
//# sourceMappingURL=polyfill.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyfill.js","sourceRoot":"","sources":["../../src/temporal/polyfill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"polyfill.js","sourceRoot":"","sources":["../../src/temporal/polyfill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CACjD,aAAa;AACb,mBAAmB;AACnB,QAAQ,CAIT,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CACzD,iBAAiB;AACjB,mBAAmB;AACnB,QAAQ,CAIT,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CACjD,aAAa;AACb,mBAAmB;AACnB,QAAQ,CAIT,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CACzD,iBAAiB;AACjB,mBAAmB;AACnB,QAAQ,CAIT,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAC/C,YAAY;AACZ,mBAAmB;AACnB,QAAQ,CAIT,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAC3D,kBAAkB;AAClB,mBAAmB;AACnB,QAAQ,CAIT,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CACzD,iBAAiB;AACjB,mBAAmB;AACnB,QAAQ,CAIT,CAAA"}
|
package/dist/types/temporal.d.ts
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
import type { Temporal } from 'temporal-spec';
|
|
2
1
|
import type { ZodMiniString } from 'zod/mini';
|
|
3
2
|
import { TransformType } from './custom.ts';
|
|
4
3
|
type EncodeType = ZodMiniString<string>;
|
|
5
|
-
export declare class PlainDateType extends TransformType<
|
|
6
|
-
static factory(implementation:
|
|
4
|
+
export declare class PlainDateType<T extends typeof Temporal = typeof Temporal> extends TransformType<InstanceType<T['PlainDate']>, EncodeType> {
|
|
5
|
+
static factory<T extends typeof Temporal>(implementation: T): PlainDateType<T>;
|
|
7
6
|
}
|
|
8
|
-
export declare class PlainDateTimeType extends TransformType<
|
|
9
|
-
static factory(implementation:
|
|
7
|
+
export declare class PlainDateTimeType<T extends typeof Temporal = typeof Temporal> extends TransformType<InstanceType<T['PlainDateTime']>, EncodeType> {
|
|
8
|
+
static factory<T extends typeof Temporal>(implementation: T): PlainDateTimeType<T>;
|
|
10
9
|
}
|
|
11
|
-
export declare class ZonedDateTimeType extends TransformType<
|
|
12
|
-
static factory(implementation:
|
|
10
|
+
export declare class ZonedDateTimeType<T extends typeof Temporal = typeof Temporal> extends TransformType<InstanceType<T['ZonedDateTime']>, EncodeType> {
|
|
11
|
+
static factory<T extends typeof Temporal>(implementation: T): ZonedDateTimeType<T>;
|
|
13
12
|
}
|
|
14
|
-
export declare class PlainTimeType extends TransformType<
|
|
15
|
-
static factory(implementation:
|
|
13
|
+
export declare class PlainTimeType<T extends typeof Temporal = typeof Temporal> extends TransformType<InstanceType<T['PlainTime']>, EncodeType> {
|
|
14
|
+
static factory<T extends typeof Temporal>(implementation: T): PlainTimeType<T>;
|
|
16
15
|
}
|
|
17
|
-
export declare class DurationType extends TransformType<
|
|
18
|
-
static factory(implementation:
|
|
16
|
+
export declare class DurationType<T extends typeof Temporal = typeof Temporal> extends TransformType<InstanceType<T['Duration']>, EncodeType> {
|
|
17
|
+
static factory<T extends typeof Temporal>(implementation: T): DurationType<T>;
|
|
19
18
|
}
|
|
20
|
-
export declare class PlainYearMonthType extends TransformType<
|
|
21
|
-
static factory(implementation:
|
|
19
|
+
export declare class PlainYearMonthType<T extends typeof Temporal = typeof Temporal> extends TransformType<InstanceType<T['PlainYearMonth']>, EncodeType> {
|
|
20
|
+
static factory<T extends typeof Temporal>(implementation: T): PlainYearMonthType<T>;
|
|
22
21
|
}
|
|
23
|
-
export declare class PlainMonthDayType extends TransformType<
|
|
24
|
-
static factory(implementation:
|
|
22
|
+
export declare class PlainMonthDayType<T extends typeof Temporal = typeof Temporal> extends TransformType<InstanceType<T['PlainMonthDay']>, EncodeType> {
|
|
23
|
+
static factory<T extends typeof Temporal>(implementation: T): PlainMonthDayType<T>;
|
|
25
24
|
}
|
|
26
25
|
export {};
|
package/dist/types/temporal.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { iso, regex, string } from 'zod/mini';
|
|
2
2
|
import { CustomType, TransformType } from './custom.js';
|
|
3
|
-
const createTemporalTransformer = (implementation, type, decode = (value) =>
|
|
3
|
+
const createTemporalTransformer = (implementation, type, decode = (value) => {
|
|
4
|
+
if (typeof value === 'string')
|
|
5
|
+
return implementation[type].from(value);
|
|
6
|
+
else
|
|
7
|
+
return value;
|
|
8
|
+
}, encode = (value) => value.toString({
|
|
4
9
|
calendarName: 'never',
|
|
5
10
|
smallestUnit: 'microsecond',
|
|
6
11
|
timeZoneName: 'never',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../src/types/temporal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../src/types/temporal.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -37,19 +37,19 @@
|
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"temporal-polyfill": "^0.3.0",
|
|
39
39
|
"zod": "^4.3.5",
|
|
40
|
-
"@nmtjs/common": "0.15.0-beta.
|
|
40
|
+
"@nmtjs/common": "0.15.0-beta.52"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"temporal-polyfill": "^0.3.0",
|
|
44
44
|
"zod": "^4.3.5",
|
|
45
|
-
"@nmtjs/common": "0.15.0-beta.
|
|
45
|
+
"@nmtjs/common": "0.15.0-beta.52"
|
|
46
46
|
},
|
|
47
47
|
"peerDependenciesMeta": {
|
|
48
48
|
"temporal-polyfill": {
|
|
49
49
|
"optional": true
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
|
-
"version": "0.15.0-beta.
|
|
52
|
+
"version": "0.15.0-beta.52",
|
|
53
53
|
"scripts": {
|
|
54
54
|
"clean-build": "rm -rf ./dist"
|
|
55
55
|
}
|
package/src/temporal/global.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import 'temporal-spec/global'
|
|
2
|
-
|
|
3
1
|
import {
|
|
4
2
|
DurationType,
|
|
5
3
|
PlainDateTimeType,
|
|
@@ -12,21 +10,21 @@ import {
|
|
|
12
10
|
|
|
13
11
|
export const plainDate: () => PlainDateType = PlainDateType.factory.bind(
|
|
14
12
|
PlainDateType,
|
|
15
|
-
Temporal,
|
|
13
|
+
globalThis.Temporal,
|
|
16
14
|
)
|
|
17
15
|
export const plainDatetime: () => PlainDateTimeType =
|
|
18
|
-
PlainDateTimeType.factory.bind(PlainDateTimeType, Temporal)
|
|
16
|
+
PlainDateTimeType.factory.bind(PlainDateTimeType, globalThis.Temporal)
|
|
19
17
|
export const plainTime: () => PlainTimeType = PlainTimeType.factory.bind(
|
|
20
18
|
PlainTimeType,
|
|
21
|
-
Temporal,
|
|
19
|
+
globalThis.Temporal,
|
|
22
20
|
)
|
|
23
21
|
export const zonedDatetime: () => ZonedDateTimeType =
|
|
24
|
-
ZonedDateTimeType.factory.bind(ZonedDateTimeType, Temporal)
|
|
22
|
+
ZonedDateTimeType.factory.bind(ZonedDateTimeType, globalThis.Temporal)
|
|
25
23
|
export const duration: () => DurationType = DurationType.factory.bind(
|
|
26
24
|
DurationType,
|
|
27
|
-
Temporal,
|
|
25
|
+
globalThis.Temporal,
|
|
28
26
|
)
|
|
29
27
|
export const plainYearMonth: () => PlainYearMonthType =
|
|
30
|
-
PlainYearMonthType.factory.bind(PlainYearMonthType, Temporal)
|
|
28
|
+
PlainYearMonthType.factory.bind(PlainYearMonthType, globalThis.Temporal)
|
|
31
29
|
export const plainMonthDay: () => PlainMonthDayType =
|
|
32
|
-
PlainMonthDayType.factory.bind(PlainMonthDayType, Temporal)
|
|
30
|
+
PlainMonthDayType.factory.bind(PlainMonthDayType, globalThis.Temporal)
|
package/src/temporal/polyfill.ts
CHANGED
|
@@ -10,22 +10,65 @@ import {
|
|
|
10
10
|
ZonedDateTimeType,
|
|
11
11
|
} from '../types/temporal.ts'
|
|
12
12
|
|
|
13
|
-
export const plainDate = PlainDateType.factory.bind(
|
|
13
|
+
export const plainDate = PlainDateType.factory.bind(
|
|
14
|
+
PlainDateType,
|
|
15
|
+
// @ts-expect-error
|
|
16
|
+
Temporal,
|
|
17
|
+
) as () => PlainDateType<
|
|
18
|
+
// @ts-expect-error
|
|
19
|
+
typeof Temporal
|
|
20
|
+
>
|
|
21
|
+
|
|
14
22
|
export const plainDatetime = PlainDateTimeType.factory.bind(
|
|
15
23
|
PlainDateTimeType,
|
|
24
|
+
// @ts-expect-error
|
|
25
|
+
Temporal,
|
|
26
|
+
) as () => PlainDateTimeType<
|
|
27
|
+
// @ts-expect-error
|
|
28
|
+
typeof Temporal
|
|
29
|
+
>
|
|
30
|
+
|
|
31
|
+
export const plainTime = PlainTimeType.factory.bind(
|
|
32
|
+
PlainTimeType,
|
|
33
|
+
// @ts-expect-error
|
|
16
34
|
Temporal,
|
|
17
|
-
)
|
|
18
|
-
|
|
35
|
+
) as () => PlainTimeType<
|
|
36
|
+
// @ts-expect-error
|
|
37
|
+
typeof Temporal
|
|
38
|
+
>
|
|
39
|
+
|
|
19
40
|
export const zonedDatetime = ZonedDateTimeType.factory.bind(
|
|
20
41
|
ZonedDateTimeType,
|
|
42
|
+
// @ts-expect-error
|
|
43
|
+
Temporal,
|
|
44
|
+
) as () => ZonedDateTimeType<
|
|
45
|
+
// @ts-expect-error
|
|
46
|
+
typeof Temporal
|
|
47
|
+
>
|
|
48
|
+
|
|
49
|
+
export const duration = DurationType.factory.bind(
|
|
50
|
+
DurationType,
|
|
51
|
+
// @ts-expect-error
|
|
21
52
|
Temporal,
|
|
22
|
-
)
|
|
23
|
-
|
|
53
|
+
) as () => DurationType<
|
|
54
|
+
// @ts-expect-error
|
|
55
|
+
typeof Temporal
|
|
56
|
+
>
|
|
57
|
+
|
|
24
58
|
export const plainYearMonth = PlainYearMonthType.factory.bind(
|
|
25
59
|
PlainYearMonthType,
|
|
60
|
+
// @ts-expect-error
|
|
26
61
|
Temporal,
|
|
27
|
-
)
|
|
62
|
+
) as () => PlainYearMonthType<
|
|
63
|
+
// @ts-expect-error
|
|
64
|
+
typeof Temporal
|
|
65
|
+
>
|
|
66
|
+
|
|
28
67
|
export const plainMonthDay = PlainMonthDayType.factory.bind(
|
|
29
68
|
PlainMonthDayType,
|
|
69
|
+
// @ts-expect-error
|
|
30
70
|
Temporal,
|
|
31
|
-
)
|
|
71
|
+
) as () => PlainMonthDayType<
|
|
72
|
+
// @ts-expect-error
|
|
73
|
+
typeof Temporal
|
|
74
|
+
>
|
package/src/types/temporal.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Temporal } from 'temporal-spec'
|
|
2
1
|
import type { ZodMiniString } from 'zod/mini'
|
|
3
2
|
import { iso, regex, string } from 'zod/mini'
|
|
4
3
|
|
|
@@ -9,34 +8,38 @@ type Types = Exclude<
|
|
|
9
8
|
'Now' | 'Instant' | 'Calendar' | 'TimeZone'
|
|
10
9
|
>
|
|
11
10
|
|
|
12
|
-
type TemporalTransformer<T extends Types> = {
|
|
13
|
-
decode: (value: string) =>
|
|
14
|
-
encode: (value:
|
|
11
|
+
type TemporalTransformer<T extends typeof Temporal, U extends Types> = {
|
|
12
|
+
decode: (value: string) => InstanceType<T[U]>
|
|
13
|
+
encode: (value: InstanceType<T[U]>) => string
|
|
15
14
|
}
|
|
16
15
|
|
|
17
|
-
const createTemporalTransformer = <T extends Types>(
|
|
18
|
-
implementation:
|
|
19
|
-
type:
|
|
20
|
-
decode = (value: string
|
|
21
|
-
|
|
16
|
+
const createTemporalTransformer = <T extends typeof Temporal, U extends Types>(
|
|
17
|
+
implementation: T,
|
|
18
|
+
type: U,
|
|
19
|
+
decode = (value: string | InstanceType<T[U]>) => {
|
|
20
|
+
if (typeof value === 'string') return implementation[type].from(value)
|
|
21
|
+
else return value
|
|
22
|
+
},
|
|
23
|
+
encode = (value: ReturnType<T[U]['from']>) =>
|
|
22
24
|
value.toString({
|
|
23
25
|
calendarName: 'never',
|
|
24
26
|
smallestUnit: 'microsecond',
|
|
25
27
|
timeZoneName: 'never',
|
|
26
28
|
}),
|
|
27
29
|
) => {
|
|
28
|
-
return { decode, encode } as TemporalTransformer<T>
|
|
30
|
+
return { decode, encode } as TemporalTransformer<T, U>
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
type EncodeType = ZodMiniString<string>
|
|
32
34
|
|
|
33
|
-
export class PlainDateType
|
|
34
|
-
Temporal
|
|
35
|
-
|
|
36
|
-
>
|
|
37
|
-
|
|
35
|
+
export class PlainDateType<
|
|
36
|
+
T extends typeof Temporal = typeof Temporal,
|
|
37
|
+
> extends TransformType<InstanceType<T['PlainDate']>, EncodeType> {
|
|
38
|
+
static factory<T extends typeof Temporal>(
|
|
39
|
+
implementation: T,
|
|
40
|
+
): PlainDateType<T> {
|
|
38
41
|
const transformer = createTemporalTransformer(implementation, 'PlainDate')
|
|
39
|
-
return CustomType.factory<
|
|
42
|
+
return CustomType.factory<InstanceType<T['PlainDate']>, EncodeType>({
|
|
40
43
|
decode: transformer.decode,
|
|
41
44
|
encode: transformer.encode,
|
|
42
45
|
type: iso.date(),
|
|
@@ -45,16 +48,17 @@ export class PlainDateType extends TransformType<
|
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
|
|
48
|
-
export class PlainDateTimeType
|
|
49
|
-
Temporal
|
|
50
|
-
|
|
51
|
-
>
|
|
52
|
-
|
|
51
|
+
export class PlainDateTimeType<
|
|
52
|
+
T extends typeof Temporal = typeof Temporal,
|
|
53
|
+
> extends TransformType<InstanceType<T['PlainDateTime']>, EncodeType> {
|
|
54
|
+
static factory<T extends typeof Temporal>(
|
|
55
|
+
implementation: T,
|
|
56
|
+
): PlainDateTimeType<T> {
|
|
53
57
|
const transformer = createTemporalTransformer(
|
|
54
58
|
implementation,
|
|
55
59
|
'PlainDateTime',
|
|
56
60
|
)
|
|
57
|
-
return CustomType.factory<
|
|
61
|
+
return CustomType.factory<InstanceType<T['PlainDateTime']>, EncodeType>({
|
|
58
62
|
decode: transformer.decode,
|
|
59
63
|
encode: transformer.encode,
|
|
60
64
|
type: iso.datetime({ local: true }),
|
|
@@ -63,11 +67,12 @@ export class PlainDateTimeType extends TransformType<
|
|
|
63
67
|
}
|
|
64
68
|
}
|
|
65
69
|
|
|
66
|
-
export class ZonedDateTimeType
|
|
67
|
-
Temporal
|
|
68
|
-
|
|
69
|
-
>
|
|
70
|
-
|
|
70
|
+
export class ZonedDateTimeType<
|
|
71
|
+
T extends typeof Temporal = typeof Temporal,
|
|
72
|
+
> extends TransformType<InstanceType<T['ZonedDateTime']>, EncodeType> {
|
|
73
|
+
static factory<T extends typeof Temporal>(
|
|
74
|
+
implementation: T,
|
|
75
|
+
): ZonedDateTimeType<T> {
|
|
71
76
|
const transformer = createTemporalTransformer(
|
|
72
77
|
implementation,
|
|
73
78
|
'ZonedDateTime',
|
|
@@ -82,7 +87,7 @@ export class ZonedDateTimeType extends TransformType<
|
|
|
82
87
|
offset: 'never',
|
|
83
88
|
}) + 'Z',
|
|
84
89
|
)
|
|
85
|
-
return CustomType.factory<
|
|
90
|
+
return CustomType.factory<InstanceType<T['ZonedDateTime']>, EncodeType>({
|
|
86
91
|
decode: transformer.decode,
|
|
87
92
|
encode: transformer.encode,
|
|
88
93
|
type: iso.datetime(),
|
|
@@ -91,13 +96,14 @@ export class ZonedDateTimeType extends TransformType<
|
|
|
91
96
|
}
|
|
92
97
|
}
|
|
93
98
|
|
|
94
|
-
export class PlainTimeType
|
|
95
|
-
Temporal
|
|
96
|
-
|
|
97
|
-
>
|
|
98
|
-
|
|
99
|
+
export class PlainTimeType<
|
|
100
|
+
T extends typeof Temporal = typeof Temporal,
|
|
101
|
+
> extends TransformType<InstanceType<T['PlainTime']>, EncodeType> {
|
|
102
|
+
static factory<T extends typeof Temporal>(
|
|
103
|
+
implementation: T,
|
|
104
|
+
): PlainTimeType<T> {
|
|
99
105
|
const transformer = createTemporalTransformer(implementation, 'PlainTime')
|
|
100
|
-
return CustomType.factory<
|
|
106
|
+
return CustomType.factory<InstanceType<T['PlainTime']>, EncodeType>({
|
|
101
107
|
decode: transformer.decode,
|
|
102
108
|
encode: transformer.encode,
|
|
103
109
|
type: iso.time(),
|
|
@@ -106,10 +112,14 @@ export class PlainTimeType extends TransformType<
|
|
|
106
112
|
}
|
|
107
113
|
}
|
|
108
114
|
|
|
109
|
-
export class DurationType
|
|
110
|
-
|
|
115
|
+
export class DurationType<
|
|
116
|
+
T extends typeof Temporal = typeof Temporal,
|
|
117
|
+
> extends TransformType<InstanceType<T['Duration']>, EncodeType> {
|
|
118
|
+
static factory<T extends typeof Temporal>(
|
|
119
|
+
implementation: T,
|
|
120
|
+
): DurationType<T> {
|
|
111
121
|
const transformer = createTemporalTransformer(implementation, 'Duration')
|
|
112
|
-
return CustomType.factory<
|
|
122
|
+
return CustomType.factory<InstanceType<T['Duration']>, EncodeType>({
|
|
113
123
|
decode: transformer.decode,
|
|
114
124
|
encode: transformer.encode,
|
|
115
125
|
type: iso.duration(),
|
|
@@ -118,16 +128,17 @@ export class DurationType extends TransformType<Temporal.Duration, EncodeType> {
|
|
|
118
128
|
}
|
|
119
129
|
}
|
|
120
130
|
|
|
121
|
-
export class PlainYearMonthType
|
|
122
|
-
Temporal
|
|
123
|
-
|
|
124
|
-
>
|
|
125
|
-
|
|
131
|
+
export class PlainYearMonthType<
|
|
132
|
+
T extends typeof Temporal = typeof Temporal,
|
|
133
|
+
> extends TransformType<InstanceType<T['PlainYearMonth']>, EncodeType> {
|
|
134
|
+
static factory<T extends typeof Temporal>(
|
|
135
|
+
implementation: T,
|
|
136
|
+
): PlainYearMonthType<T> {
|
|
126
137
|
const transformer = createTemporalTransformer(
|
|
127
138
|
implementation,
|
|
128
139
|
'PlainYearMonth',
|
|
129
140
|
)
|
|
130
|
-
return CustomType.factory<
|
|
141
|
+
return CustomType.factory<InstanceType<T['PlainYearMonth']>, EncodeType>({
|
|
131
142
|
decode: transformer.decode,
|
|
132
143
|
encode: transformer.encode,
|
|
133
144
|
type: string().check(regex(/^\d{4}-\d{2}$/)),
|
|
@@ -136,16 +147,17 @@ export class PlainYearMonthType extends TransformType<
|
|
|
136
147
|
}
|
|
137
148
|
}
|
|
138
149
|
|
|
139
|
-
export class PlainMonthDayType
|
|
140
|
-
Temporal
|
|
141
|
-
|
|
142
|
-
>
|
|
143
|
-
|
|
150
|
+
export class PlainMonthDayType<
|
|
151
|
+
T extends typeof Temporal = typeof Temporal,
|
|
152
|
+
> extends TransformType<InstanceType<T['PlainMonthDay']>, EncodeType> {
|
|
153
|
+
static factory<T extends typeof Temporal>(
|
|
154
|
+
implementation: T,
|
|
155
|
+
): PlainMonthDayType<T> {
|
|
144
156
|
const transformer = createTemporalTransformer(
|
|
145
157
|
implementation,
|
|
146
158
|
'PlainMonthDay',
|
|
147
159
|
)
|
|
148
|
-
return CustomType.factory<
|
|
160
|
+
return CustomType.factory<InstanceType<T['PlainMonthDay']>, EncodeType>({
|
|
149
161
|
decode: transformer.decode,
|
|
150
162
|
encode: transformer.encode,
|
|
151
163
|
type: string().check(regex(/^\d{2}-\d{2}$/)),
|