npm temporal-polyfill 0.3.0

5 months ago
  • Updated to March 2025 version of Temporal spec (#47). Including but not limited to:
    • timeZones can ONLY be strings; no longer accepts custom objects
    • calendars can ONLY be strings; no longer accepts custom objects
    • Temporal.TimeZone class removed; most functionality exists on Temporal.ZonedDateTime
      • Added zonedDateTime.getTimeZoneTransition()
    • Temporal.Calendar class removed; all functionality exists on Plain/Zoned types
    • .getISOFields() methods removed on all Plain/Zoned types
    • Better conformance for Intl.DateTimeFormat
    • Many removals, with alternatives:
// Temporal.Now

 Temporal.Now.zonedDateTime(calendar)
 Temporal.Now.zonedDateTimeISO().withCalendar(calendar)

 Temporal.Now.plainDateTime(calendar)
 Temporal.Now.plainDateTimeISO().withCalendar(calendar)

 Temporal.Now.plainDate(calendar)
 Temporal.Now.plainDateISO().withCalendar(calendar)

// Temporal.Instant

 Temporal.Instant.fromEpochSeconds(seconds)
 Temporal.Instant.fromEpochMilliseconds(seconds * 1000)

 Temporal.Instant.fromEpochMicroseconds(micro)
 Temporal.Instant.fromEpochNanoseconds(micro * 1000n)

 instant.epochSeconds
 instant.epochMilliseconds / 1000

 instant.epochMicroseconds
 instant.epochNanoseconds / 1000n

 instant.toZonedDateTime()
 instant.toZonedDateTimeISO().withCalendar(cal)

// Temporal.ZonedDateTime

 zonedDateTime.epochSeconds
 zonedDateTime.epochMilliseconds / 1000

 zonedDateTime.epochMicroseconds
 zonedDateTime.epochNanoseconds / 1000n

 zonedDateTime.withPlainDate(plainDate)
 plainDate.toZonedDateTime({
     plainTime: zonedDateTime,
     timeZone: zonedDateTime.timeZone,
   })

 zonedDateTime.toPlainYearMonth()
 zonedDateTime.toPlainDate().toPlainYearMonth()

 zonedDateTime.toPlainMonthDay()
 zonedDateTime.toPlainDate().toPlainMonthDay()

// Temporal.PlainDateTime

 plainDateTime.toPlainYearMonth()
 plainDateTime.toPlainDate().toPlainYearMonth()

 plainDateTime.toPlainMonthDay()
 plainDateTime.toPlainDate().toPlainMonthDay()

 plainDateTime.withPlainDate(plainDate)
 plainDate.toPlainDateTime(plainDateTime)

// Temporal.PlainTime

 plainTime.toPlainDateTime(plainDate)
 plainDate.toPlainDateTime(plainTime)

 plainTime.toZonedDateTime({ plainDate, timeZone })
 plainDate.toZonedDateTime({ plainTime, timeZone })

Learn more about these breaking changes »

Don't miss a new temporal-polyfill release

NewReleases is sending notifications on new releases.