diff options
Diffstat (limited to 'std/util')
-rw-r--r-- | std/util/async.ts | 17 | ||||
-rw-r--r-- | std/util/deep_assign.ts | 36 |
2 files changed, 29 insertions, 24 deletions
diff --git a/std/util/async.ts b/std/util/async.ts index 6e2db69dc..8c4823ad9 100644 --- a/std/util/async.ts +++ b/std/util/async.ts @@ -20,9 +20,11 @@ export interface Deferred<T> extends Promise<T> { */ export function deferred<T>(): Deferred<T> { let methods; - const promise = new Promise<T>((resolve, reject): void => { - methods = { resolve, reject }; - }); + const promise = new Promise<T>( + (resolve, reject): void => { + methods = { resolve, reject }; + } + ); return Object.assign(promise, methods)! as Deferred<T>; } @@ -109,9 +111,10 @@ export async function collectUint8Arrays( // Delays the given milliseconds and resolves. export function delay(ms: number): Promise<void> { - return new Promise((res): number => - setTimeout((): void => { - res(); - }, ms) + return new Promise( + (res): number => + setTimeout((): void => { + res(); + }, ms) ); } diff --git a/std/util/deep_assign.ts b/std/util/deep_assign.ts index b1c9f9ac9..1dfc00a5b 100644 --- a/std/util/deep_assign.ts +++ b/std/util/deep_assign.ts @@ -8,24 +8,26 @@ export function deepAssign( if (!source || typeof source !== `object`) { return; } - Object.entries(source).forEach(([key, value]: [string, unknown]): void => { - if (value instanceof Date) { - target[key] = new Date(value); - return; + Object.entries(source).forEach( + ([key, value]: [string, unknown]): void => { + if (value instanceof Date) { + target[key] = new Date(value); + return; + } + if (!value || typeof value !== `object`) { + target[key] = value; + return; + } + if (Array.isArray(value)) { + target[key] = []; + } + // value is an Object + if (typeof target[key] !== `object` || !target[key]) { + target[key] = {}; + } + deepAssign(target[key] as Record<string, unknown>, value!); } - if (!value || typeof value !== `object`) { - target[key] = value; - return; - } - if (Array.isArray(value)) { - target[key] = []; - } - // value is an Object - if (typeof target[key] !== `object` || !target[key]) { - target[key] = {}; - } - deepAssign(target[key] as Record<string, unknown>, value!); - }); + ); } return target; } |