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
JavaScript
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==