Skip to content

deepdadou/tsenum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@mazhu/tsenum

Generate TypeScript enums, interfaces, and type definitions from JSON/CSV data.

Installation

npm install -g @mazhu/tsenum

Usage

Generate from JSON

tsenum generate data.json
tsenum generate data.json -o types.ts
tsenum generate data.json --style interface

Given data.json:

{
  "User": {
    "name": "string",
    "age": "number",
    "email": "string",
    "active": "boolean"
  },
  "Status": {
    "Active": 1,
    "Inactive": 0,
    "Pending": 2
  }
}

Output types.ts:

// Auto-generated by @mazhu/tsenum
export interface User {
  name: string;
  age: number;
  email: string;
  active: boolean;
}

export enum Status {
  Active = 1,
  Inactive = 0,
  Pending = 2,
}

Generate from CSV

tsenum generate roles.csv
tsenum generate roles.csv -o enums.ts --name Role

Given roles.csv:

Admin,Developer,Manager,Guest

Output:

// Auto-generated by @mazhu/tsenum
export enum Role {
  Admin = "Admin",
  Developer = "Developer",
  Manager = "Manager",
  Guest = "Guest",
}

Generate from API

tsenum from-api https://api.example.com/users
tsenum from-api https://api.example.com/data -o api-types.ts --header "Authorization: Bearer token"

Watch Mode

tsenum watch ./schemas -o ./src/types
tsenum watch ./data --ext .json,.csv

Configuration

tsenum config set outputDir ./src/types
tsenum config set style interface
tsenum config set quote single
tsenum config set semi false
tsenum config get
tsenum config reset

Options

Flag Description Default
-o, --output Output file path stdout
--style Output style: enum, interface, type, const enum
--name Type/enum name Inferred from filename
--root-name Root type name for nested JSON Inferred
--header HTTP header for API requests -
--ext File extensions to watch .json,.csv
--quote Quote style: single, double double
--semi Add semicolons true
--no-header-comment Skip auto-generated comment false
-v, --version Show version -
-h, --help Show help -

Config File

Configuration is stored in ~/.tsenumrc.json:

{
  "outputDir": "./src/types",
  "style": "interface",
  "quote": "single",
  "semi": false
}

License

MIT

About

TypeScript enum/type generator CLI from JSON/CSV data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors