From 605c1cc0df932c99734126290a21e034baf88c0d Mon Sep 17 00:00:00 2001 From: Manuel Alfaro Date: Wed, 13 Oct 2021 14:31:46 -0600 Subject: [PATCH 1/3] chore: add new method for snake uppercase --- index.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/index.ts b/index.ts index b14e5cb..a5b53a9 100644 --- a/index.ts +++ b/index.ts @@ -8,7 +8,7 @@ import uppercase from 'lodash.uppercase'; import lowercase from 'lodash.lowercase'; import upperfirst from 'lodash.upperfirst'; -type Collection = Record +type Collection = Record; type CaseFn = (input: string) => string; function casifyObject(caseFn: CaseFn, obj: Collection): Collection { @@ -16,7 +16,7 @@ function casifyObject(caseFn: CaseFn, obj: Collection): Collection { } function casifyArray(caseFn: CaseFn, array: Array): Array { - return map(array, obj => casifyObject(caseFn, obj)); + return map(array, (obj) => casifyObject(caseFn, obj)); } function casify(caseFn: CaseFn, collection: Collection) { @@ -32,6 +32,10 @@ function bumpyCase(input: string) { return upperfirst(camelCase(input)); } +function snakeUpperCase(input: string) { + return snakeCase(input).toUpperCase(); +} + export const camelCasify = casifyFnFactory(camelCase); export const bumpyCasify = casifyFnFactory(bumpyCase); export const kebabCasify = casifyFnFactory(kebabCase); @@ -39,5 +43,6 @@ export const snakeCasify = casifyFnFactory(snakeCase); export const startCasify = casifyFnFactory(startCase); export const upperCasify = casifyFnFactory(uppercase); export const lowerCasify = casifyFnFactory(lowercase); +export const snakeUpperCasify = casifyFnFactory(snakeUpperCase); export default casify; From bd6c1aeec28b4fb3647f41be379af302af83eded Mon Sep 17 00:00:00 2001 From: Manuel Alfaro Date: Wed, 13 Oct 2021 14:32:02 -0600 Subject: [PATCH 2/3] test: update tests --- index.test.ts | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/index.test.ts b/index.test.ts index ed154d7..fea3db6 100644 --- a/index.test.ts +++ b/index.test.ts @@ -7,6 +7,7 @@ import { startCasify, upperCasify, lowerCasify, + snakeUpperCasify, } from './dist'; // Test utils @@ -30,16 +31,14 @@ function generateArray() { ]; } - function prependBlueCase(input: string) { return `blue_${input}`; } - it('camelCasify - handles objects', () => { const obj = {}; const fn = () => {}; - const re = /casify/ig; + const re = /casify/gi; const input = generateObject(obj, fn, re); @@ -61,7 +60,7 @@ it('camelCasify - handles objects', () => { it('bumpyCasify - handles objects', () => { const obj = {}; const fn = () => {}; - const re = /casify/ig; + const re = /casify/gi; const input = generateObject(obj, fn, re); @@ -83,7 +82,7 @@ it('bumpyCasify - handles objects', () => { it('kebabCasify - handles objects', () => { const obj = {}; const fn = () => {}; - const re = /casify/ig; + const re = /casify/gi; const input = generateObject(obj, fn, re); @@ -105,7 +104,7 @@ it('kebabCasify - handles objects', () => { it('snakeCasify - handles objects', () => { const obj = {}; const fn = () => {}; - const re = /casify/ig; + const re = /casify/gi; const input = generateObject(obj, fn, re); @@ -126,7 +125,7 @@ it('snakeCasify - handles objects', () => { it('startCasify - handles objects', () => { const obj = {}; const fn = () => {}; - const re = /casify/ig; + const re = /casify/gi; const input = generateObject(obj, fn, re); @@ -147,7 +146,7 @@ it('startCasify - handles objects', () => { it('upperCasify - handles objects', () => { const obj = {}; const fn = () => {}; - const re = /casify/ig; + const re = /casify/gi; const input = generateObject(obj, fn, re); @@ -168,7 +167,7 @@ it('upperCasify - handles objects', () => { it('lowerCasify - handles objects', () => { const obj = {}; const fn = () => {}; - const re = /casify/ig; + const re = /casify/gi; const input = generateObject(obj, fn, re); @@ -186,10 +185,32 @@ it('lowerCasify - handles objects', () => { expect(expected).toEqual(observed); }); +it('snakeUpperCasify - handles objects', () => { + const obj = {}; + const fn = () => {}; + const re = /casify/gi; + + const input = generateObject(obj, fn, re); + + const expected = { + SNAKE_CASE: true, + KEBAB_CASE: 1000, + CAMEL_CASE: 'camelCase', + BUMPY_CASE: 11.99, + START_CASE: obj, + UPPER_CASE: fn, + LOWER_CASE: re, + }; + + const observed = snakeUpperCasify(input); + + expect(expected).toEqual(observed); +}); + it('casify - handles objects', () => { const obj = {}; const fn = () => {}; - const re = /casify/ig; + const re = /casify/gi; const input = generateObject(obj, fn, re); @@ -207,7 +228,6 @@ it('casify - handles objects', () => { expect(expected).toEqual(observed); }); - it('camelCasify - handles arrays', () => { const input = generateArray(); @@ -220,4 +240,3 @@ it('camelCasify - handles arrays', () => { const observed = camelCasify(input); expect(expected).toEqual(observed); }); - From 7bdbfe7affad4aa9d1253bcbca1fd10eaade0f36 Mon Sep 17 00:00:00 2001 From: Manuel Alfaro Date: Wed, 13 Oct 2021 14:32:20 -0600 Subject: [PATCH 3/3] config: add new dev dependency to run jest --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 4d27c42..66aeaea 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ }, "license": "MIT", "devDependencies": { + "@types/jest": "^27.0.2", "@types/lodash.camelcase": "^4.3.6", "@types/lodash.kebabcase": "^4.1.6", "@types/lodash.lowercase": "^4.3.6",