/** @module pairs/entries.ts */ import { IsArray, ValueOf } from '../helper-types' export type ObjectTypeProps = T extends any ? keyof T : never type Entries = { 'array': Array<[string, ValueOf]> // 'object': Array<[string, O[Exclude>]]> 'object': Array<[string, ValueOf ]> 'string': O extends Iterable ? Array<[string, U]> : never, }[ O extends string ? 'string' : IsArray ] // type sf = Entries < {a: 1, b: 2} > /** * Todo */ export const entries = ( obj: A ): Entries => Object.entries ? Object.entries( obj ) as Entries : Object.keys( obj ).map( ( key ) => [ key, obj[ key ] ] ) as Entries