From 48598c1f7331d39ee73f2c05787e359b9779787b Mon Sep 17 00:00:00 2001 From: Webber Date: Wed, 24 Aug 2022 01:23:22 +0200 Subject: [PATCH] chore: cleanup parameters part 2/* --- src/model/parameter-options.ts | 18 ++++++++++++++++++ src/model/parameter.ts | 14 ++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/model/parameter-options.ts create mode 100644 src/model/parameter.ts diff --git a/src/model/parameter-options.ts b/src/model/parameter-options.ts new file mode 100644 index 00000000..c8735414 --- /dev/null +++ b/src/model/parameter-options.ts @@ -0,0 +1,18 @@ +type ParameterOption = { + cli: boolean; + env: boolean; + cfg: boolean; + defaultValue: T; +}; + +// Todo - use CLI lib to define this instead. +export class ParameterOptions { + static get region(): ParameterOption { + return { + cli: true, + env: true, + cfg: true, + defaultValue: 'eu-west-2', + }; + } +} diff --git a/src/model/parameter.ts b/src/model/parameter.ts new file mode 100644 index 00000000..b8c12878 --- /dev/null +++ b/src/model/parameter.ts @@ -0,0 +1,14 @@ +export class Parameter { + public static toUpperSnakeCase(input: string) { + if (input.toUpperCase() === input) return input; + + return input.replace(/([\da-z])([A-Z])/g, '$1_$2').toUpperCase(); + } + + public static toCamelCase(input: string) { + return input + .split('_') + .map((word) => `${word[0].toUppercase()}${word.slice(1).toLowerCase()}`) + .join(''); + } +}