in src/NoSqlProvider.ts [248:273]
export function openListOfProviders(providersToTry: DbProvider[], dbName: string, schema: DbSchema, wipeIfExists: boolean = false,
verbose: boolean = false): Promise<DbProvider> {
const task = defer<DbProvider>();
let providerIndex = 0;
let errorList: any[] = [];
var tryNext = () => {
if (providerIndex >= providersToTry.length) {
task.reject(errorList.length <= 1 ? errorList[0] : errorList);
return;
}
var provider = providersToTry[providerIndex];
provider.open(dbName, schema, wipeIfExists, verbose).then(() => {
task.resolve(provider);
}, (err) => {
errorList.push(err);
providerIndex++;
tryNext();
});
};
tryNext();
return task.promise;
}