From 7d1772ba188c734e56b5d3443162742a4be507a1 Mon Sep 17 00:00:00 2001 From: SliveredMindOps Date: Wed, 1 Jul 2020 22:04:38 +0200 Subject: [PATCH] added singularTableNames option --- package.json | 2 ++ src/options.ts | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index dbeeb22..60b535c 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "@types/proxyquire": "^1.3.27", "@types/sinon": "^2.1.2", "@types/yargs": "^6.3.3", + "@types/pluralize": "0.0.29", "coveralls": "^2.11.15", "del-cli": "^0.2.0", "dependency-check": "^2.6.0", @@ -70,6 +71,7 @@ "mysql": "^2.13.0", "mz": "^2.6.0", "pg-promise": "^6.3.6", + "pluralize": "^8.0.0", "typescript": "^2.7.1", "typescript-formatter": "^7.0.1", "yargs": "^8.0.1" diff --git a/src/options.ts b/src/options.ts index 139aeaa..2dbd72a 100644 --- a/src/options.ts +++ b/src/options.ts @@ -1,13 +1,16 @@ import { camelCase, upperFirst } from 'lodash' +import { singular } from 'pluralize'; const DEFAULT_OPTIONS: OptionValues = { writeHeader: true, - camelCase: false + camelCase: false, + singularTableNames: false } export type OptionValues = { camelCase?: boolean writeHeader?: boolean // write schemats description header + singularTableNames?: boolean } export default class Options { @@ -18,6 +21,12 @@ export default class Options { } transformTypeName (typename: string) { + if (this.options.singularTableNames) + typename = singular(typename); + + if (this.options.camelCase) + typename = upperFirst(camelCase(typename)); + return this.options.camelCase ? upperFirst(camelCase(typename)) : typename }