From a1da1f6a1c063e3d82ce00d8d65509d22886fd8e Mon Sep 17 00:00:00 2001 From: Chris Vandenberg Date: Fri, 25 Sep 2020 22:00:22 -0500 Subject: [PATCH] `arrayOf` -> `pluck` and `sumOf` -> `sum` --- src/index.ts | 4 ++-- src/{arrayOf.spec.ts => pluck.spec.ts} | 8 ++++---- src/{arrayOf.ts => pluck.ts} | 10 +++++----- src/{sumOf.spec.ts => sum.spec.ts} | 6 +++--- src/{sumOf.ts => sum.ts} | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) rename src/{arrayOf.spec.ts => pluck.spec.ts} (56%) rename src/{arrayOf.ts => pluck.ts} (75%) rename src/{sumOf.spec.ts => sum.spec.ts} (60%) rename src/{sumOf.ts => sum.ts} (96%) diff --git a/src/index.ts b/src/index.ts index ef33287..917e22d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,2 +1,2 @@ -export { arrayOf } from './arrayOf'; -export { sumOf } from './sumOf'; +export { pluck } from './pluck'; +export { sum } from './sum'; diff --git a/src/arrayOf.spec.ts b/src/pluck.spec.ts similarity index 56% rename from src/arrayOf.spec.ts rename to src/pluck.spec.ts index 3784581..f0a86bd 100644 --- a/src/arrayOf.spec.ts +++ b/src/pluck.spec.ts @@ -1,4 +1,4 @@ -import { arrayOf } from './arrayOf'; +import { pluck } from './pluck'; const data = [ { complex: { value: 'x' }, id: 1, name: 'John' }, @@ -6,15 +6,15 @@ const data = [ ]; test('numbers', () => { - expect(arrayOf(data, 'id')).toStrictEqual([1, 2]); + expect(pluck(data, 'id')).toStrictEqual([1, 2]); }); test('strings', () => { - expect(arrayOf(data, 'name')).toStrictEqual(['John', 'Jane']); + expect(pluck(data, 'name')).toStrictEqual(['John', 'Jane']); }); test('complex objects', () => { - expect(arrayOf(data, 'complex')).toStrictEqual([ + expect(pluck(data, 'complex')).toStrictEqual([ { value: 'x' }, { value: 'y' }, ]); diff --git a/src/arrayOf.ts b/src/pluck.ts similarity index 75% rename from src/arrayOf.ts rename to src/pluck.ts index 09a4fc1..fe22b23 100644 --- a/src/arrayOf.ts +++ b/src/pluck.ts @@ -4,8 +4,8 @@ const byKey = (key: K) => ( ) => [...accumulator, item[key]]; /** - * Takes an array of any objects and accumulates an array of a shared property - * between them. + * Takes an array of any objects and accumulates an array of a single shared + * property between them. * @param {any[]} array The array of objects with a shared property. * @param {string} key The property accessor for the objects in the array. * @returns {any[]} @@ -13,11 +13,11 @@ const byKey = (key: K) => ( * ```ts * const data = [{ name: "John", id: 1 }, { name: "Jane", id: 2 }]; * - * arrayOf(data, "name"); // ["John", "Jane"] - * arrayOf(data, "id"); // [1, 2] + * pluck(data, "name"); // ["John", "Jane"] + * pluck(data, "id"); // [1, 2] * ``` */ -export const arrayOf = ( +export const pluck = ( array: T[], key: K, ): Array => array.reduce(byKey(key), []); diff --git a/src/sumOf.spec.ts b/src/sum.spec.ts similarity index 60% rename from src/sumOf.spec.ts rename to src/sum.spec.ts index 7b26730..084492c 100644 --- a/src/sumOf.spec.ts +++ b/src/sum.spec.ts @@ -1,9 +1,9 @@ -import { sumOf } from './sumOf'; +import { sum } from './sum'; test('shallow objects', () => { const data = [{ value: 1 }, { value: 1 }]; - expect(sumOf(data, 'value')).toStrictEqual(2); + expect(sum(data, 'value')).toStrictEqual(2); }); test('complex objects', () => { @@ -12,5 +12,5 @@ test('complex objects', () => { { value: { nested: { nestedAgain: 1 } } }, ]; - expect(sumOf(data, 'value', 'nested', 'nestedAgain')).toStrictEqual(2); + expect(sum(data, 'value', 'nested', 'nestedAgain')).toStrictEqual(2); }); diff --git a/src/sumOf.ts b/src/sum.ts similarity index 96% rename from src/sumOf.ts rename to src/sum.ts index 13163a1..ab6f8db 100644 --- a/src/sumOf.ts +++ b/src/sum.ts @@ -40,10 +40,10 @@ const bySum = < * ```ts * const data = [{ nested: { value: 12 } }, { nested: { value: 34 } }]; * - * sumOf(data, "nested", "value"); // 46 + * sum(data, "nested", "value"); // 46 * ``` */ -export const sumOf = < +export const sum = < T, K1 extends keyof T, K2 extends keyof T[K1],