Home

Awesome

Runtypes-generate

standard-readme compliant npm version

Runtypes-generate convert runtypes type to jsverify arbitrary.

Table of Contents

Background

Property-based testing is very awesome approach for analyze and verification program. But this approach requires the writing of generators for all datatypes in our program. This process is very time-consuming, error-prone and not DRY.

Example:

import { Number, Literal, Array, Tuple, Record } from 'runtypes'
const AsteroidType = Record({
    type: Literal('asteroid'),
    location: Tuple(Number, Number, Number),
    mass: Number,
})

const AsteroidArbitrary = jsc.record({
    type: jsc.constant('asteroid'),
    location: jsc.tuple(jsc.number, jsc.number, jsc.number),
    mass: jsc.number
})

But with runtypes-generate we can get AsteroidArbitrary from AsteroidType:

import { makeJsverifyArbitrary } from 'runtypes-generate'
const AsteroidType = Record({
    type: Literal('asteroid'),
    location: Tuple(Number, Number, Number),
    mass: Number,
})
const AsteroidArbitrary = makeJsverifyArbitrary(AsteroidType)

Install

npm install --save runtypes-generate

Usage

API

Contribute

PRs accepted.

If you had questions just make issue or ask them in my telegram

Small note: If editing the Readme, please conform to the standard-readme specification.

License

MIT © typeetfunc