UNPKG

@maddimathon/utility-typescript

Version:

TypeScript utilities (types, functions, classes) to use in various projects.

28 lines (27 loc) 728 B
/** * @since 2.0.0-beta.2 * * @packageDocumentation */ /*! * @maddimathon/utility-typescript@2.0.0-beta.5 * @license MIT */ /** * Maps a single-level object's properties to new values based on a callback * function. * * @category Functions – Object * * @since 2.0.0-beta.2 */ export async function objectMapAsync(objPromise, callback) { return Promise.resolve(objPromise).then(async (obj) => { // returns if (typeof obj !== 'object' || !obj) { return obj; } const entries = Object.entries(obj); return Promise.all(entries.map(async ([key, value]) => [key, await callback([key, value])])).then(mappedEntries => Object.fromEntries(mappedEntries)); }); }