This commit is contained in:
2024-03-22 03:47:51 +05:30
parent 8bcf3d211e
commit 89819f6fe2
28440 changed files with 3211033 additions and 2 deletions

35
node_modules/combine-promises/src/index.ts generated vendored Normal file
View File

@@ -0,0 +1,35 @@
type UnwrapPromise<P extends unknown> = P extends PromiseLike<infer V> ? V : P;
type Input = Record<string | number | symbol, unknown>;
type Result<Obj extends Input> = {
[P in keyof Obj]: UnwrapPromise<Obj[P]>;
};
export default function combinePromises<Obj extends Input>(
obj: Obj
): Promise<Result<Obj>> {
if (obj === null) {
return Promise.reject(
new Error('combinePromises does not handle null argument')
);
}
if (typeof obj !== 'object') {
return Promise.reject(
new Error(
`combinePromises does not handle argument of type ${typeof obj}`
)
);
}
const keys = Object.keys(obj);
// not using async/await on purpose, otherwise lib outputs large _asyncToGenerator code in dist
return Promise.all(Object.values(obj)).then(values => {
const result: any = {};
values.forEach((v, i) => {
result[keys[i]] = v;
});
return result;
});
}