vremel
Version:
JavaScript date utility library for Temporal API
148 lines • 4.11 kB
JavaScript
/** @internal */
export function isInstant(dt) {
return dt[Symbol.toStringTag] === "Temporal.Instant";
}
/** @internal */
export function isZonedDateTime(dt) {
return dt[Symbol.toStringTag] === "Temporal.ZonedDateTime";
}
/** @internal */
export function isPlainDateTime(dt) {
return dt[Symbol.toStringTag] === "Temporal.PlainDateTime";
}
/** @internal */
export function isPlainTime(dt) {
return dt[Symbol.toStringTag] === "Temporal.PlainTime";
}
/** @internal */
export function isPlainDate(dt) {
return dt[Symbol.toStringTag] === "Temporal.PlainDate";
}
/** @internal */
export function isPlainYearMonth(dt) {
return dt[Symbol.toStringTag] === "Temporal.PlainYearMonth";
}
/** @internal */
export function isPlainMonthDay(dt) {
return dt[Symbol.toStringTag] === "Temporal.PlainMonthDay";
}
/** @internal */
export function isDuration(dt) {
return dt[Symbol.toStringTag] === "Temporal.Duration";
}
/** @internal */
export function isInstantArray(a) {
return a.every((dt) => isInstant(dt));
}
/** @internal */
export function isZonedDateTimeArray(a) {
return a.every((dt) => isZonedDateTime(dt));
}
/** @internal */
export function isPlainDateTimeArray(a) {
return a.every((dt) => isPlainDateTime(dt));
}
/** @internal */
export function isPlainDateArray(a) {
return a.every((dt) => isPlainDate(dt));
}
/** @internal */
export function isPlainTimeArray(a) {
return a.every((dt) => isPlainTime(dt));
}
/** @internal */
export function isPlainYearMonthArray(a) {
return a.every((dt) => isPlainYearMonth(dt));
}
/** @internal */
export function isPlainMonthDayArray(a) {
return a.every((dt) => isPlainMonthDay(dt));
}
/** @internal */
export function isDurationArray(a) {
return a.every((dt) => isDuration(dt));
}
/** @internal */
export function isInstantConstructor(c) {
return isInstant(c.from("2024-01-01T00:00:00+00:00[Europe/London]"));
}
/** @internal */
export function isZonedDateTimeConstructor(c) {
return isZonedDateTime(c.from("2024-01-01T00:00:00+00:00[Europe/London]"));
}
/** @internal */
export function isPlainDateConstructor(c) {
return isPlainDate(c.from("2024-01-01T00:00:00+00:00[Europe/London]"));
}
/** @internal */
export function isPlainTimeConstructor(c) {
return isPlainTime(c.from("2024-01-01T00:00:00+00:00[Europe/London]"));
}
/** @internal */
export function isPlainDateTimeConstructor(c) {
return isPlainDateTime(c.from("2024-01-01T00:00:00+00:00[Europe/London]"));
}
/** @internal */
export function isPlainYearMonthConstructor(c) {
return isPlainYearMonth(c.from("2024-01-01T00:00:00+00:00[Europe/London]"));
}
/** @internal */
export function isPlainMonthDayConstructor(c) {
return isPlainMonthDay(c.from("2024-01-01T00:00:00+00:00[Europe/London]"));
}
/** @internal */
export function getTypeName(dt) {
if (isDuration(dt)) {
return "Temporal.Duration";
}
if (isInstant(dt)) {
return "Temporal.Instant";
}
if (isZonedDateTime(dt)) {
return "Temporal.ZonedDateTime";
}
if (isPlainDate(dt)) {
return "Temporal.PlainDate";
}
if (isPlainTime(dt)) {
return "Temporal.PlainTime";
}
if (isPlainDateTime(dt)) {
return "Temporal.PlainDateTime";
}
if (isPlainYearMonth(dt)) {
return "Temporal.PlainYearMonth";
}
if (isPlainMonthDay(dt)) {
return "Temporal.PlainMonthDay";
}
throw new Error("Unknown type");
}
export function getConstructor(dt) {
if (isDuration(dt)) {
return dt.constructor;
}
if (isInstant(dt)) {
return dt.constructor;
}
if (isZonedDateTime(dt)) {
return dt.constructor;
}
if (isPlainDate(dt)) {
return dt.constructor;
}
if (isPlainTime(dt)) {
return dt.constructor;
}
if (isPlainDateTime(dt)) {
return dt.constructor;
}
if (isPlainYearMonth(dt)) {
return dt.constructor;
}
if (isPlainMonthDay(dt)) {
return dt.constructor;
}
throw new Error(`Unknown object: ${dt}`);
}
//# sourceMappingURL=type-utils.js.map