@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.
@@ -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;
@@ -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,sBAAsB,CAAA;AAE7B,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,QAAQ,CACT,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GACxB,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAwB,aAAa,CAAC,OAAO,CAAC,IAAI,CACtE,aAAa,EACb,QAAQ,CACT,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GACxB,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAuB,YAAY,CAAC,OAAO,CAAC,IAAI,CACnE,YAAY,EACZ,QAAQ,CACT,CAAA;AACD,MAAM,CAAC,MAAM,cAAc,GACzB,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;AAC/D,MAAM,CAAC,MAAM,aAAa,GACxB,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA"}
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, 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);
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,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;AAC5E,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CACzD,iBAAiB,EACjB,QAAQ,CACT,CAAA;AACD,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;AAC5E,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CACzD,iBAAiB,EACjB,QAAQ,CACT,CAAA;AACD,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAC3D,kBAAkB,EAClB,QAAQ,CACT,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CACzD,iBAAiB,EACjB,QAAQ,CACT,CAAA"}
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"}
@@ -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<Temporal.PlainDate, EncodeType> {
6
- static factory(implementation: typeof Temporal): PlainDateType;
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<Temporal.PlainDateTime, EncodeType> {
9
- static factory(implementation: typeof Temporal): PlainDateTimeType;
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<Temporal.ZonedDateTime, EncodeType> {
12
- static factory(implementation: typeof Temporal): ZonedDateTimeType;
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<Temporal.PlainTime, EncodeType> {
15
- static factory(implementation: typeof Temporal): PlainTimeType;
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<Temporal.Duration, EncodeType> {
18
- static factory(implementation: typeof Temporal): DurationType;
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<Temporal.PlainYearMonth, EncodeType> {
21
- static factory(implementation: typeof Temporal): PlainYearMonthType;
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<Temporal.PlainMonthDay, EncodeType> {
24
- static factory(implementation: typeof Temporal): PlainMonthDayType;
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 {};
@@ -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) => implementation[type].from(value), encode = (value) => value.toString({
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":"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"}
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.50"
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.50"
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.50",
52
+ "version": "0.15.0-beta.52",
53
53
  "scripts": {
54
54
  "clean-build": "rm -rf ./dist"
55
55
  }
@@ -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)
@@ -10,22 +10,65 @@ import {
10
10
  ZonedDateTimeType,
11
11
  } from '../types/temporal.ts'
12
12
 
13
- export const plainDate = PlainDateType.factory.bind(PlainDateType, Temporal)
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
- export const plainTime = PlainTimeType.factory.bind(PlainTimeType, Temporal)
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
- export const duration = DurationType.factory.bind(DurationType, Temporal)
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
+ >
@@ -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) => ReturnType<(typeof Temporal)[T]['from']>
14
- encode: (value: ReturnType<(typeof Temporal)[T]['from']>) => string
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: typeof Temporal,
19
- type: T,
20
- decode = (value: string) => implementation[type].from(value),
21
- encode = (value: ReturnType<(typeof Temporal)[T]['from']>) =>
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 extends TransformType<
34
- Temporal.PlainDate,
35
- EncodeType
36
- > {
37
- static factory(implementation: typeof Temporal): PlainDateType {
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<Temporal.PlainDate, EncodeType>({
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 extends TransformType<
49
- Temporal.PlainDateTime,
50
- EncodeType
51
- > {
52
- static factory(implementation: typeof Temporal): PlainDateTimeType {
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<Temporal.PlainDateTime, EncodeType>({
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 extends TransformType<
67
- Temporal.ZonedDateTime,
68
- EncodeType
69
- > {
70
- static factory(implementation: typeof Temporal): ZonedDateTimeType {
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<Temporal.ZonedDateTime, EncodeType>({
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 extends TransformType<
95
- Temporal.PlainTime,
96
- EncodeType
97
- > {
98
- static factory(implementation: typeof Temporal): PlainTimeType {
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<Temporal.PlainTime, EncodeType>({
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 extends TransformType<Temporal.Duration, EncodeType> {
110
- static factory(implementation: typeof Temporal): DurationType {
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<Temporal.Duration, EncodeType>({
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 extends TransformType<
122
- Temporal.PlainYearMonth,
123
- EncodeType
124
- > {
125
- static factory(implementation: typeof Temporal): PlainYearMonthType {
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<Temporal.PlainYearMonth, EncodeType>({
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 extends TransformType<
140
- Temporal.PlainMonthDay,
141
- EncodeType
142
- > {
143
- static factory(implementation: typeof Temporal): PlainMonthDayType {
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<Temporal.PlainMonthDay, EncodeType>({
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}$/)),