From e4761d8f5023e5f7e07d61c0061cac3b9e345b38 Mon Sep 17 00:00:00 2001 From: zhangrubing Date: Thu, 20 Aug 2020 10:05:23 +0800 Subject: [PATCH] Add snake case properties --- src/IGenerationOptions.ts | 2 +- src/ModelGeneration.ts | 3 +++ src/index.ts | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/IGenerationOptions.ts b/src/IGenerationOptions.ts index 13bb2d8..f41563e 100644 --- a/src/IGenerationOptions.ts +++ b/src/IGenerationOptions.ts @@ -11,7 +11,7 @@ export default interface IGenerationOptions { noConfigs: boolean; convertCaseFile: "pascal" | "param" | "camel" | "none"; convertCaseEntity: "pascal" | "camel" | "none"; - convertCaseProperty: "pascal" | "camel" | "none"; + convertCaseProperty: "pascal" | "camel" | "snake" | "none"; convertEol: "LF" | "CRLF"; propertyVisibility: "public" | "protected" | "private" | "none"; lazy: boolean; diff --git a/src/ModelGeneration.ts b/src/ModelGeneration.ts index beb96e6..f9e3de4 100644 --- a/src/ModelGeneration.ts +++ b/src/ModelGeneration.ts @@ -212,6 +212,9 @@ function createHandlebarsHelpers(generationOptions: IGenerationOptions): void { case "none": retStr = str; break; + case "snake": + retStr = changeCase.snakeCase(str); + break; default: throw new Error("Unknown case style"); } diff --git a/src/index.ts b/src/index.ts index 573b635..ea72383 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,6 +11,7 @@ import IGenerationOptions, { import fs = require("fs-extra"); import inquirer = require("inquirer"); import path = require("path"); +import { string } from "yargs"; // eslint-disable-next-line @typescript-eslint/no-floating-promises CliLogic(); @@ -211,7 +212,7 @@ function checkYargsParameters(options: options): options { }, cp: { alias: "case-property", - choices: ["pascal", "camel", "none"], + choices: ["pascal", "camel", "snake", "none"], default: options.generationOptions.convertCaseProperty, describe: "Convert property names to specified case", },