summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-24 03:26:02 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-24 03:26:02 +0900
commit701ab6cc6826a2e272d614fae97e7058110f1e1f (patch)
treef7a6a1dbd4fb8813139bd0d8e5e1d7d6074fef5d /src
parentメンテナ名を必須でなくす (diff)
downloadmisskey-701ab6cc6826a2e272d614fae97e7058110f1e1f.tar.gz
misskey-701ab6cc6826a2e272d614fae97e7058110f1e1f.tar.bz2
misskey-701ab6cc6826a2e272d614fae97e7058110f1e1f.zip
Refactor
Diffstat (limited to 'src')
-rw-r--r--src/prelude/await-all.ts21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/prelude/await-all.ts b/src/prelude/await-all.ts
index 66303fe3ba..9492550483 100644
--- a/src/prelude/await-all.ts
+++ b/src/prelude/await-all.ts
@@ -7,16 +7,17 @@ type AwaitAll<T> = {
export async function awaitAll<T>(obj: T): Promise<AwaitAll<T>> {
const target = {} as any;
const keys = Object.keys(obj);
- const rawValues = Object.values(obj);
- const retValues = ((values: any[]): any[] =>
- values.map(value => {
- if (!value || !value.constructor || value.constructor.name !== 'Object') return value;
- return awaitAll(value);
- })
- )(rawValues);
- const values = await Promise.all(retValues);
- for (let i = 0; i < values.length; i++) {
- target[keys[i]] = values[i];
+ const values = Object.values(obj);
+
+ const resolvedValues = await Promise.all(values.map(value =>
+ (value || !value.constructor || value.constructor.name !== 'Object')
+ ? value
+ : awaitAll(value)
+ ));
+
+ for (let i = 0; i < keys.length; i++) {
+ target[keys[i]] = resolvedValues[i];
}
+
return target;
}