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
60 lines • 9.75 kB
JavaScript
import { NgModule, SkipSelf, Optional } from '@angular/core';
import { DatabaseSettingsFactoryContract } from './utils/database-settings-factory-contract';
import { IS_AVAILABLE_DATABASE, DATABASE_CREATOR, IS_ENABLE_LOG, DATABASE_MIGRATION, PLATFORM_LOAD } from './utils/dependency-injection-definition';
import { Database } from './services/database';
import { DatabaseMigration } from './services/database-migration';
import { DatabaseHelperService } from './services/database-helper.service';
import { DatabaseFactoryDefault } from './defaults/database-factory-default';
import { DatabaseFactoryContract } from './utils/database-factory-contract';
import { PlatformLoadDefault } from './utils/platform-load-default';
export class IonicDatabaseBuilderModule {
constructor(parentModule) {
if (parentModule) {
throw new Error('IonicDatabaseBuilderModule is already loaded. Import it in the AppModule only');
}
}
static forSimple(isEnableLogProvider = false, isAvailableProvider = true, platformLoad = PlatformLoadDefault) {
return {
ngModule: IonicDatabaseBuilderModule,
providers: [
{ provide: IS_ENABLE_LOG, useValue: isEnableLogProvider },
{ provide: IS_AVAILABLE_DATABASE, useValue: isAvailableProvider },
{ provide: PLATFORM_LOAD, useClass: platformLoad },
]
};
}
static forRoot(settingsProvider, databaseCreatorProvider, databaseMigrationContract, platformLoad = PlatformLoadDefault, isEnableLogProvider = false, isAvailableProvider = true) {
return {
ngModule: IonicDatabaseBuilderModule,
providers: [
{ provide: DatabaseSettingsFactoryContract, useClass: settingsProvider },
{ provide: DATABASE_CREATOR, useClass: databaseCreatorProvider },
{ provide: DATABASE_MIGRATION, useClass: databaseMigrationContract },
{ provide: IS_ENABLE_LOG, useValue: isEnableLogProvider },
{ provide: PLATFORM_LOAD, useClass: platformLoad },
{ provide: IS_AVAILABLE_DATABASE, useValue: isAvailableProvider },
]
};
}
}
IonicDatabaseBuilderModule.decorators = [
{ type: NgModule, args: [{
providers: [
DatabaseMigration,
Database,
DatabaseHelperService,
{
provide: DatabaseFactoryContract,
useClass: DatabaseFactoryDefault
},
{
provide: PLATFORM_LOAD,
useClass: PlatformLoadDefault
}
]
},] }
];
IonicDatabaseBuilderModule.ctorParameters = () => [
{ type: IonicDatabaseBuilderModule, decorators: [{ type: Optional }, { type: SkipSelf }] }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtZGF0YWJhc2UtYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovVHJhYmFsaG9GZXJuYW5kby9Qcm9qZXRvcy9pb25pYy1kYXRhYmFzZS1idWlsZGVyL3Byb2plY3RzL2lvbmljLWRhdGFiYXNlLWJ1aWxkZXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2lvbmljLWRhdGFiYXNlLWJ1aWxkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBUSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDN0YsT0FBTyxFQUNMLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQzFGLE1BQU0seUNBQXlDLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBaUJwRSxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFlBQW9DLFlBQXdDO1FBQzFFLElBQUksWUFBWSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2IsK0VBQStFLENBQUMsQ0FBQztTQUNwRjtJQUNILENBQUM7SUFFSSxNQUFNLENBQUMsU0FBUyxDQUFDLHNCQUErQixLQUFLLEVBQUUsc0JBQStCLElBQUksRUFBRSxlQUFtQyxtQkFBbUI7UUFDckosT0FBTztZQUNILFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFO2dCQUNQLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQ3pELEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtnQkFDakUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7YUFDckQ7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVRLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQXVELEVBQUUsdUJBQXNELEVBQUUseUJBQTBELEVBQUUsZUFBbUMsbUJBQW1CLEVBQUUsc0JBQStCLEtBQUssRUFBRSxzQkFBK0IsSUFBSTtRQUNsVSxPQUFPO1lBQ0gsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxTQUFTLEVBQUU7Z0JBQ1AsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFO2dCQUN4RSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUU7Z0JBQ2hFLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRTtnQkFDcEUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTtnQkFDekQsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7Z0JBQ2xELEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRTthQUNwRTtTQUNKLENBQUM7SUFDTixDQUFDOzs7WUEvQ0EsUUFBUSxTQUFDO2dCQUNSLFNBQVMsRUFBRTtvQkFDVCxpQkFBaUI7b0JBQ2pCLFFBQVE7b0JBQ1IscUJBQXFCO29CQUNyQjt3QkFDRSxPQUFPLEVBQUUsdUJBQXVCO3dCQUNoQyxRQUFRLEVBQUUsc0JBQXNCO3FCQUNqQztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsUUFBUSxFQUFFLG1CQUFtQjtxQkFDOUI7aUJBQ0Y7YUFDRjs7O1lBR21ELDBCQUEwQix1QkFBL0QsUUFBUSxZQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhYmFzZUNyZWF0b3JDb250cmFjdCB9IGZyb20gJ2RhdGFiYXNlLWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBUeXBlLCBOZ01vZHVsZSwgU2tpcFNlbGYsIE9wdGlvbmFsLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFiYXNlTWlncmF0aW9uQ29udHJhY3QgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGFiYXNlLW1pZ3JhdGlvbi1jb250cmFjdCc7XHJcbmltcG9ydCB7IERhdGFiYXNlU2V0dGluZ3NGYWN0b3J5Q29udHJhY3QgfSBmcm9tICcuL3V0aWxzL2RhdGFiYXNlLXNldHRpbmdzLWZhY3RvcnktY29udHJhY3QnO1xyXG5pbXBvcnQge1xyXG4gIElTX0FWQUlMQUJMRV9EQVRBQkFTRSwgREFUQUJBU0VfQ1JFQVRPUiwgSVNfRU5BQkxFX0xPRywgREFUQUJBU0VfTUlHUkFUSU9OLCBQTEFURk9STV9MT0FEXHJcbn0gZnJvbSAnLi91dGlscy9kZXBlbmRlbmN5LWluamVjdGlvbi1kZWZpbml0aW9uJztcclxuaW1wb3J0IHsgRGF0YWJhc2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGFiYXNlJztcclxuaW1wb3J0IHsgRGF0YWJhc2VNaWdyYXRpb24gfSBmcm9tICcuL3NlcnZpY2VzL2RhdGFiYXNlLW1pZ3JhdGlvbic7XHJcbmltcG9ydCB7IERhdGFiYXNlSGVscGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZGF0YWJhc2UtaGVscGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhYmFzZUZhY3RvcnlEZWZhdWx0IH0gZnJvbSAnLi9kZWZhdWx0cy9kYXRhYmFzZS1mYWN0b3J5LWRlZmF1bHQnO1xyXG5pbXBvcnQgeyBEYXRhYmFzZUZhY3RvcnlDb250cmFjdCB9IGZyb20gJy4vdXRpbHMvZGF0YWJhc2UtZmFjdG9yeS1jb250cmFjdCc7XHJcbmltcG9ydCB7IFBsYXRmb3JtTG9hZCB9IGZyb20gJy4vdXRpbHMvcGxhdGZvcm0tbG9hZCc7XHJcbmltcG9ydCB7IFBsYXRmb3JtTG9hZERlZmF1bHQgfSBmcm9tICcuL3V0aWxzL3BsYXRmb3JtLWxvYWQtZGVmYXVsdCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRGF0YWJhc2VNaWdyYXRpb24sXHJcbiAgICBEYXRhYmFzZSxcclxuICAgIERhdGFiYXNlSGVscGVyU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRGF0YWJhc2VGYWN0b3J5Q29udHJhY3QsXHJcbiAgICAgIHVzZUNsYXNzOiBEYXRhYmFzZUZhY3RvcnlEZWZhdWx0XHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBQTEFURk9STV9MT0FELFxyXG4gICAgICB1c2VDbGFzczogUGxhdGZvcm1Mb2FkRGVmYXVsdFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElvbmljRGF0YWJhc2VCdWlsZGVyTW9kdWxlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50TW9kdWxlOiBJb25pY0RhdGFiYXNlQnVpbGRlck1vZHVsZSkge1xyXG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ0lvbmljRGF0YWJhc2VCdWlsZGVyTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxucHVibGljIHN0YXRpYyBmb3JTaW1wbGUoaXNFbmFibGVMb2dQcm92aWRlcjogYm9vbGVhbiA9IGZhbHNlLCBpc0F2YWlsYWJsZVByb3ZpZGVyOiBib29sZWFuID0gdHJ1ZSwgcGxhdGZvcm1Mb2FkOiBUeXBlPFBsYXRmb3JtTG9hZD4gPSBQbGF0Zm9ybUxvYWREZWZhdWx0KTogTW9kdWxlV2l0aFByb3ZpZGVyczxJb25pY0RhdGFiYXNlQnVpbGRlck1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuZ01vZHVsZTogSW9uaWNEYXRhYmFzZUJ1aWxkZXJNb2R1bGUsXHJcbiAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgIHsgcHJvdmlkZTogSVNfRU5BQkxFX0xPRywgdXNlVmFsdWU6IGlzRW5hYmxlTG9nUHJvdmlkZXIgfSxcclxuICAgICAgICAgICAgeyBwcm92aWRlOiBJU19BVkFJTEFCTEVfREFUQUJBU0UsIHVzZVZhbHVlOiBpc0F2YWlsYWJsZVByb3ZpZGVyIH0sXHJcbiAgICAgICAgICAgIHsgcHJvdmlkZTogUExBVEZPUk1fTE9BRCwgdXNlQ2xhc3M6IHBsYXRmb3JtTG9hZCB9LFxyXG4gICAgICAgIF1cclxuICAgIH07XHJcbn1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290KHNldHRpbmdzUHJvdmlkZXI6IFR5cGU8RGF0YWJhc2VTZXR0aW5nc0ZhY3RvcnlDb250cmFjdD4sIGRhdGFiYXNlQ3JlYXRvclByb3ZpZGVyOiBUeXBlPERhdGFiYXNlQ3JlYXRvckNvbnRyYWN0PiwgZGF0YWJhc2VNaWdyYXRpb25Db250cmFjdDogVHlwZTxEYXRhYmFzZU1pZ3JhdGlvbkNvbnRyYWN0PiwgcGxhdGZvcm1Mb2FkOiBUeXBlPFBsYXRmb3JtTG9hZD4gPSBQbGF0Zm9ybUxvYWREZWZhdWx0LCBpc0VuYWJsZUxvZ1Byb3ZpZGVyOiBib29sZWFuID0gZmFsc2UsIGlzQXZhaWxhYmxlUHJvdmlkZXI6IGJvb2xlYW4gPSB0cnVlKTogTW9kdWxlV2l0aFByb3ZpZGVyczxJb25pY0RhdGFiYXNlQnVpbGRlck1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuZ01vZHVsZTogSW9uaWNEYXRhYmFzZUJ1aWxkZXJNb2R1bGUsXHJcbiAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgIHsgcHJvdmlkZTogRGF0YWJhc2VTZXR0aW5nc0ZhY3RvcnlDb250cmFjdCwgdXNlQ2xhc3M6IHNldHRpbmdzUHJvdmlkZXIgfSxcclxuICAgICAgICAgICAgeyBwcm92aWRlOiBEQVRBQkFTRV9DUkVBVE9SLCB1c2VDbGFzczogZGF0YWJhc2VDcmVhdG9yUHJvdmlkZXIgfSxcclxuICAgICAgICAgICAgeyBwcm92aWRlOiBEQVRBQkFTRV9NSUdSQVRJT04sIHVzZUNsYXNzOiBkYXRhYmFzZU1pZ3JhdGlvbkNvbnRyYWN0IH0sXHJcbiAgICAgICAgICAgIHsgcHJvdmlkZTogSVNfRU5BQkxFX0xPRywgdXNlVmFsdWU6IGlzRW5hYmxlTG9nUHJvdmlkZXIgfSxcclxuICAgICAgICAgICAgeyBwcm92aWRlOiBQTEFURk9STV9MT0FELCB1c2VDbGFzczogcGxhdGZvcm1Mb2FkIH0sXHJcbiAgICAgICAgICAgIHsgcHJvdmlkZTogSVNfQVZBSUxBQkxFX0RBVEFCQVNFLCB1c2VWYWx1ZTogaXNBdmFpbGFibGVQcm92aWRlciB9LFxyXG4gICAgICAgIF1cclxuICAgIH07XHJcbn1cclxufVxyXG4iXX0=