Naturally Produced Modules

    typetime-json-schema
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.1 • Public • Published

    typetime-json-schema

    a typescript utility type that evaluates a json schema into a type at compiletime. unlike other JSON schema to type converters, this one doesn't use any code generation! :o

    why?

    • unlike code generation, using typescript's type system to convert the schema at compiletime prevents duplicate definitions of your data structure that can easily cause problems if someone updates the schema but not the types, or vice versa
    • wacky types are fun

    example

    type Foo = FromJsonSchema<{
        type: 'object'
        properties: {
            foo: {
                type: 'object'
                properties: {
                    asdf: {
                        type: 'string'
                    }
                }
                additionalProperties: false
            }
            bar: {
                type: 'array'
                items: {
                    type: 'string'
                }
            }
        }
        additionalProperties: false
    }>
    
    // Type '{}' is missing the following properties from type '{ foo: { asdf: string; }; bar: string[]; }': foo, bar
    const foo: Foo = {}

    disclaimers

    • not all features of JSON schema are supported yet. there's probably a bunch of stuff missing. if you notice something i've missed, raise an issue
    • currently only supports JSON schema 7
    • this won't work when importing a schema from a JSON file because its type will be widened rendering it useless. if you want this functionality, updoot this issue

    Keywords

    none

    Install

    npm i typetime-json-schema

    DownloadsWeekly Downloads

    1

    Version

    0.0.1

    License

    ISC

    Unpacked Size

    16.8 kB

    Total Files

    8

    Last publish

    Collaborators

    • detachhead