From 516f6ce2cdc7c20a8805e01cf13430d1d68afdd7 Mon Sep 17 00:00:00 2001 From: kylon Date: Fri, 1 May 2020 00:01:15 +0200 Subject: [PATCH] Preserve input URL array order * Implement forEachAsync * Preserve input URL array order Co-authored-by: kylon --- src/Metadata.ts | 7 ++++--- src/Utils.ts | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Metadata.ts b/src/Metadata.ts index 87b78ed..f09edfa 100644 --- a/src/Metadata.ts +++ b/src/Metadata.ts @@ -1,4 +1,5 @@ import { Metadata, Session } from './Types'; +import { forEachAsync } from './Utils'; import { parse } from 'iso8601-duration'; import axios from 'axios'; @@ -29,7 +30,7 @@ export async function getVideoMetadata(videoGuids: string[], session: Session, v let playbackUrl: string; let posterImage: string; - await Promise.all(videoGuids.map(async guid => { + await forEachAsync(videoGuids, async (guid: string) => { let apiUrl = `${session.ApiGatewayUri}videos/${guid}?api-version=${session.ApiGatewayVersion}`; if (verbose) @@ -59,7 +60,7 @@ export async function getVideoMetadata(videoGuids: string[], session: Session, v playbackUrl: playbackUrl, posterImage: posterImage }); - })); - + }); + return metadata; } diff --git a/src/Utils.ts b/src/Utils.ts index 8199377..a8776f6 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -46,6 +46,10 @@ function readFileToArray(path: string) { return fs.readFileSync(path).toString('utf-8').split(/[\r\n]/); } +export async function forEachAsync(array: any, callback: any) { + for (let i=0, l=array.length; i