Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
196 changes: 104 additions & 92 deletions polyfill/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export namespace Temporal {
*
* The default is `'constrain'`.
*/
overflow?: 'constrain' | 'reject';
overflow?: 'constrain' | 'reject' | undefined;
};

/**
Expand All @@ -45,7 +45,7 @@ export namespace Temporal {
*
* The default is `'constrain'`.
*/
overflow?: 'constrain' | 'balance';
overflow?: 'constrain' | 'balance' | undefined;
};

/**
Expand Down Expand Up @@ -75,7 +75,7 @@ export namespace Temporal {
* The default is `'compatible'`.
*
* */
disambiguation?: 'compatible' | 'earlier' | 'later' | 'reject';
disambiguation?: 'compatible' | 'earlier' | 'later' | 'reject' | undefined;
};

type OffsetDisambiguationOptions = {
Expand Down Expand Up @@ -111,12 +111,10 @@ export namespace Temporal {
* be used to choose the correct instant. However, if the offset is used
* then the `disambiguation` option will be ignored.
*/
offset?: 'use' | 'prefer' | 'ignore' | 'reject';
offset?: 'use' | 'prefer' | 'ignore' | 'reject' | undefined;
};

export type ZonedDateTimeAssignmentOptions = Partial<
AssignmentOptions & ToInstantOptions & OffsetDisambiguationOptions
>;
export type ZonedDateTimeAssignmentOptions = AssignmentOptions & ToInstantOptions & OffsetDisambiguationOptions;

/**
* Options for arithmetic operations like `add()` and `subtract()`
Expand All @@ -130,7 +128,7 @@ export namespace Temporal {
*
* The default is `'constrain'`.
*/
overflow?: 'constrain' | 'reject';
overflow?: 'constrain' | 'reject' | undefined;
};

export type DateUnit = 'year' | 'month' | 'week' | 'day';
Expand Down Expand Up @@ -163,8 +161,8 @@ export namespace Temporal {
* Options for outputting precision in toString() on types with seconds
*/
export type ToStringPrecisionOptions = {
fractionalSecondDigits?: 'auto' | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
smallestUnit?: SmallestUnit<'minute' | 'second' | 'millisecond' | 'microsecond' | 'nanosecond'>;
fractionalSecondDigits?: 'auto' | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | undefined;
smallestUnit?: SmallestUnit<'minute' | 'second' | 'millisecond' | 'microsecond' | 'nanosecond'> | undefined;

/**
* Controls how rounding is performed:
Expand All @@ -180,27 +178,23 @@ export namespace Temporal {
* negative infinity which is usually unexpected. For this reason, `trunc`
* is recommended for most use cases.
*/
roundingMode?: RoundingMode;
roundingMode?: RoundingMode | undefined;
};

export type ShowCalendarOption = {
calendarName?: 'auto' | 'always' | 'never' | 'critical';
calendarName?: 'auto' | 'always' | 'never' | 'critical' | undefined;
};

export type CalendarTypeToStringOptions = Partial<ToStringPrecisionOptions & ShowCalendarOption>;
export type CalendarTypeToStringOptions = ToStringPrecisionOptions & ShowCalendarOption;

export type ZonedDateTimeToStringOptions = Partial<
CalendarTypeToStringOptions & {
timeZoneName?: 'auto' | 'never' | 'critical';
offset?: 'auto' | 'never';
}
>;
export type ZonedDateTimeToStringOptions = CalendarTypeToStringOptions & {
timeZoneName?: 'auto' | 'never' | 'critical' | undefined;
offset?: 'auto' | 'never' | undefined;
};

export type InstantToStringOptions = Partial<
ToStringPrecisionOptions & {
timeZone: TimeZoneLike;
}
>;
export type InstantToStringOptions = ToStringPrecisionOptions & {
timeZone?: TimeZoneLike | undefined;
};

/**
* Options to control the result of `until()` and `since()` methods in
Expand All @@ -213,7 +207,7 @@ export namespace Temporal {
* `since()`, because those methods default behavior is not to round.
* However, the same property is required for `round()`.
*/
smallestUnit?: SmallestUnit<T>;
smallestUnit?: SmallestUnit<T> | undefined;

/**
* The largest unit to allow in the resulting `Temporal.Duration` object.
Expand All @@ -231,14 +225,14 @@ export namespace Temporal {
* The default is always `'auto'`, though the meaning of this depends on the
* type being used.
*/
largestUnit?: LargestUnit<T>;
largestUnit?: LargestUnit<T> | undefined;

/**
* Allows rounding to an integer number of units. For example, to round to
* increments of a half hour, use `{ smallestUnit: 'minute',
* roundingIncrement: 30 }`.
*/
roundingIncrement?: number;
roundingIncrement?: number | undefined;

/**
* Controls how rounding is performed:
Expand All @@ -256,7 +250,7 @@ export namespace Temporal {
* negative infinity which is usually unexpected. For this reason, `trunc`
* is recommended for most use cases.
*/
roundingMode?: RoundingMode;
roundingMode?: RoundingMode | undefined;
}

