@ehmpathy/uni-time
TypeScript icon, indicating that this package has built-in type declarations

1.4.0 • Public • Published

uni-time

test publish

A glossary of intuitive, universally unambiguous time, date, and duration domain literals.

purpose

declare a universally unambiguous serialization format for dates, times, and datetime

  • UniDate = yyyy-MM-dd
  • UniTime = hh:mm:ss.sss
  • UniDateTime = yyyy-MM-ddThh:mm:ss.sssZ

declare a universally intuitive interface for durations

  • UniDuration

usecases

  • clarify the format a date string should be in (const since: UniDate = '2013-12-15)
  • cast date to universal format (const birthday: UniDate = toUniDate(new Date()))
  • narrow type of strings with runtime validation (if (!isUniDate(since)) throw new Error('wrong format'))

install

npm install uni-time

use

Time, Date, DateTime

declare that a date or datetime must be in the universal format

const noon: UniTime;
const birthday: UniDate;
const occurredAt: UniDateTime;

assure that a date or datetime is in the universal format

const noon: UniTime = isUniTime.assure('12:00:00.000')
const birthday: UniDate = isUniDate.assure('2013-12-15')
const occurredAt: UniDateTime = isUniDateTime.assure('2013-12-15T07:21:13.555Z')

cast a date or datetime into the universal format

const birthday: UniDate = asUniDate(new Date())
const occurredAt: UniDateTime = asUniDateTime(new Date())

Duration

declare a duration intuitively

const duration: UniDuration = { minutes: 7 }

serialize to milliseconds

const durationInMs = toMilliseconds({ minutes: 7 })

sleep

await sleep({ minutes: 7 })

Package Sidebar

Install

npm i @ehmpathy/uni-time

Weekly Downloads

17

Version

1.4.0

License

MIT

Unpacked Size

24.6 kB

Total Files

39

Last publish

Collaborators

  • uladkasach