DateJson
A lightweight (794 bytes) library to add Date support to JSON APIs.
Enables APIs to send database records that contain dates without having to manually transform them.
import { DateJson } from "@forcloud/date-json"
const json = DateJson.toJSON({ createdAt: new Date() })
const jsonWithDates = DateJson.fromJSON(json)
Features
- Lightweight: 795 bytes
- JSON: Transform to/from JSON
- String: Transform to/from string (stringify/parse)
- TypeScript: Keeps type integrity through transformations
TypeScript
Keeps type integrity during encode/decode enabling type safety in API calls.
const json = DateJson.toJSON({ createdAt: new Date() })
type MyJson = typeof json
const jsonWithDates = DateJson.fromJSON(json)
type MyJsonWithDates = typeof jsonWithDates
No $date
Key Allowed
The key $date
is prohibited in toJSON
like in DateJson.toJSON({ $date: 'today' })
. This throws the error Object with key $date is invalid
.
The design is intentional and is there to prevent confusion. Am I looking at a DateJson object or a plain JSON object with $date
in it?