export function openListOfProviders()

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;
}