diff --git a/packages/utils/CHANGELOG.MD b/packages/utils/CHANGELOG.MD index dbf1b2562..36ad0c811 100644 --- a/packages/utils/CHANGELOG.MD +++ b/packages/utils/CHANGELOG.MD @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] Changes that have landed but are not yet released. +### New Features +- Added `objectEntries` + ## [0.1.0] - March 1, 2019 -Initial release \ No newline at end of file +Initial release diff --git a/packages/utils/__tests__/utils.spec.ts b/packages/utils/__tests__/utils.spec.ts index 8d2a2a1f2..123b2805b 100644 --- a/packages/utils/__tests__/utils.spec.ts +++ b/packages/utils/__tests__/utils.spec.ts @@ -1,5 +1,5 @@ /// -import { isValidEnum, groupBy, objectValues, find, keyBy, sprintf } from '../src' +import { isValidEnum, groupBy, objectEntries, objectValues, find, keyBy, sprintf } from '../src' describe('utils', () => { describe('isValidEnum', () => { @@ -37,6 +37,12 @@ describe('utils', () => { }) }) + describe('objectEntries', () => { + it('should return object entries', () => { + expect(objectEntries({ foo: 'bar', bar: 123 })).toEqual([['foo', 'bar'], ['bar', 123]]) + }) + }) + describe('objectValues', () => { it('should return object values', () => { expect(objectValues({ foo: 'bar', bar: 123 })).toEqual(['bar', 123]) diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 18a227f67..b8012872e 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -62,6 +62,10 @@ export function objectValues(obj: { [key: string]: K }): K[] { return Object.keys(obj).map(key => obj[key]) } +export function objectEntries(obj: { [key: string]: K }): [string, K][] { + return Object.keys(obj).map(key => [key, obj[key]]) +} + export function find(arr: K[], cond: (arg: K) => boolean): K | undefined { let found