db-wrapper 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -201
- package/README.md +24 -24
- package/bundles/db-wrapper.umd.js +510 -508
- package/bundles/db-wrapper.umd.js.map +1 -1
- package/bundles/db-wrapper.umd.min.js +1 -1
- package/bundles/db-wrapper.umd.min.js.map +1 -1
- package/db-wrapper.d.ts +4 -4
- package/db-wrapper.metadata.json +1 -1
- package/esm2015/db-wrapper.js +4 -4
- package/esm2015/lib/db-wrapper.models.js +45 -45
- package/esm2015/lib/db-wrapper.module.js +21 -21
- package/esm2015/lib/db-wrapper.service.js +410 -408
- package/esm2015/lib/window.service.js +16 -16
- package/esm2015/public-api.js +7 -7
- package/esm5/db-wrapper.js +4 -4
- package/esm5/lib/db-wrapper.models.js +45 -45
- package/esm5/lib/db-wrapper.module.js +25 -25
- package/esm5/lib/db-wrapper.service.js +436 -434
- package/esm5/lib/window.service.js +23 -23
- package/esm5/public-api.js +7 -7
- package/fesm2015/db-wrapper.js +478 -476
- package/fesm2015/db-wrapper.js.map +1 -1
- package/fesm5/db-wrapper.js +514 -512
- package/fesm5/db-wrapper.js.map +1 -1
- package/lib/db-wrapper.models.d.ts +123 -119
- package/lib/db-wrapper.module.d.ts +5 -5
- package/lib/db-wrapper.service.d.ts +40 -39
- package/lib/window.service.d.ts +3 -3
- package/package.json +1 -1
- package/public-api.d.ts +3 -3
package/fesm5/db-wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-wrapper.js","sources":["ng://db-wrapper/lib/window.service.ts","ng://db-wrapper/lib/db-wrapper.service.ts","ng://db-wrapper/lib/db-wrapper.module.ts","ng://db-wrapper/lib/db-wrapper.models.ts","ng://db-wrapper/public-api.ts","ng://db-wrapper/db-wrapper.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class WindowService {\r\n\r\n get nativeWindow(): any {\r\n return _window();\r\n }\r\n}\r\n\r\nfunction _window(): any {\r\n // Return the global native browser window object\r\n return typeof window !== 'undefined' ? window : undefined;\r\n}","import { InjectionToken } from '@angular/core';\r\nimport { WindowService } from './window.service';\r\nimport { DBTable, DbConfig, DBSchema, DBView,\r\n DBColumn, DBUnique, DBForeign, SqlTransaction, SqlResultSet, SqlError, DefaultType } from './db-wrapper.models';\r\n\r\nexport class DbWrapperService {\r\n private _dbName: string;\r\n private _location: string;\r\n private _iosDatabaseLocation: string;\r\n private _readyPromise: Promise<void>;\r\n schema: DBSchema;\r\n db: any;\r\n\r\n constructor(dbConfig: DbConfig, dbSchema?: DBSchema) {\r\n\r\n this._dbName = dbConfig.dbName;\r\n this._location = dbConfig.location || 'default';\r\n this._iosDatabaseLocation = dbConfig.iosDatabaseLocation || 'Library';\r\n const window = (new WindowService()).nativeWindow;\r\n if (dbSchema) { this.schema = dbSchema; }\r\n this._readyPromise = new Promise ( (resolve, reject) => {\r\n if (typeof window.cordova === 'undefined') {\r\n setTimeout( () => {\r\n this.init(dbSchema).then (\r\n () => {\r\n resolve();\r\n } )\r\n .catch ( (err) => {\r\n reject(err);\r\n } );\r\n }, 500);\r\n } else {\r\n document.addEventListener('deviceready', () => {\r\n console.log('dbWrapper: device ready.');\r\n this.initDevice(dbSchema).then ( () => resolve() ).catch ( (err) => reject(err) );\r\n });\r\n }\r\n });\r\n }\r\n\r\n ready(): Promise<void> {\r\n return this._readyPromise;\r\n }\r\n\r\n initDevice(dbSchema: DBSchema): Promise<void> {\r\n const window = (new WindowService()).nativeWindow;\r\n return new Promise( (resolve, reject) => {\r\n this.db = window.sqlitePlugin.openDatabase({\r\n name: this._dbName,\r\n location: this._location,\r\n androidLockWorkaround: 1\r\n });\r\n\r\n if (dbSchema) {\r\n this.generate(dbSchema).catch(err => {\r\n reject(err);\r\n }).then(() => { resolve(); });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n init(dbSchema: DBSchema): Promise<void> {\r\n const window = (new WindowService()).nativeWindow;\r\n return new Promise ( (resolve, reject) => {\r\n this.db = window.openDatabase(this._dbName, '1.0', 'database', -1);\r\n if (dbSchema) {\r\n this.generate(dbSchema).catch(err => {\r\n reject(err);\r\n }).then( () => {\r\n resolve();\r\n });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n generate(schema: DBSchema): Promise<any> {\r\n\r\n const sentences = [];\r\n this.schema = schema;\r\n\r\n if (schema.tables) {\r\n schema.tables.forEach(table => {\r\n sentences.push(this.createTable(table));\r\n });\r\n }\r\n if (schema.views) {\r\n schema.views.forEach( view => {\r\n sentences.push(this.createView(view));\r\n });\r\n }\r\n if (sentences.length === 0) {\r\n throw new Error('Esquema de la base de datos vacia.');\r\n }\r\n return Promise.all(sentences);\r\n }\r\n\r\n async createTable(table: DBTable): Promise<any> {\r\n let sql = '', onConflictPrimary;\r\n const sentences = [], newColumns = []\r\n\r\n const tableDDL = await this._tableExists(table.name);\r\n if (tableDDL) {\r\n table.columns.forEach( col => {\r\n if (!this._columnExists(tableDDL as string, col.name) ) {\r\n newColumns.push(this.addColumn(table.name, col));\r\n }\r\n });\r\n } else {\r\n table.columns.forEach( col => {\r\n sentences.push(this.defColumn(col));\r\n });\r\n }\r\n onConflictPrimary = 'on conflict fail';\r\n\r\n if (Array.isArray(table.primary) ) {\r\n sentences.push (' CONSTRAINT identificador PRIMARY KEY (' + table.primary.join(',') + ') ' + onConflictPrimary );\r\n }\r\n if (typeof table.primary === 'string') {\r\n sentences.push (' CONSTRAINT identificador PRIMARY KEY (' + table.primary + ') ' + onConflictPrimary );\r\n }\r\n if (table.uniques) {\r\n table.uniques.forEach( uniq => {\r\n sentences.push(this.defUnique(uniq));\r\n });\r\n }\r\n\r\n if (table.foreigns) {\r\n table.foreigns.forEach ( fore => {\r\n sentences.push(this.defForeign(fore));\r\n });\r\n }\r\n\r\n if (tableDDL && newColumns.length !== 0) {\r\n return Promise.all(newColumns)\r\n .then( () => { console.log(`Table ${table.name} altered.`); } )\r\n .catch( (err) => {\r\n console.error (`Table ${table.name}: ${err.message}`);\r\n throw new Error(`Table ${table.name}: ${err.message}`);\r\n });\r\n\r\n } else if (!tableDDL) {\r\n sql = 'CREATE TABLE IF NOT EXISTS ' + table.name + ' (' + sentences.join(',') + ')';\r\n return this.query(sql)\r\n .then( () => { console.log(`Table ${table.name} created.`); })\r\n .catch( (err) => {\r\n console.error (`Table ${table.name}: ${err.message}`);\r\n throw new Error(`Table ${table.name}: ${err.message}`);\r\n });\r\n } else {\r\n return Promise.resolve().then( () => { console.log(`Table ${table.name} initialized.`); });\r\n }\r\n }\r\n\r\n\r\n createView(view: DBView): Promise<any> {\r\n let sql: string;\r\n\r\n sql = 'CREATE VIEW IF NOT EXISTS ' + view.name\r\n + ' AS ' + view.sql;\r\n\r\n return this.query(sql);\r\n\r\n }\r\n\r\n getSchemaTable(tableName: string): DBTable {\r\n let res: DBTable;\r\n\r\n this.schema.tables.forEach( table => {\r\n if (table.name === tableName) {\r\n res = table;\r\n }\r\n });\r\n return res;\r\n\r\n }\r\n\r\n getUniquesTable(table: DBTable): object {\r\n let res: {};\r\n table.uniques.forEach(uniq => {\r\n res[uniq.name] = uniq;\r\n });\r\n return res;\r\n }\r\n\r\n query(query: string, bindings: any[]= []): Promise<SqlResultSet> {\r\n return new Promise((resolve, reject) => {\r\n if (query.indexOf('select') === 0) {\r\n this.db.readTransaction((transaction: SqlTransaction) => {\r\n transaction.executeSql(query, bindings, (transaction: SqlTransaction, result: SqlResultSet) => {\r\n resolve(result);\r\n }, (transaction: SqlTransaction, error: SqlError) => {\r\n reject(error);\r\n });\r\n }, (err: SqlError) => reject(err) );\r\n } else {\r\n this.db.transaction((transaction: SqlTransaction) => {\r\n transaction.executeSql(query, bindings, (transaction: SqlTransaction, result: SqlResultSet) => {\r\n resolve(result);\r\n }, (transaction: SqlTransaction, error: SqlError) => {\r\n reject(error);\r\n });\r\n }, (err: SqlError) => reject(err) );\r\n }\r\n });\r\n }\r\n\r\n Count(query: string, bindings: any[]= []): Promise<number> {\r\n return this.query(query, bindings).then(rows => {\r\n return this.rowsCount(rows);\r\n });\r\n }\r\n\r\n insert(table: string, bindings: {}): Promise<SqlResultSet> {\r\n let sql = '', sqlBinds = [], sqlKeys = [], sqlValues = [] ;\r\n\r\n sql = sql + 'insert into ' + table + ' ';\r\n\r\n for (const index in bindings) {\r\n if (bindings.hasOwnProperty(index)) {\r\n sqlKeys.push(index);\r\n sqlValues.push(bindings[index]);\r\n sqlBinds.push('?');\r\n }\r\n }\r\n\r\n sql = sql + '(' + sqlKeys.join(',') + ') values (' + sqlBinds.join(',') + ')';\r\n return new Promise((resolve, reject) => {\r\n this.db.transaction(transaction => {\r\n transaction.executeSql(sql, sqlValues, (transaction: SqlTransaction, result: SqlResultSet) => {\r\n resolve(result);\r\n }, (transaction: SqlTransaction, error: SqlError) => {\r\n reject(error);\r\n });\r\n });\r\n });\r\n }\r\n\r\n update(table: string, bindings: {}, where: {}): Promise<SqlResultSet> {\r\n let sql = '', sqlBinds = [], sqlKeys =[], sqlValues = [] ;\r\n\r\n sql = sql + 'update ' + table + ' set ';\r\n\r\n for (let index in bindings) {\r\n if (bindings.hasOwnProperty(index)) {\r\n let newObj = bindings[index];\r\n if (typeof newObj === 'object' && newObj !== null) {\r\n sqlValues.push(newObj.value);\r\n if (newObj.ifnull) {\r\n sqlBinds.push(index + ' = ifnull( ' + index + ',0) + ?');\r\n } else if (newObj.operator) {\r\n sqlBinds.push(index + ' = ' + index + newObj.operator + ' ?');\r\n } else {\r\n sqlBinds.push(index + ' = ?');\r\n }\r\n\r\n } else {\r\n sqlBinds.push(index + ' = ?');\r\n sqlValues.push(bindings[index]);\r\n\r\n }\r\n }\r\n }\r\n\r\n for (let index in where) {\r\n if (where.hasOwnProperty(index)) {\r\n if (typeof where[index] === 'object' && where[index] !== null){\r\n sqlKeys.push(index + ' ' + where[index].operator + ' ?');\r\n sqlValues.push(where[index].value);\r\n } else {\r\n sqlKeys.push(index + ' = ?');\r\n sqlValues.push(where[index]);\r\n }\r\n }\r\n }\r\n\r\n sql = sql + sqlBinds.join(',') + ' where ' + sqlKeys.join(' and ');\r\n return new Promise((resolve, reject) => {\r\n this.db.transaction(transaction => {\r\n transaction.executeSql(sql, sqlValues, (transaction: SqlTransaction, result: SqlResultSet) => {\r\n resolve(result);\r\n }, (transaction: SqlTransaction, error: SqlError) => {\r\n reject(error);\r\n });\r\n });\r\n });\r\n }\r\n\r\n dropTable (tables: string[]): Promise<void> {\r\n let cont = 1;\r\n\r\n cont = tables.length;\r\n return new Promise((resolve, reject) => {\r\n tables.some( table => {\r\n if (cont !== 0) {\r\n this.query('DROP TABLE ' + table)\r\n .then( () => {\r\n if (cont === 1 ) { resolve();\r\n } else { cont--; }\r\n }, err => {\r\n cont = 0;\r\n reject(err);\r\n return true;\r\n });\r\n return false;\r\n }\r\n });\r\n })\r\n }\r\n\r\n fetchAll(result: SqlResultSet): object[] {\r\n let output = [];\r\n\r\n for (let i = 0; i < result.rows.length; i++) {\r\n output.push(result.rows.item(i));\r\n }\r\n\r\n return output;\r\n }\r\n\r\n fetch(result: SqlResultSet): object {\r\n let objeto = undefined, newObj= undefined;\r\n if (result.rows.length !== 0) {\r\n objeto = result.rows.item(0);\r\n newObj = {};\r\n const keys = Object.keys(objeto);\r\n for (let key in keys) {\r\n newObj[keys[key]] = objeto[keys[key]];\r\n }\r\n }\r\n return newObj;\r\n }\r\n\r\n\r\n rowsCount(result: SqlResultSet): number {\r\n return result.rows.length;\r\n }\r\n\r\n tableExists(table: string): Promise<boolean> {\r\n return this.query('select sql from sqlite_master ' +\r\n 'where type=\\'table\\' and name=\\'' + table + '\\'')\r\n .then(result => (this.rowsCount(result) === 1) );\r\n } \r\n\r\n columnExists(table: string, column: string): Promise<boolean> {\r\n return this._tableExists(table)\r\n .then((tableDDL) => {\r\n if (tableDDL) {\r\n return this._columnExists((tableDDL as string), column);\r\n } else { return false; }\r\n });\r\n }\r\n\r\n/* Private */\r\n\r\n private defColumn(col: DBColumn): string {\r\n let colSql: string;\r\n\r\n colSql = col.name + ' ' + col.type;\r\n if (!col.isNullable) {\r\n colSql += ' NOT NULL ';\r\n }\r\n if (col.default) {\r\n colSql += ' DEFAULT ' + col.default + ' ';\r\n }\r\n if (col.type === 'text' && col.length) {\r\n colSql += ` CONSTRAINT ${col.name}_length CHECK ( `;\r\n if (col.isNullable) {\r\n colSql += `${col.name} is null OR `;\r\n }\r\n colSql += `length(${col.name}) <= ${col.length} )`;\r\n\r\n }\r\n\r\n return colSql;\r\n\r\n }\r\n\r\n private defUnique(unique: DBUnique): string {\r\n let uniqSql: string;\r\n\r\n // depende del entorno, producción o desarrollo\r\n const onConflictUnique = 'on conflict replace';\r\n\r\n if (Array.isArray(unique.fields) ) {\r\n uniqSql = ` CONSTRAINT ${unique.name} UNIQUE ( ${unique.fields.join(',')} ) ${onConflictUnique} `;\r\n }\r\n if (typeof unique.fields === 'string') {\r\n uniqSql = ` CONSTRAINT ${unique.name} UNIQUE ( ${unique.fields} ) ${onConflictUnique} `;\r\n }\r\n\r\n return uniqSql;\r\n }\r\n\r\n private defForeign(fore: DBForeign): string {\r\n let foreSql: string;\r\n\r\n if (Array.isArray(fore.foreignKey) ) {\r\n foreSql = ` FOREIGN KEY ( ${fore.foreignKey.join(',')} ) `;\r\n }\r\n\r\n if (typeof fore.foreignKey === 'string') {\r\n foreSql = ` FOREIGN KEY ( ${fore.foreignKey} ) `;\r\n }\r\n\r\n if (Array.isArray(fore.primaryKey) ) {\r\n foreSql = ` REFERENCES ${fore.referenceTable} ( ${fore.primaryKey.join(',')} ) `;\r\n }\r\n\r\n if (typeof fore.primaryKey === 'string') {\r\n foreSql = ` REFERENCES ${fore.referenceTable} ( ${fore.primaryKey} ) `;\r\n }\r\n\r\n return foreSql;\r\n }\r\n\r\n private _tableExists(table: string): Promise<boolean | string> {\r\n return this.query('select sql from sqlite_master ' +\r\n 'where type=\\'table\\' and name=\\'' + table + '\\'')\r\n .then(result => {\r\n if (this.rowsCount(result) === 1) { return (this.fetch(result) as any).sql as string; } else { return false; }\r\n });\r\n }\r\n\r\n private _columnExists(tableDDL: string, column: string): boolean {\r\n\r\n if (tableDDL.indexOf(column) === -1) { return false; } else { return true; }\r\n }\r\n\r\n private addColumn(table: string, col: DBColumn): Promise<any> {\r\n const colSql = this.defColumn(col);\r\n const query = 'alter TABLE ' + table + ' add COLUMN ' + colSql;\r\n return this.query(query);\r\n }\r\n\r\n}\r\n\r\n\r\n\r\nexport const DB_CONFIG = new InjectionToken<DbConfig>('dbWrapperConfig');\r\nexport const DB_SCHEMA = new InjectionToken<DBSchema>('dbWrapperSchema');\r\n\r\nexport function getDefaultDbConfig(): DbConfig {\r\n return {\r\n dbName: 'db.sqlite',\r\n location: 'default',\r\n iosDatabaseLocation: 'Library'\r\n };\r\n}\r\n\r\nexport function provideDbWrapper(dbConfig: DbConfig, dbSchema?: DBSchema): DbWrapperService {\r\n const config = !!dbConfig ? dbConfig : getDefaultDbConfig();\r\n return new DbWrapperService(config, dbSchema);\r\n}\r\n\r\n\r\n\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { DbConfig, DBSchema } from './db-wrapper.models';\r\nimport { DB_CONFIG, provideDbWrapper, DbWrapperService, DB_SCHEMA } from './db-wrapper.service';\r\n\r\n@NgModule()\r\nexport class DbWrapperModule {\r\n static forRoot(dbConfig: DbConfig, schema?: DBSchema): ModuleWithProviders {\r\n return {\r\n ngModule: DbWrapperModule,\r\n providers: [\r\n { provide: DB_CONFIG, useValue: dbConfig },\r\n { provide: DB_SCHEMA, useValue: schema },\r\n { provide: DbWrapperService, useFactory: provideDbWrapper, deps: [DB_CONFIG, DB_SCHEMA] }\r\n ]\r\n };\r\n }\r\n\r\n}\r\n","\r\nexport enum DataType {\r\n Integer = 'integer',\r\n Int = 'integer',\r\n TinyInt = 'integer',\r\n SmallInt = 'integer',\r\n BigInt = 'integer',\r\n Text = 'text',\r\n Char = 'text',\r\n NChar = 'text',\r\n VarChar = 'text',\r\n NVarChar = 'text',\r\n CLOB = 'text',\r\n BLOB = 'blob',\r\n Real = 'real',\r\n Double = 'real',\r\n Decimal = 'real',\r\n Float = 'real',\r\n Boolean = 'integer',\r\n DateTime = 'text',\r\n Date = 'text'\r\n\r\n}\r\n\r\nexport enum DefaultType {\r\n Integer = '0',\r\n Int = '0',\r\n TinyInt = '0',\r\n SmallInt = '0',\r\n BigInt = '0',\r\n Text = '\\'\\'',\r\n Char = '\\'\\'',\r\n NChar = '\\'\\'',\r\n VarChar = '\\'\\'',\r\n NVarChar = '\\'\\'',\r\n CLOB = '\\'\\'',\r\n BLOB = '0',\r\n Real = '0.0',\r\n Double = '0.0',\r\n Decimal = '0.0',\r\n Float = '0.0',\r\n Boolean = '0',\r\n DateTime = '(datetime(\\'now\\', \\'localtime\\'))',\r\n Date = '(date(\\'now\\', \\'localtime\\'))'\r\n}\r\n\r\n\r\nexport interface SqlTransaction {\r\n /**\r\n * Executes SQL statement via current transaction.\r\n * @param sql SQL statement to execute.\r\n * @param params SQL stetement arguments.\r\n * @param successCallback Called in case of query has been successfully done.\r\n * @param errorCallback Called, when query fails. Return false to continue transaction; true or no return to rollback.\r\n */\r\n executeSql(sql: string,\r\n params?: any[],\r\n successCallback?: (transaction: SqlTransaction, resultSet: SqlResultSet) => void,\r\n errorCallback?: (transaction: SqlTransaction, error: SqlError) => any): void;\r\n}\r\n\r\nexport interface SqlResultSet {\r\n insertId: number;\r\n rowsAffected: number;\r\n rows: SqlResultSetRowList;\r\n}\r\n\r\nexport interface SqlResultSetRowList {\r\n length: number;\r\n item(index: number): Object;\r\n}\r\n\r\nexport interface SqlError {\r\n code: number;\r\n message: string;\r\n}\r\n\r\n/**\r\n * Interfaz con la configuración de websql\r\n */\r\nexport interface DbConfig {\r\n /**\r\n * nombre de la base de datos\r\n */\r\n dbName: string;\r\n /**\r\n * default 'default'\r\n */\r\n location?: string;\r\n /**\r\n * default 'Library'\r\n */\r\n iosDatabaseLocation?: string;\r\n}\r\n\r\n/**\r\n * Intefaz para definir un constraint unique\r\n *\r\n */\r\nexport interface DBUnique {\r\n name: string; /** nombre */\r\n fields: string | string[]; /** lista de campos */\r\n}\r\n\r\nexport interface DBForeign {\r\n name: string;\r\n foreignKey: string | string[];\r\n referenceTable: string;\r\n primaryKey: string | string[];\r\n}\r\n\r\nexport interface DBColumn {\r\n name: string;\r\n type: DataType;\r\n length?: number;\r\n isNullable?: boolean;\r\n default?: DefaultType | string;\r\n}\r\n\r\nexport interface DBTable {\r\n name: string;\r\n columns: DBColumn[];\r\n primary: string | string[];\r\n uniques?: DBUnique[];\r\n foreigns?: DBForeign[];\r\n sync?: string;\r\n}\r\n\r\n\r\nexport interface DBView {\r\n name: string;\r\n sql: string;\r\n}\r\n\r\nexport interface DBSchema {\r\n tables: DBTable[],\r\n views?: DBView[]\r\n}\r\n\r\n","\r\n\r\n/*\r\n * Public API Surface of db-wrapper\r\n */\r\n\r\nexport * from './lib/db-wrapper.service';\r\nexport * from './lib/db-wrapper.module';\r\nexport * from './lib/db-wrapper.models';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db-wrapper.js","sources":["ng://db-wrapper/lib/window.service.ts","ng://db-wrapper/lib/db-wrapper.service.ts","ng://db-wrapper/lib/db-wrapper.module.ts","ng://db-wrapper/lib/db-wrapper.models.ts","ng://db-wrapper/public-api.ts","ng://db-wrapper/db-wrapper.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class WindowService {\n\n get nativeWindow(): any {\n return _window();\n }\n}\n\nfunction _window(): any {\n // Return the global native browser window object\n return typeof window !== 'undefined' ? window : undefined;\n}","import { InjectionToken } from '@angular/core';\nimport { WindowService } from './window.service';\nimport { DBTable, DbConfig, DBSchema, DBView,\n DBColumn, DBUnique, DBForeign, SqlTransaction, SqlResultSet, SqlError, DefaultType } from './db-wrapper.models';\n\nexport class DbWrapperService {\n private _dbName: string;\n private _location: string;\n private _iosDatabaseLocation: string;\n private _androidDatabaseProvider: string;\n private _readyPromise: Promise<void>;\n schema: DBSchema;\n db: any;\n\n constructor(dbConfig: DbConfig, dbSchema?: DBSchema) {\n\n this._dbName = dbConfig.dbName;\n this._location = dbConfig.location || 'default';\n this._iosDatabaseLocation = dbConfig.iosDatabaseLocation || 'Library';\n this._androidDatabaseProvider = dbConfig.androidDatabaseProvider || 'default';\n const window = (new WindowService()).nativeWindow;\n if (dbSchema) { this.schema = dbSchema; }\n this._readyPromise = new Promise ( (resolve, reject) => {\n if (typeof window.cordova === 'undefined') {\n setTimeout( () => {\n this.init(dbSchema).then (\n () => {\n resolve();\n } )\n .catch ( (err) => {\n reject(err);\n } );\n }, 500);\n } else {\n document.addEventListener('deviceready', () => {\n console.log('dbWrapper: device ready.');\n this.initDevice(dbSchema).then ( () => resolve() ).catch ( (err) => reject(err) );\n });\n }\n });\n }\n\n ready(): Promise<void> {\n return this._readyPromise;\n }\n\n initDevice(dbSchema: DBSchema): Promise<void> {\n const window = (new WindowService()).nativeWindow;\n return new Promise( (resolve, reject) => {\n this.db = window.sqlitePlugin.openDatabase({\n name: this._dbName,\n location: this._location,\n androidLockWorkaround: 1,\n androidDatabaseProvider: this._androidDatabaseProvider,\n });\n\n if (dbSchema) {\n this.generate(dbSchema).catch(err => {\n reject(err);\n }).then(() => { resolve(); });\n } else {\n resolve();\n }\n });\n }\n\n init(dbSchema: DBSchema): Promise<void> {\n const window = (new WindowService()).nativeWindow;\n return new Promise ( (resolve, reject) => {\n this.db = window.openDatabase(this._dbName, '1.0', 'database', -1);\n if (dbSchema) {\n this.generate(dbSchema).catch(err => {\n reject(err);\n }).then( () => {\n resolve();\n });\n } else {\n resolve();\n }\n });\n }\n\n generate(schema: DBSchema): Promise<any> {\n\n const sentences = [];\n this.schema = schema;\n\n if (schema.tables) {\n schema.tables.forEach(table => {\n sentences.push(this.createTable(table));\n });\n }\n if (schema.views) {\n schema.views.forEach( view => {\n sentences.push(this.createView(view));\n });\n }\n if (sentences.length === 0) {\n throw new Error('Esquema de la base de datos vacia.');\n }\n return Promise.all(sentences);\n }\n\n async createTable(table: DBTable): Promise<any> {\n let sql = '', onConflictPrimary;\n const sentences = [], newColumns = []\n\n const tableDDL = await this._tableExists(table.name);\n if (tableDDL) {\n table.columns.forEach( col => {\n if (!this._columnExists(tableDDL as string, col.name) ) {\n newColumns.push(this.addColumn(table.name, col));\n }\n });\n } else {\n table.columns.forEach( col => {\n sentences.push(this.defColumn(col));\n });\n }\n onConflictPrimary = 'on conflict fail';\n\n if (Array.isArray(table.primary) ) {\n sentences.push (' CONSTRAINT identificador PRIMARY KEY (' + table.primary.join(',') + ') ' + onConflictPrimary );\n }\n if (typeof table.primary === 'string') {\n sentences.push (' CONSTRAINT identificador PRIMARY KEY (' + table.primary + ') ' + onConflictPrimary );\n }\n if (table.uniques) {\n table.uniques.forEach( uniq => {\n sentences.push(this.defUnique(uniq));\n });\n }\n\n if (table.foreigns) {\n table.foreigns.forEach ( fore => {\n sentences.push(this.defForeign(fore));\n });\n }\n\n if (tableDDL && newColumns.length !== 0) {\n return Promise.all(newColumns)\n .then( () => { console.log(`Table ${table.name} altered.`); } )\n .catch( (err) => {\n console.error (`Table ${table.name}: ${err.message}`);\n throw new Error(`Table ${table.name}: ${err.message}`);\n });\n\n } else if (!tableDDL) {\n sql = 'CREATE TABLE IF NOT EXISTS ' + table.name + ' (' + sentences.join(',') + ')';\n return this.query(sql)\n .then( () => { console.log(`Table ${table.name} created.`); })\n .catch( (err) => {\n console.error (`Table ${table.name}: ${err.message}`);\n throw new Error(`Table ${table.name}: ${err.message}`);\n });\n } else {\n return Promise.resolve().then( () => { console.log(`Table ${table.name} initialized.`); });\n }\n }\n\n\n createView(view: DBView): Promise<any> {\n let sql: string;\n\n sql = 'CREATE VIEW IF NOT EXISTS ' + view.name\n + ' AS ' + view.sql;\n\n return this.query(sql);\n\n }\n\n getSchemaTable(tableName: string): DBTable {\n let res: DBTable;\n\n this.schema.tables.forEach( table => {\n if (table.name === tableName) {\n res = table;\n }\n });\n return res;\n\n }\n\n getUniquesTable(table: DBTable): object {\n let res: {};\n table.uniques.forEach(uniq => {\n res[uniq.name] = uniq;\n });\n return res;\n }\n\n query(query: string, bindings: any[]= []): Promise<SqlResultSet> {\n return new Promise((resolve, reject) => {\n if (query.indexOf('select') === 0) {\n this.db.readTransaction((transaction: SqlTransaction) => {\n transaction.executeSql(query, bindings, (transaction: SqlTransaction, result: SqlResultSet) => {\n resolve(result);\n }, (transaction: SqlTransaction, error: SqlError) => {\n reject(error);\n });\n }, (err: SqlError) => reject(err) );\n } else {\n this.db.transaction((transaction: SqlTransaction) => {\n transaction.executeSql(query, bindings, (transaction: SqlTransaction, result: SqlResultSet) => {\n resolve(result);\n }, (transaction: SqlTransaction, error: SqlError) => {\n reject(error);\n });\n }, (err: SqlError) => reject(err) );\n }\n });\n }\n\n Count(query: string, bindings: any[]= []): Promise<number> {\n return this.query(query, bindings).then(rows => {\n return this.rowsCount(rows);\n });\n }\n\n insert(table: string, bindings: {}): Promise<SqlResultSet> {\n let sql = '', sqlBinds = [], sqlKeys = [], sqlValues = [] ;\n\n sql = sql + 'insert into ' + table + ' ';\n\n for (const index in bindings) {\n if (bindings.hasOwnProperty(index)) {\n sqlKeys.push(index);\n sqlValues.push(bindings[index]);\n sqlBinds.push('?');\n }\n }\n\n sql = sql + '(' + sqlKeys.join(',') + ') values (' + sqlBinds.join(',') + ')';\n return new Promise((resolve, reject) => {\n this.db.transaction(transaction => {\n transaction.executeSql(sql, sqlValues, (transaction: SqlTransaction, result: SqlResultSet) => {\n resolve(result);\n }, (transaction: SqlTransaction, error: SqlError) => {\n reject(error);\n });\n });\n });\n }\n\n update(table: string, bindings: {}, where: {}): Promise<SqlResultSet> {\n let sql = '', sqlBinds = [], sqlKeys =[], sqlValues = [] ;\n\n sql = sql + 'update ' + table + ' set ';\n\n for (let index in bindings) {\n if (bindings.hasOwnProperty(index)) {\n let newObj = bindings[index];\n if (typeof newObj === 'object' && newObj !== null) {\n sqlValues.push(newObj.value);\n if (newObj.ifnull) {\n sqlBinds.push(index + ' = ifnull( ' + index + ',0) + ?');\n } else if (newObj.operator) {\n sqlBinds.push(index + ' = ' + index + newObj.operator + ' ?');\n } else {\n sqlBinds.push(index + ' = ?');\n }\n\n } else {\n sqlBinds.push(index + ' = ?');\n sqlValues.push(bindings[index]);\n\n }\n }\n }\n\n for (let index in where) {\n if (where.hasOwnProperty(index)) {\n if (typeof where[index] === 'object' && where[index] !== null){\n sqlKeys.push(index + ' ' + where[index].operator + ' ?');\n sqlValues.push(where[index].value);\n } else {\n sqlKeys.push(index + ' = ?');\n sqlValues.push(where[index]);\n }\n }\n }\n\n sql = sql + sqlBinds.join(',') + ' where ' + sqlKeys.join(' and ');\n return new Promise((resolve, reject) => {\n this.db.transaction(transaction => {\n transaction.executeSql(sql, sqlValues, (transaction: SqlTransaction, result: SqlResultSet) => {\n resolve(result);\n }, (transaction: SqlTransaction, error: SqlError) => {\n reject(error);\n });\n });\n });\n }\n\n dropTable (tables: string[]): Promise<void> {\n let cont = 1;\n\n cont = tables.length;\n return new Promise((resolve, reject) => {\n tables.some( table => {\n if (cont !== 0) {\n this.query('DROP TABLE ' + table)\n .then( () => {\n if (cont === 1 ) { resolve();\n } else { cont--; }\n }, err => {\n cont = 0;\n reject(err);\n return true;\n });\n return false;\n }\n });\n })\n }\n\n fetchAll(result: SqlResultSet): object[] {\n let output = [];\n\n for (let i = 0; i < result.rows.length; i++) {\n output.push(result.rows.item(i));\n }\n\n return output;\n }\n\n fetch(result: SqlResultSet): object {\n let objeto = undefined, newObj= undefined;\n if (result.rows.length !== 0) {\n objeto = result.rows.item(0);\n newObj = {};\n const keys = Object.keys(objeto);\n for (let key in keys) {\n newObj[keys[key]] = objeto[keys[key]];\n }\n }\n return newObj;\n }\n\n\n rowsCount(result: SqlResultSet): number {\n return result.rows.length;\n }\n\n tableExists(table: string): Promise<boolean> {\n return this.query('select sql from sqlite_master ' +\n 'where type=\\'table\\' and name=\\'' + table + '\\'')\n .then(result => (this.rowsCount(result) === 1) );\n } \n\n columnExists(table: string, column: string): Promise<boolean> {\n return this._tableExists(table)\n .then((tableDDL) => {\n if (tableDDL) {\n return this._columnExists((tableDDL as string), column);\n } else { return false; }\n });\n }\n\n/* Private */\n\n private defColumn(col: DBColumn): string {\n let colSql: string;\n\n colSql = col.name + ' ' + col.type;\n if (!col.isNullable) {\n colSql += ' NOT NULL ';\n }\n if (col.default) {\n colSql += ' DEFAULT ' + col.default + ' ';\n }\n if (col.type === 'text' && col.length) {\n colSql += ` CONSTRAINT ${col.name}_length CHECK ( `;\n if (col.isNullable) {\n colSql += `${col.name} is null OR `;\n }\n colSql += `length(${col.name}) <= ${col.length} )`;\n\n }\n\n return colSql;\n\n }\n\n private defUnique(unique: DBUnique): string {\n let uniqSql: string;\n\n // depende del entorno, producción o desarrollo\n const onConflictUnique = 'on conflict replace';\n\n if (Array.isArray(unique.fields) ) {\n uniqSql = ` CONSTRAINT ${unique.name} UNIQUE ( ${unique.fields.join(',')} ) ${onConflictUnique} `;\n }\n if (typeof unique.fields === 'string') {\n uniqSql = ` CONSTRAINT ${unique.name} UNIQUE ( ${unique.fields} ) ${onConflictUnique} `;\n }\n\n return uniqSql;\n }\n\n private defForeign(fore: DBForeign): string {\n let foreSql: string;\n\n if (Array.isArray(fore.foreignKey) ) {\n foreSql = ` FOREIGN KEY ( ${fore.foreignKey.join(',')} ) `;\n }\n\n if (typeof fore.foreignKey === 'string') {\n foreSql = ` FOREIGN KEY ( ${fore.foreignKey} ) `;\n }\n\n if (Array.isArray(fore.primaryKey) ) {\n foreSql = ` REFERENCES ${fore.referenceTable} ( ${fore.primaryKey.join(',')} ) `;\n }\n\n if (typeof fore.primaryKey === 'string') {\n foreSql = ` REFERENCES ${fore.referenceTable} ( ${fore.primaryKey} ) `;\n }\n\n return foreSql;\n }\n\n private _tableExists(table: string): Promise<boolean | string> {\n return this.query('select sql from sqlite_master ' +\n 'where type=\\'table\\' and name=\\'' + table + '\\'')\n .then(result => {\n if (this.rowsCount(result) === 1) { return (this.fetch(result) as any).sql as string; } else { return false; }\n });\n }\n\n private _columnExists(tableDDL: string, column: string): boolean {\n\n if (tableDDL.indexOf(column) === -1) { return false; } else { return true; }\n }\n\n private addColumn(table: string, col: DBColumn): Promise<any> {\n const colSql = this.defColumn(col);\n const query = 'alter TABLE ' + table + ' add COLUMN ' + colSql;\n return this.query(query);\n }\n\n}\n\n\n\nexport const DB_CONFIG = new InjectionToken<DbConfig>('dbWrapperConfig');\nexport const DB_SCHEMA = new InjectionToken<DBSchema>('dbWrapperSchema');\n\nexport function getDefaultDbConfig(): DbConfig {\n return {\n dbName: 'db.sqlite',\n location: 'default',\n iosDatabaseLocation: 'Library'\n };\n}\n\nexport function provideDbWrapper(dbConfig: DbConfig, dbSchema?: DBSchema): DbWrapperService {\n const config = !!dbConfig ? dbConfig : getDefaultDbConfig();\n return new DbWrapperService(config, dbSchema);\n}\n\n\n\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { DbConfig, DBSchema } from './db-wrapper.models';\nimport { DB_CONFIG, provideDbWrapper, DbWrapperService, DB_SCHEMA } from './db-wrapper.service';\n\n@NgModule()\nexport class DbWrapperModule {\n static forRoot(dbConfig: DbConfig, schema?: DBSchema): ModuleWithProviders {\n return {\n ngModule: DbWrapperModule,\n providers: [\n { provide: DB_CONFIG, useValue: dbConfig },\n { provide: DB_SCHEMA, useValue: schema },\n { provide: DbWrapperService, useFactory: provideDbWrapper, deps: [DB_CONFIG, DB_SCHEMA] }\n ]\n };\n }\n\n}\n","\nexport enum DataType {\n Integer = 'integer',\n Int = 'integer',\n TinyInt = 'integer',\n SmallInt = 'integer',\n BigInt = 'integer',\n Text = 'text',\n Char = 'text',\n NChar = 'text',\n VarChar = 'text',\n NVarChar = 'text',\n CLOB = 'text',\n BLOB = 'blob',\n Real = 'real',\n Double = 'real',\n Decimal = 'real',\n Float = 'real',\n Boolean = 'integer',\n DateTime = 'text',\n Date = 'text'\n\n}\n\nexport enum DefaultType {\n Integer = '0',\n Int = '0',\n TinyInt = '0',\n SmallInt = '0',\n BigInt = '0',\n Text = '\\'\\'',\n Char = '\\'\\'',\n NChar = '\\'\\'',\n VarChar = '\\'\\'',\n NVarChar = '\\'\\'',\n CLOB = '\\'\\'',\n BLOB = '0',\n Real = '0.0',\n Double = '0.0',\n Decimal = '0.0',\n Float = '0.0',\n Boolean = '0',\n DateTime = '(datetime(\\'now\\', \\'localtime\\'))',\n Date = '(date(\\'now\\', \\'localtime\\'))'\n}\n\n\nexport interface SqlTransaction {\n /**\n * Executes SQL statement via current transaction.\n * @param sql SQL statement to execute.\n * @param params SQL stetement arguments.\n * @param successCallback Called in case of query has been successfully done.\n * @param errorCallback Called, when query fails. Return false to continue transaction; true or no return to rollback.\n */\n executeSql(sql: string,\n params?: any[],\n successCallback?: (transaction: SqlTransaction, resultSet: SqlResultSet) => void,\n errorCallback?: (transaction: SqlTransaction, error: SqlError) => any): void;\n}\n\nexport interface SqlResultSet {\n insertId: number;\n rowsAffected: number;\n rows: SqlResultSetRowList;\n}\n\nexport interface SqlResultSetRowList {\n length: number;\n item(index: number): Object;\n}\n\nexport interface SqlError {\n code: number;\n message: string;\n}\n\n/**\n * Interfaz con la configuración de websql\n */\nexport interface DbConfig {\n /**\n * nombre de la base de datos\n */\n dbName: string;\n /**\n * default 'default'\n */\n location?: string;\n /**\n * default 'Library'\n */\n iosDatabaseLocation?: string;\n /**\n * default 'default'\n */ \n androidDatabaseProvider?: string;\n}\n\n/**\n * Intefaz para definir un constraint unique\n *\n */\nexport interface DBUnique {\n name: string; /** nombre */\n fields: string | string[]; /** lista de campos */\n}\n\nexport interface DBForeign {\n name: string;\n foreignKey: string | string[];\n referenceTable: string;\n primaryKey: string | string[];\n}\n\nexport interface DBColumn {\n name: string;\n type: DataType;\n length?: number;\n isNullable?: boolean;\n default?: DefaultType | string;\n}\n\nexport interface DBTable {\n name: string;\n columns: DBColumn[];\n primary: string | string[];\n uniques?: DBUnique[];\n foreigns?: DBForeign[];\n sync?: string;\n}\n\n\nexport interface DBView {\n name: string;\n sql: string;\n}\n\nexport interface DBSchema {\n tables: DBTable[],\n views?: DBView[]\n}\n\n","\n\n/*\n * Public API Surface of db-wrapper\n */\n\nexport * from './lib/db-wrapper.service';\nexport * from './lib/db-wrapper.module';\nexport * from './lib/db-wrapper.models';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,119 +1,123 @@
|
|
|
1
|
-
export declare enum DataType {
|
|
2
|
-
Integer = "integer",
|
|
3
|
-
Int = "integer",
|
|
4
|
-
TinyInt = "integer",
|
|
5
|
-
SmallInt = "integer",
|
|
6
|
-
BigInt = "integer",
|
|
7
|
-
Text = "text",
|
|
8
|
-
Char = "text",
|
|
9
|
-
NChar = "text",
|
|
10
|
-
VarChar = "text",
|
|
11
|
-
NVarChar = "text",
|
|
12
|
-
CLOB = "text",
|
|
13
|
-
BLOB = "blob",
|
|
14
|
-
Real = "real",
|
|
15
|
-
Double = "real",
|
|
16
|
-
Decimal = "real",
|
|
17
|
-
Float = "real",
|
|
18
|
-
Boolean = "integer",
|
|
19
|
-
DateTime = "text",
|
|
20
|
-
Date = "text"
|
|
21
|
-
}
|
|
22
|
-
export declare enum DefaultType {
|
|
23
|
-
Integer = "0",
|
|
24
|
-
Int = "0",
|
|
25
|
-
TinyInt = "0",
|
|
26
|
-
SmallInt = "0",
|
|
27
|
-
BigInt = "0",
|
|
28
|
-
Text = "''",
|
|
29
|
-
Char = "''",
|
|
30
|
-
NChar = "''",
|
|
31
|
-
VarChar = "''",
|
|
32
|
-
NVarChar = "''",
|
|
33
|
-
CLOB = "''",
|
|
34
|
-
BLOB = "0",
|
|
35
|
-
Real = "0.0",
|
|
36
|
-
Double = "0.0",
|
|
37
|
-
Decimal = "0.0",
|
|
38
|
-
Float = "0.0",
|
|
39
|
-
Boolean = "0",
|
|
40
|
-
DateTime = "(datetime('now', 'localtime'))",
|
|
41
|
-
Date = "(date('now', 'localtime'))"
|
|
42
|
-
}
|
|
43
|
-
export interface SqlTransaction {
|
|
44
|
-
/**
|
|
45
|
-
* Executes SQL statement via current transaction.
|
|
46
|
-
* @param sql SQL statement to execute.
|
|
47
|
-
* @param params SQL stetement arguments.
|
|
48
|
-
* @param successCallback Called in case of query has been successfully done.
|
|
49
|
-
* @param errorCallback Called, when query fails. Return false to continue transaction; true or no return to rollback.
|
|
50
|
-
*/
|
|
51
|
-
executeSql(sql: string, params?: any[], successCallback?: (transaction: SqlTransaction, resultSet: SqlResultSet) => void, errorCallback?: (transaction: SqlTransaction, error: SqlError) => any): void;
|
|
52
|
-
}
|
|
53
|
-
export interface SqlResultSet {
|
|
54
|
-
insertId: number;
|
|
55
|
-
rowsAffected: number;
|
|
56
|
-
rows: SqlResultSetRowList;
|
|
57
|
-
}
|
|
58
|
-
export interface SqlResultSetRowList {
|
|
59
|
-
length: number;
|
|
60
|
-
item(index: number): Object;
|
|
61
|
-
}
|
|
62
|
-
export interface SqlError {
|
|
63
|
-
code: number;
|
|
64
|
-
message: string;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Interfaz con la configuración de websql
|
|
68
|
-
*/
|
|
69
|
-
export interface DbConfig {
|
|
70
|
-
/**
|
|
71
|
-
* nombre de la base de datos
|
|
72
|
-
*/
|
|
73
|
-
dbName: string;
|
|
74
|
-
/**
|
|
75
|
-
* default 'default'
|
|
76
|
-
*/
|
|
77
|
-
location?: string;
|
|
78
|
-
/**
|
|
79
|
-
* default 'Library'
|
|
80
|
-
*/
|
|
81
|
-
iosDatabaseLocation?: string;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
export interface
|
|
92
|
-
name: string;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
export interface
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
1
|
+
export declare enum DataType {
|
|
2
|
+
Integer = "integer",
|
|
3
|
+
Int = "integer",
|
|
4
|
+
TinyInt = "integer",
|
|
5
|
+
SmallInt = "integer",
|
|
6
|
+
BigInt = "integer",
|
|
7
|
+
Text = "text",
|
|
8
|
+
Char = "text",
|
|
9
|
+
NChar = "text",
|
|
10
|
+
VarChar = "text",
|
|
11
|
+
NVarChar = "text",
|
|
12
|
+
CLOB = "text",
|
|
13
|
+
BLOB = "blob",
|
|
14
|
+
Real = "real",
|
|
15
|
+
Double = "real",
|
|
16
|
+
Decimal = "real",
|
|
17
|
+
Float = "real",
|
|
18
|
+
Boolean = "integer",
|
|
19
|
+
DateTime = "text",
|
|
20
|
+
Date = "text"
|
|
21
|
+
}
|
|
22
|
+
export declare enum DefaultType {
|
|
23
|
+
Integer = "0",
|
|
24
|
+
Int = "0",
|
|
25
|
+
TinyInt = "0",
|
|
26
|
+
SmallInt = "0",
|
|
27
|
+
BigInt = "0",
|
|
28
|
+
Text = "''",
|
|
29
|
+
Char = "''",
|
|
30
|
+
NChar = "''",
|
|
31
|
+
VarChar = "''",
|
|
32
|
+
NVarChar = "''",
|
|
33
|
+
CLOB = "''",
|
|
34
|
+
BLOB = "0",
|
|
35
|
+
Real = "0.0",
|
|
36
|
+
Double = "0.0",
|
|
37
|
+
Decimal = "0.0",
|
|
38
|
+
Float = "0.0",
|
|
39
|
+
Boolean = "0",
|
|
40
|
+
DateTime = "(datetime('now', 'localtime'))",
|
|
41
|
+
Date = "(date('now', 'localtime'))"
|
|
42
|
+
}
|
|
43
|
+
export interface SqlTransaction {
|
|
44
|
+
/**
|
|
45
|
+
* Executes SQL statement via current transaction.
|
|
46
|
+
* @param sql SQL statement to execute.
|
|
47
|
+
* @param params SQL stetement arguments.
|
|
48
|
+
* @param successCallback Called in case of query has been successfully done.
|
|
49
|
+
* @param errorCallback Called, when query fails. Return false to continue transaction; true or no return to rollback.
|
|
50
|
+
*/
|
|
51
|
+
executeSql(sql: string, params?: any[], successCallback?: (transaction: SqlTransaction, resultSet: SqlResultSet) => void, errorCallback?: (transaction: SqlTransaction, error: SqlError) => any): void;
|
|
52
|
+
}
|
|
53
|
+
export interface SqlResultSet {
|
|
54
|
+
insertId: number;
|
|
55
|
+
rowsAffected: number;
|
|
56
|
+
rows: SqlResultSetRowList;
|
|
57
|
+
}
|
|
58
|
+
export interface SqlResultSetRowList {
|
|
59
|
+
length: number;
|
|
60
|
+
item(index: number): Object;
|
|
61
|
+
}
|
|
62
|
+
export interface SqlError {
|
|
63
|
+
code: number;
|
|
64
|
+
message: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Interfaz con la configuración de websql
|
|
68
|
+
*/
|
|
69
|
+
export interface DbConfig {
|
|
70
|
+
/**
|
|
71
|
+
* nombre de la base de datos
|
|
72
|
+
*/
|
|
73
|
+
dbName: string;
|
|
74
|
+
/**
|
|
75
|
+
* default 'default'
|
|
76
|
+
*/
|
|
77
|
+
location?: string;
|
|
78
|
+
/**
|
|
79
|
+
* default 'Library'
|
|
80
|
+
*/
|
|
81
|
+
iosDatabaseLocation?: string;
|
|
82
|
+
/**
|
|
83
|
+
* default 'default'
|
|
84
|
+
*/
|
|
85
|
+
androidDatabaseProvider?: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Intefaz para definir un constraint unique
|
|
89
|
+
*
|
|
90
|
+
*/
|
|
91
|
+
export interface DBUnique {
|
|
92
|
+
name: string; /** nombre */
|
|
93
|
+
fields: string | string[]; /** lista de campos */
|
|
94
|
+
}
|
|
95
|
+
export interface DBForeign {
|
|
96
|
+
name: string;
|
|
97
|
+
foreignKey: string | string[];
|
|
98
|
+
referenceTable: string;
|
|
99
|
+
primaryKey: string | string[];
|
|
100
|
+
}
|
|
101
|
+
export interface DBColumn {
|
|
102
|
+
name: string;
|
|
103
|
+
type: DataType;
|
|
104
|
+
length?: number;
|
|
105
|
+
isNullable?: boolean;
|
|
106
|
+
default?: DefaultType | string;
|
|
107
|
+
}
|
|
108
|
+
export interface DBTable {
|
|
109
|
+
name: string;
|
|
110
|
+
columns: DBColumn[];
|
|
111
|
+
primary: string | string[];
|
|
112
|
+
uniques?: DBUnique[];
|
|
113
|
+
foreigns?: DBForeign[];
|
|
114
|
+
sync?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface DBView {
|
|
117
|
+
name: string;
|
|
118
|
+
sql: string;
|
|
119
|
+
}
|
|
120
|
+
export interface DBSchema {
|
|
121
|
+
tables: DBTable[];
|
|
122
|
+
views?: DBView[];
|
|
123
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import { DbConfig, DBSchema } from './db-wrapper.models';
|
|
3
|
-
export declare class DbWrapperModule {
|
|
4
|
-
static forRoot(dbConfig: DbConfig, schema?: DBSchema): ModuleWithProviders;
|
|
5
|
-
}
|
|
1
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
+
import { DbConfig, DBSchema } from './db-wrapper.models';
|
|
3
|
+
export declare class DbWrapperModule {
|
|
4
|
+
static forRoot(dbConfig: DbConfig, schema?: DBSchema): ModuleWithProviders;
|
|
5
|
+
}
|
|
@@ -1,39 +1,40 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { DBTable, DbConfig, DBSchema, DBView, SqlResultSet } from './db-wrapper.models';
|
|
3
|
-
export declare class DbWrapperService {
|
|
4
|
-
private _dbName;
|
|
5
|
-
private _location;
|
|
6
|
-
private _iosDatabaseLocation;
|
|
7
|
-
private
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
private
|
|
31
|
-
private
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
private
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export declare const
|
|
38
|
-
export declare
|
|
39
|
-
export declare function
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { DBTable, DbConfig, DBSchema, DBView, SqlResultSet } from './db-wrapper.models';
|
|
3
|
+
export declare class DbWrapperService {
|
|
4
|
+
private _dbName;
|
|
5
|
+
private _location;
|
|
6
|
+
private _iosDatabaseLocation;
|
|
7
|
+
private _androidDatabaseProvider;
|
|
8
|
+
private _readyPromise;
|
|
9
|
+
schema: DBSchema;
|
|
10
|
+
db: any;
|
|
11
|
+
constructor(dbConfig: DbConfig, dbSchema?: DBSchema);
|
|
12
|
+
ready(): Promise<void>;
|
|
13
|
+
initDevice(dbSchema: DBSchema): Promise<void>;
|
|
14
|
+
init(dbSchema: DBSchema): Promise<void>;
|
|
15
|
+
generate(schema: DBSchema): Promise<any>;
|
|
16
|
+
createTable(table: DBTable): Promise<any>;
|
|
17
|
+
createView(view: DBView): Promise<any>;
|
|
18
|
+
getSchemaTable(tableName: string): DBTable;
|
|
19
|
+
getUniquesTable(table: DBTable): object;
|
|
20
|
+
query(query: string, bindings?: any[]): Promise<SqlResultSet>;
|
|
21
|
+
Count(query: string, bindings?: any[]): Promise<number>;
|
|
22
|
+
insert(table: string, bindings: {}): Promise<SqlResultSet>;
|
|
23
|
+
update(table: string, bindings: {}, where: {}): Promise<SqlResultSet>;
|
|
24
|
+
dropTable(tables: string[]): Promise<void>;
|
|
25
|
+
fetchAll(result: SqlResultSet): object[];
|
|
26
|
+
fetch(result: SqlResultSet): object;
|
|
27
|
+
rowsCount(result: SqlResultSet): number;
|
|
28
|
+
tableExists(table: string): Promise<boolean>;
|
|
29
|
+
columnExists(table: string, column: string): Promise<boolean>;
|
|
30
|
+
private defColumn;
|
|
31
|
+
private defUnique;
|
|
32
|
+
private defForeign;
|
|
33
|
+
private _tableExists;
|
|
34
|
+
private _columnExists;
|
|
35
|
+
private addColumn;
|
|
36
|
+
}
|
|
37
|
+
export declare const DB_CONFIG: InjectionToken<DbConfig>;
|
|
38
|
+
export declare const DB_SCHEMA: InjectionToken<DBSchema>;
|
|
39
|
+
export declare function getDefaultDbConfig(): DbConfig;
|
|
40
|
+
export declare function provideDbWrapper(dbConfig: DbConfig, dbSchema?: DBSchema): DbWrapperService;
|
package/lib/window.service.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare class WindowService {
|
|
2
|
-
get nativeWindow(): any;
|
|
3
|
-
}
|
|
1
|
+
export declare class WindowService {
|
|
2
|
+
get nativeWindow(): any;
|
|
3
|
+
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './lib/db-wrapper.service';
|
|
2
|
-
export * from './lib/db-wrapper.module';
|
|
3
|
-
export * from './lib/db-wrapper.models';
|
|
1
|
+
export * from './lib/db-wrapper.service';
|
|
2
|
+
export * from './lib/db-wrapper.module';
|
|
3
|
+
export * from './lib/db-wrapper.models';
|