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

60 lines 9.75 kB
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=