Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 1.05 KB

README.md

File metadata and controls

39 lines (29 loc) · 1.05 KB

jsonup

https://jsr.io/@tani/jsonup

This is a zero dependency compile-time JSON parser written in TypeScript.

Usage

import { JSONUP, ObjectLike } from 'jsonup' // Node
import { JSONUP, ObjectLike } from 'jsr:@tani/jsonup' // Deno

const src = `{ "name": "jsonup" }`

type Str = typeof src      // Type: `'{ "name": "jsonup" }'`
type Obj = ObjectLike<Str> // Type: `{ name: string }`

/**
 * JSONUP.parse infers the type from a given object.
 * The type parameter is optional.
 */
// Type: `{ name: string }` the inferred record type
// Value: `{ name: "jsonup" }` the generated object
let obj = JSONUP.parse(src) 
let obj = JSONUP.parse<Obj>(src)

/**
 * JSONUP.stringify guarantees the semantic equality between 
 * the generated string and the given literal type. 
 * The type parameter is required (maybe).
 */
// Type: `'{ "name": "jsonup" }'` the given literal type
// Value: `'{ "name": "jsonup" }'` the generated string
const str = JSONUP.stringify<Str>(obj) 

Copyright and License

(c) 2022 TANIGUCHI Masaya. https://git.io/mit-license