UNPKG

ionic-database-builder

Version:

Extended library from database-builder to assist in creating and maintaining SQL commands. Allowing integrate execute commands with SQLite ('@ionic-native/sqlite'), Web Sql, etc. Through the interface injection 'DatabaseCreatorContract' returning an imple

41 lines 5.23 kB
import { Inject, Injectable } from '@angular/core'; import { DatabaseFactoryContract } from '../utils/database-factory-contract'; import { Observable } from 'rxjs'; import { DATABASE_CREATOR, IS_AVAILABLE_DATABASE } from '../utils/dependency-injection-definition'; export class DatabaseFactoryDefault extends DatabaseFactoryContract { constructor(_isAvailable, _databaseCreator) { super(); this._isAvailable = _isAvailable; this._databaseCreator = _databaseCreator; } database(databaseName) { return new Observable((observer) => { if (this._isAvailable) { this._databaseCreator.create({ name: databaseName, location: 'default' }) .then(database => { observer.next(database); observer.complete(); }) .catch(err => { observer.error(err); observer.complete(); }); } else { observer.next(void 0); observer.complete(); } }); } } DatabaseFactoryDefault.decorators = [ { type: Injectable } ]; DatabaseFactoryDefault.ctorParameters = () => [ { type: Boolean, decorators: [{ type: Inject, args: [IS_AVAILABLE_DATABASE,] }] }, { type: undefined, decorators: [{ type: Inject, args: [DATABASE_CREATOR,] }] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UtZmFjdG9yeS1kZWZhdWx0LmpzIiwic291cmNlUm9vdCI6IkM6L1RyYWJhbGhvRmVybmFuZG8vUHJvamV0b3MvaW9uaWMtZGF0YWJhc2UtYnVpbGRlci9wcm9qZWN0cy9pb25pYy1kYXRhYmFzZS1idWlsZGVyL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZWZhdWx0cy9kYXRhYmFzZS1mYWN0b3J5LWRlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFN0UsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUduRyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0lBRS9ELFlBQzJDLFlBQXFCLEVBQzFCLGdCQUF5QztRQUUzRSxLQUFLLEVBQUUsQ0FBQztRQUgrQixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO0lBRy9FLENBQUM7SUFFTSxRQUFRLENBQUMsWUFBb0I7UUFDaEMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQWtDLEVBQUUsRUFBRTtZQUN6RCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLElBQUksRUFBRSxZQUFZO29CQUNsQixRQUFRLEVBQUUsU0FBUztpQkFDdEIsQ0FBQztxQkFDRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ2IsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDeEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNULFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3BCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLENBQUM7YUFDVjtpQkFBTTtnQkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN2QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBOUJKLFVBQVU7OzswQ0FJRixNQUFNLFNBQUMscUJBQXFCOzRDQUM1QixNQUFNLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFiYXNlRmFjdG9yeUNvbnRyYWN0IH0gZnJvbSAnLi4vdXRpbHMvZGF0YWJhc2UtZmFjdG9yeS1jb250cmFjdCc7XHJcbmltcG9ydCB7IERhdGFiYXNlT2JqZWN0LCBEYXRhYmFzZUNyZWF0b3JDb250cmFjdCB9IGZyb20gJ2RhdGFiYXNlLWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEQVRBQkFTRV9DUkVBVE9SLCBJU19BVkFJTEFCTEVfREFUQUJBU0UgfSBmcm9tICcuLi91dGlscy9kZXBlbmRlbmN5LWluamVjdGlvbi1kZWZpbml0aW9uJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERhdGFiYXNlRmFjdG9yeURlZmF1bHQgZXh0ZW5kcyBEYXRhYmFzZUZhY3RvcnlDb250cmFjdCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChJU19BVkFJTEFCTEVfREFUQUJBU0UpIHByaXZhdGUgX2lzQXZhaWxhYmxlOiBib29sZWFuLFxyXG4gICAgICAgIEBJbmplY3QoREFUQUJBU0VfQ1JFQVRPUikgcHJpdmF0ZSBfZGF0YWJhc2VDcmVhdG9yOiBEYXRhYmFzZUNyZWF0b3JDb250cmFjdFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YWJhc2UoZGF0YWJhc2VOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERhdGFiYXNlT2JqZWN0PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8RGF0YWJhc2VPYmplY3Q+KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0F2YWlsYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhc2VDcmVhdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZGF0YWJhc2VOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiAnZGVmYXVsdCdcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oZGF0YWJhc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGRhdGFiYXNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh2b2lkIDApO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==