generate-runtypes
TypeScript icon, indicating that this package has built-in type declarations

3.1.1 • Public • Published
Generate Runtypes types

A code generator for Runtypes types

lifecycle NPM version codecov

This library aims to provide an intuitive and easy way to generate Runtypes types. This package aims to be a great utility for a conversion package (e.g. JSON Schema to Runtypes).

We are thankful for all help with adding new functionality, fixing issues, or improve the package. Feel free to open issues and pull requests ❤️

Documentation

Apart from this README, you can find details and examples of using the SDK in the following places:

Example

import { generateRuntypes } from 'generate-runtypes';

const sourceCode = generateRuntypes([
  {
    name: 'Comment',
    type: {
      kind: 'record',
      fields: [
        { name: 'author', type: { kind: 'string' } },
        { name: 'body', type: { kind: 'string' } },
        { name: 'timestamp', type: { kind: 'number' } },
      ],
    },
  },
  {
    name: 'Post',
    export: true,
    type: {
      kind: 'record',
      fields: [
        { name: 'title', type: { kind: 'string' } },
        { name: 'body', type: { kind: 'string' } },
        { name: 'author', type: { kind: 'string' } },
        {
          name: 'comments',
          type: { kind: 'array', type: { kind: 'named', name: 'Comment' } },
        },
      ],
    },
  },
]);

The generated code looks like this after formatting:

import * as rt from 'runtypes';

const Comment = rt.Record({
  author: rt.String,
  body: rt.String,
  timestamp: rt.Number,
});

export const Post = rt.Record({
  title: rt.String,
  body: rt.String,
  author: rt.String,
  comments: rt.Array(Comment),
});

/generate-runtypes/

    Package Sidebar

    Install

    npm i generate-runtypes

    Weekly Downloads

    8

    Version

    3.1.1

    License

    Apache-2.0

    Unpacked Size

    152 kB

    Total Files

    40

    Last publish

    Collaborators

    • simenandre