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

46 lines 7.35 kB
import { DatabaseMigration } from './database-migration'; import { Inject, Injectable, Injector } from '@angular/core'; import { BuildableDatabaseManager } from '../utils/buildable-database-manager'; import { DatabaseFactoryContract } from '../utils/database-factory-contract'; import { Observable } from 'rxjs'; import { IS_AVAILABLE_DATABASE, IS_ENABLE_LOG, PLATFORM_LOAD } from '../utils/dependency-injection-definition'; import { DatabaseSettingsFactoryContract } from '../utils/database-settings-factory-contract'; import { PlatformLoad } from '../utils/platform-load'; export class Database extends BuildableDatabaseManager { constructor(_isAvailable, isEnableLog, databaseSettings, injector, databaseFactory, _databaseMigration, platformLoad) { super(databaseFactory, databaseSettings, injector, databaseSettings.mapper(injector), platformLoad, isEnableLog); this._isAvailable = _isAvailable; this._databaseMigration = _databaseMigration; } migrationVersion(database, version) { if (this._isAvailable) { return this._databaseMigration.version(database, version); } return new Observable((observer) => { observer.next(true); observer.complete(); }); } databaseName() { return this._databaseSettings.databaseName(this._injector); } version() { return this._databaseSettings.version(this._injector); } databaseNameFile(databaseName = this.databaseName()) { return this.addDatabaseNameExtension(this.cleanDatabaseName(databaseName)); } } Database.decorators = [ { type: Injectable } ]; Database.ctorParameters = () => [ { type: Boolean, decorators: [{ type: Inject, args: [IS_AVAILABLE_DATABASE,] }] }, { type: Boolean, decorators: [{ type: Inject, args: [IS_ENABLE_LOG,] }] }, { type: DatabaseSettingsFactoryContract }, { type: Injector }, { type: DatabaseFactoryContract }, { type: DatabaseMigration }, { type: PlatformLoad, decorators: [{ type: Inject, args: [PLATFORM_LOAD,] }] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiQzovVHJhYmFsaG9GZXJuYW5kby9Qcm9qZXRvcy9pb25pYy1kYXRhYmFzZS1idWlsZGVyL3Byb2plY3RzL2lvbmljLWRhdGFiYXNlLWJ1aWxkZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2RhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU3RSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0csT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3RELE1BQU0sT0FBTyxRQUFTLFNBQVEsd0JBQXdCO0lBRWxELFlBQzJDLFlBQXFCLEVBQ3JDLFdBQW9CLEVBQzNDLGdCQUFpRCxFQUNqRCxRQUFrQixFQUNsQixlQUF3QyxFQUNoQyxrQkFBcUMsRUFDdEIsWUFBMEI7UUFFakQsS0FBSyxDQUNELGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFDakMsWUFBWSxFQUNaLFdBQVcsQ0FDZCxDQUFDO1FBZnFDLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBS3BELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7SUFXakQsQ0FBQztJQUVTLGdCQUFnQixDQUFDLFFBQXdCLEVBQUUsT0FBZTtRQUNoRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM3RDtRQUNELE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUEyQixFQUFFLEVBQUU7WUFDbEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsWUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxPQUFPO1FBQ1YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsZUFBdUIsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUM5RCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDOzs7WUExQ0osVUFBVTs7OzBDQUlGLE1BQU0sU0FBQyxxQkFBcUI7MENBQzVCLE1BQU0sU0FBQyxhQUFhO1lBUnBCLCtCQUErQjtZQU5YLFFBQVE7WUFFNUIsdUJBQXVCO1lBSHZCLGlCQUFpQjtZQVFqQixZQUFZLHVCQVlaLE1BQU0sU0FBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YWJhc2VNaWdyYXRpb24gfSBmcm9tICcuL2RhdGFiYXNlLW1pZ3JhdGlvbic7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnVpbGRhYmxlRGF0YWJhc2VNYW5hZ2VyIH0gZnJvbSAnLi4vdXRpbHMvYnVpbGRhYmxlLWRhdGFiYXNlLW1hbmFnZXInO1xyXG5pbXBvcnQgeyBEYXRhYmFzZUZhY3RvcnlDb250cmFjdCB9IGZyb20gJy4uL3V0aWxzL2RhdGFiYXNlLWZhY3RvcnktY29udHJhY3QnO1xyXG5pbXBvcnQgeyBEYXRhYmFzZU9iamVjdCB9IGZyb20gJ2RhdGFiYXNlLWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJU19BVkFJTEFCTEVfREFUQUJBU0UsIElTX0VOQUJMRV9MT0csIFBMQVRGT1JNX0xPQUQgfSBmcm9tICcuLi91dGlscy9kZXBlbmRlbmN5LWluamVjdGlvbi1kZWZpbml0aW9uJztcclxuaW1wb3J0IHsgRGF0YWJhc2VTZXR0aW5nc0ZhY3RvcnlDb250cmFjdCB9IGZyb20gJy4uL3V0aWxzL2RhdGFiYXNlLXNldHRpbmdzLWZhY3RvcnktY29udHJhY3QnO1xyXG5pbXBvcnQgeyBQbGF0Zm9ybUxvYWQgfSBmcm9tICcuLi91dGlscy9wbGF0Zm9ybS1sb2FkJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERhdGFiYXNlIGV4dGVuZHMgQnVpbGRhYmxlRGF0YWJhc2VNYW5hZ2VyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KElTX0FWQUlMQUJMRV9EQVRBQkFTRSkgcHJpdmF0ZSBfaXNBdmFpbGFibGU6IGJvb2xlYW4sXHJcbiAgICAgICAgQEluamVjdChJU19FTkFCTEVfTE9HKSBpc0VuYWJsZUxvZzogYm9vbGVhbixcclxuICAgICAgICBkYXRhYmFzZVNldHRpbmdzOiBEYXRhYmFzZVNldHRpbmdzRmFjdG9yeUNvbnRyYWN0LFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBkYXRhYmFzZUZhY3Rvcnk6IERhdGFiYXNlRmFjdG9yeUNvbnRyYWN0LFxyXG4gICAgICAgIHByaXZhdGUgX2RhdGFiYXNlTWlncmF0aW9uOiBEYXRhYmFzZU1pZ3JhdGlvbixcclxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0xPQUQpIHBsYXRmb3JtTG9hZDogUGxhdGZvcm1Mb2FkXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihcclxuICAgICAgICAgICAgZGF0YWJhc2VGYWN0b3J5LFxyXG4gICAgICAgICAgICBkYXRhYmFzZVNldHRpbmdzLFxyXG4gICAgICAgICAgICBpbmplY3RvcixcclxuICAgICAgICAgICAgZGF0YWJhc2VTZXR0aW5ncy5tYXBwZXIoaW5qZWN0b3IpLFxyXG4gICAgICAgICAgICBwbGF0Zm9ybUxvYWQsXHJcbiAgICAgICAgICAgIGlzRW5hYmxlTG9nXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbWlncmF0aW9uVmVyc2lvbihkYXRhYmFzZTogRGF0YWJhc2VPYmplY3QsIHZlcnNpb246IG51bWJlcik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9pc0F2YWlsYWJsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YWJhc2VNaWdyYXRpb24udmVyc2lvbihkYXRhYmFzZSwgdmVyc2lvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPGJvb2xlYW4+KSA9PiB7XHJcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGRhdGFiYXNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhYmFzZVNldHRpbmdzLmRhdGFiYXNlTmFtZSh0aGlzLl9pbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZlcnNpb24oKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YWJhc2VTZXR0aW5ncy52ZXJzaW9uKHRoaXMuX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YWJhc2VOYW1lRmlsZShkYXRhYmFzZU5hbWU6IHN0cmluZyA9IHRoaXMuZGF0YWJhc2VOYW1lKCkpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZERhdGFiYXNlTmFtZUV4dGVuc2lvbih0aGlzLmNsZWFuRGF0YWJhc2VOYW1lKGRhdGFiYXNlTmFtZSkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==