This is the dtsgenerator-plugin-use-enums
plugin.
Use this plugin to generate enums from schemas with the dtsgenerator
package by @horiuchi.
npm install dtsgenerator-plugin-use-enums
yarn add dtsgenerator-plugin-use-enums
dtsgen.json
- the type of configuration
type Config = {
enumStrategy?: EnumStrategy;
consistentEnumCasing?: EnumCasing;
constEnums?: boolean;
};
export type EnumStrategy =
| 'schema'
| 'all'
type EnumCasing =
| 'value' /* Both key and value take the casing of the value. 'foo bar' would generate `'foo bar' = 'foo bar'` */
| 'upper' /* Both key and value take upper snake case of the value. 'foo bar' would generate `FOO_BAR = 'FOO_BAR'` */
| 'lower' /* Both key and value take snake case of the value. 'foo bar' would generate `foo_bar = 'foo_bar'` */
| 'pascal' /* Both key and value take pascal case of the value. 'foo bar' would generate `FooBar = 'FooBar'` */
key | type | description | Required | Default |
---|---|---|---|---|
enumStrategy | EnumStrategy | undefined |
Determines whether enums are created only from schema-defined enums, or from all string unions | no | "schema" |
consistentEnumCasing | EnumCasing | undefined |
If passed, enforces consistent casing. If not passed, keys are PascalCase and values are as they were | no | undefined |
constEnums | boolean | undefined |
Whether or not to use const enums | no | false |
- Example
{
"enumStrategy": "all", // default "schema"
"consistentEnumCasing": "upper", // default undefined
"constEnums": true // default false
}
npm run build
npm test
- TypeScript
- eslint
-
index.ts
: plugin main file -
test/snapshot_test.ts
: test main file. should not edit this file. -
test/post_snapshots/
: post process test patterns. Please add folder if you need. -
test/pre_snapshots/
: pre process test patterns. Please add folder if you need.
-
npm run build
: transpile this plugin. This command need before publishing this plugin. -
npm test
: test this plugin with coverage. -
npm run clean
: remove all compiled files.
-
npm run watch
: watch editing files for compile. -
npm run lint:fix
: fix lint error automatically. -
npm run test:update-snapshot
: update snapshot files for unit test. -
npm run coverage
: report to coveralls. Need coveralls configuration file.