/**
Expand All @@ -282,7 +276,7 @@ export namespace Temporal {
* increments of a half hour, use `{ smallestUnit: 'minute',
* roundingIncrement: 30 }`.
*/
roundingIncrement?: number;
roundingIncrement?: number | undefined;

/**
* Controls how rounding is performed:
Expand All @@ -298,7 +292,7 @@ export namespace Temporal {
* negative infinity which is usually unexpected. For this reason, `trunc`
* is recommended for most use cases.
*/
roundingMode?: RoundingMode;
roundingMode?: RoundingMode | undefined;
};

/**
Expand Down Expand Up @@ -340,7 +334,7 @@ export namespace Temporal {
* If `smallestUnit` is larger, then `smallestUnit` will be used as
* `largestUnit`, superseding a caller-supplied or default value.
*/
largestUnit?: LargestUnit<DateTimeUnit>;
largestUnit?: LargestUnit<DateTimeUnit> | undefined;
}
| {
/**
Expand All @@ -349,7 +343,7 @@ export namespace Temporal {
* required, but is optional if `largestUnit` is provided and not
* undefined.
*/
smallestUnit?: SmallestUnit<DateTimeUnit>;
smallestUnit?: SmallestUnit<DateTimeUnit> | undefined;

/**
* The largest unit to allow in the resulting `Temporal.Duration`
Expand Down Expand Up @@ -378,7 +372,7 @@ export namespace Temporal {
* to increments of a half hour, use `{ smallestUnit: 'minute',
* roundingIncrement: 30 }`.
*/
roundingIncrement?: number;
roundingIncrement?: number | undefined;

/**
* Controls how rounding is performed:
Expand All @@ -397,7 +391,7 @@ export namespace Temporal {
* unexpected. For this reason, `trunc` is recommended for most "round
* down" use cases.
*/
roundingMode?: RoundingMode;
roundingMode?: RoundingMode | undefined;

/**
* The starting point to use for rounding and conversions when
Expand All @@ -423,7 +417,13 @@ export namespace Temporal {
* time zone transitions and all days will be assumed to be 24 hours
* long.
*/
relativeTo?: Temporal.PlainDateTime | Temporal.ZonedDateTime | PlainDateTimeLike | ZonedDateTimeLike | string;
relativeTo?:
| Temporal.PlainDateTime
| Temporal.ZonedDateTime
| PlainDateTimeLike
| ZonedDateTimeLike
| string
| undefined;
});

/**
Expand Down Expand Up @@ -459,7 +459,13 @@ export namespace Temporal {
* this option is omitted), then the operation will ignore time zone
* transitions and all days will be assumed to be 24 hours long.
*/
relativeTo?: Temporal.ZonedDateTime | Temporal.PlainDateTime | ZonedDateTimeLike | PlainDateTimeLike | string;
relativeTo?:
| Temporal.ZonedDateTime
| Temporal.PlainDateTime
| ZonedDateTimeLike
| PlainDateTimeLike
| string
| undefined;
};

/**
Expand All @@ -486,7 +492,13 @@ export namespace Temporal {
* this option is omitted), then the operation will ignore time zone
* transitions and all days will be assumed to be 24 hours long.
*/
relativeTo?: Temporal.ZonedDateTime | Temporal.PlainDateTime | ZonedDateTimeLike | PlainDateTimeLike | string;
relativeTo?:
| Temporal.ZonedDateTime
| Temporal.PlainDateTime
| ZonedDateTimeLike
| PlainDateTimeLike
| string
| undefined;
}

