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