Skip to content

nitzano/enum-converter

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Enum Converter (enumc)

Convert Enums from one language to another.

Live demo : https://enum-converter.vercel.app (source)

npm npm-next npm-downloads-week test workflow release workflow

license semantic-release Commitizen friendly


Supported languages

  • Java
  • Json
  • Python
  • Typescript
  • C/C++
  • C#
  • Go

Installation

npm install -g enum-converter

Usage

CLI

enumc <file> [options]

// convert files
enumc enums.py --to typescript
enumc enums.ts --to python --out my-enums.py
enumc enums.x --from python --to json
enumc enums.py --to typescript --sort-enums asc

// modify existing files
enumc enums.py --modify --name-style kebab --key-style upper 
enumc enums.py --modify --sort-enums=asc --sort-values=value_desc

API

import {
  convert,
  EnumsOrder,
  Language,
  modify,
  StringStyle,
  ValuesOrder,
} from 'enum-converter';

// convert files
convert('enums.py', Language.Typescript);

convert('enums.ts', Language.Python, {
  out: 'my-enums.py'
});

convert('enums.x', Language.Json, {
  from: Language.Python
});

convert('enums.py', Language.Typescript, {
  sortEnums: EnumsOrder.Ascending
});

// modify exiting files
modify('enums.py' {
  nameStyle: StringStyle.KebabCase,
  keyStyle: StringStyle.UpperCase,
})

modify('enums.py' {
  sortEnums: EnumsOrder.Ascending,
  sortValues: ValuesOrder.ValueDescending,
})

Options

Conversion

Name Meaning type default
from source language (explicit) Language
to destination language Language
out destination file string
modify modify existing file boolean false

Styling

Name Meaning type default
emit-file-name emit source file name to destination file boolean true
emit-stats emit stats to destination file boolean true
sort-enums sort enums in files EnumsOrder
sort-values sort values in enums ValuesOrder
key-style style enum key string StringStyle
name-style style enum name string StringStyle
value-style style enum value (strings only) StringStyle