/**
Expand All @@ -495,16 +507,16 @@ export namespace Temporal {
export type TransitionDirection = 'next' | 'previous' | { direction: 'next' | 'previous' };

export type DurationLike = {
years?: number;
months?: number;
weeks?: number;
days?: number;
hours?: number;
minutes?: number;
seconds?: number;
milliseconds?: number;
microseconds?: number;
nanoseconds?: number;
years?: number | undefined;
months?: number | undefined;
weeks?: number | undefined;
days?: number | undefined;
hours?: number | undefined;
minutes?: number | undefined;
seconds?: number | undefined;
milliseconds?: number | undefined;
microseconds?: number | undefined;
nanoseconds?: number | undefined;
};

/**
Expand Down Expand Up @@ -615,11 +627,11 @@ export namespace Temporal {
export type PlainDateLike = {
era?: string | undefined;
eraYear?: number | undefined;
year?: number;
month?: number;
monthCode?: string;
day?: number;
calendar?: CalendarLike;
year?: number | undefined;
month?: number | undefined;
monthCode?: string | undefined;
day?: number | undefined;
calendar?: CalendarLike | undefined;
};

/**
Expand Down Expand Up @@ -673,7 +685,7 @@ export namespace Temporal {
| string
| {
timeZone: TimeZoneLike;
plainTime?: Temporal.PlainTime | PlainTimeLike | string;
plainTime?: Temporal.PlainTime | PlainTimeLike | string | undefined;
}
): Temporal.ZonedDateTime;
toPlainYearMonth(): Temporal.PlainYearMonth;
Expand All @@ -688,17 +700,17 @@ export namespace Temporal {
export type PlainDateTimeLike = {
era?: string | undefined;
eraYear?: number | undefined;
year?: number;
month?: number;
monthCode?: string;
day?: number;
hour?: number;
minute?: number;
second?: number;
millisecond?: number;
microsecond?: number;
nanosecond?: number;
calendar?: CalendarLike;
year?: number | undefined;
month?: number | undefined;
monthCode?: string | undefined;
day?: number | undefined;
hour?: number | undefined;
minute?: number | undefined;
second?: number | undefined;
millisecond?: number | undefined;
microsecond?: number | undefined;
nanosecond?: number | undefined;
calendar?: CalendarLike | undefined;
};

/**
Expand Down Expand Up @@ -791,11 +803,11 @@ export namespace Temporal {
export type PlainMonthDayLike = {
era?: string | undefined;
eraYear?: number | undefined;
year?: number;
month?: number;
monthCode?: string;
day?: number;
calendar?: CalendarLike;
year?: number | undefined;
month?: number | undefined;
monthCode?: string | undefined;
day?: number | undefined;
calendar?: CalendarLike | undefined;
};

/**
Expand Down Expand Up @@ -825,12 +837,12 @@ export namespace Temporal {
}

export type PlainTimeLike = {
hour?: number;
minute?: number;
second?: number;
millisecond?: number;
microsecond?: number;
nanosecond?: number;
hour?: number | undefined;
minute?: number | undefined;
second?: number | undefined;
millisecond?: number | undefined;
microsecond?: number | undefined;
nanosecond?: number | undefined;
};

/**
Expand Down Expand Up @@ -898,10 +910,10 @@ export namespace Temporal {
export type PlainYearMonthLike = {
era?: string | undefined;
eraYear?: number | undefined;
year?: number;
month?: number;
monthCode?: string;
calendar?: CalendarLike;
year?: number | undefined;
month?: number | undefined;
monthCode?: string | undefined;
calendar?: CalendarLike | undefined;
};

/**
Expand Down Expand Up @@ -957,19 +969,19 @@ export namespace Temporal {
export type ZonedDateTimeLike = {
era?: string | undefined;
eraYear?: number | undefined;
year?: number;
month?: number;
monthCode?: string;
day?: number;
hour?: number;
minute?: number;
second?: number;
millisecond?: number;
microsecond?: number;
nanosecond?: number;
offset?: string;
timeZone?: TimeZoneLike;
calendar?: CalendarLike;
year?: number | undefined;
month?: number | undefined;
monthCode?: string | undefined;
day?: number | undefined;
hour?: number | undefined;
minute?: number | undefined;
second?: number | undefined;
millisecond?: number | undefined;
microsecond?: number | undefined;
nanosecond?: number | undefined;
offset?: string | undefined;
timeZone?: TimeZoneLike | undefined;
calendar?: CalendarLike | undefined;
};

export class ZonedDateTime {
Expand Down