🚀. Socket Launch Week Day 3:Socket Firewall Now Blocks Malicious VS Code and Open VSX Extensions.Learn more
Sign In

@runtyping/zod

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@runtyping/zod

Generate zod from static types & JSON schema.

latest
npmnpm
Version
5.0.3
Version published
Weekly downloads
7.7K
71.06%
Maintainers
1
Weekly downloads
 
Created
Source

@runtyping/zod

Generate zod from static types & JSON schema.

Instructions

Install

npm install zod
npm install -D @runtyping/zod

Use from the command line

  • Create a file, in the root of your project, called "runtyping.yml".

    # runtyping.yml
    
    targetFile: ./src/other-runtypes.ts # The file to create
    runtypeFormat: {type}Rt # Optional: use a custom name format for the created runtype
    transformers: # Optional: specify a transformer for a type
      [TYPENAME]:
        file: /path/to/transformer
        export: exportNameOfTranformer
    typeFormat: {type}Type  # Optional: use a custom name format for the created type
    sourceTypes:
      exportStaticType: true # Optional: export static types as well (true by default)
      file: ./src/types.ts # The file where your type lives
      type: Foo # The type you want to convert to a runtype
    

    You can also specify a list of target files, if you want to create more than one:

    # runtyping.yml
    
    - targetFile: ./src/other-runtypes.ts
      sourceTypes:
        file: ./src/types.ts
        type: Foo
    
    - targetFile: ./src/runtypes.ts
      sourceTypes:
        # Source types can also be a list
        - file: ./src/types.ts
          type: Foo
    
        - file: ./json/my-json-schema.json # You can even use JSON schema files!!
          type: [ExampleType, AnotherExampleType] # You may use an array of types
    
  • Then run: npx runtyping

Use from a script

Basic example:

import { Generator } from '@runtyping/zod'

const generator = new Generator({
  targetFile: './src/runtypes.ts',
  // optional: runtypeFormat / typeFormat (see above)
})

generator
  .generate([
    { file: './src/types.ts', type: 'Foo' },
    { file: 'json/my-json-schema.json', type: 'ExampleType' },
  ])
  .then((file) => file.save())

Passing a custom tsconfig file

import { Generator } from '@runtyping/zod'
const generator = new Generator({
  targetFile: './src/runtypes.ts',
  tsConfigFile: '/path/to/tsconfig.json',
})

Passing a custom ts-morph project (for the internal compiler)

(see generate.ts for the defaults)

import { Project } from 'ts-morph'
import { Generator } from '@runtyping/zod'

const generator = new Generator({
  targetFile: './src/runtypes.ts',
  project: new Project({
    // ...
  }),
})

FAQs

Package last updated on 04 Jun 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts