@mazhu/tsenum
v1.0.0
Published
Generate TypeScript enums and type definitions from JSON/CSV data
Maintainers
Readme
@mazhu/tsenum
Generate TypeScript enums, interfaces, and type definitions from JSON/CSV data.
Installation
npm install -g @mazhu/tsenumUsage
Generate from JSON
tsenum generate data.json
tsenum generate data.json -o types.ts
tsenum generate data.json --style interfaceGiven 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 RoleGiven roles.csv:
Admin,Developer,Manager,GuestOutput:
// 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,.csvConfiguration
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 resetOptions
| 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
