db-wrapper 0.0.7 → 0.0.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"db-wrapper.js.map","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"],"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/* 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 fail';\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"],"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';\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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"}
@@ -24,11 +24,13 @@ export declare class DbWrapperService {
24
24
  fetchAll(result: SqlResultSet): object[];
25
25
  fetch(result: SqlResultSet): object;
26
26
  rowsCount(result: SqlResultSet): number;
27
+ tableExists(table: string): Promise<boolean>;
28
+ columnExists(table: string, column: string): Promise<boolean>;
27
29
  private defColumn;
28
30
  private defUnique;
29
31
  private defForeign;
30
- private tableExists;
31
- private columnExists;
32
+ private _tableExists;
33
+ private _columnExists;
32
34
  private addColumn;
33
35
  }
34
36
  export declare const DB_CONFIG: InjectionToken<DbConfig>;
@@ -1,3 +1,3 @@
1
1
  export declare class WindowService {
2
- readonly nativeWindow: any;
2
+ get nativeWindow(): any;
3
3
  }
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "db-wrapper",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "peerDependencies": {
5
- "@angular/common": "^7.2.0",
6
- "@angular/core": "^7.2.0"
5
+ "@angular/common": "^9.1.13",
6
+ "@angular/core": "^9.1.13"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^1.10.0"
7
10
  },
8
11
  "main": "bundles/db-wrapper.umd.js",
9
12
  "module": "fesm5/db-wrapper.js",
@@ -14,8 +17,5 @@
14
17
  "fesm2015": "fesm2015/db-wrapper.js",
15
18
  "typings": "db-wrapper.d.ts",
16
19
  "metadata": "db-wrapper.metadata.json",
17
- "sideEffects": false,
18
- "dependencies": {
19
- "tslib": "^1.9.0"
20
- }
20
+ "sideEffects": false
21
21
  }