{"version":3,"file":"angular-web-sqlite.mjs","sources":["../../../projects/angular-web-sqlite/src/lib/angular-web-sqlite.service.ts","../../../projects/angular-web-sqlite/src/lib/angular-web-sqlite.component.ts","../../../projects/angular-web-sqlite/src/lib/angular-web-sqlite.module.ts","../../../projects/angular-web-sqlite/src/public-api.ts","../../../projects/angular-web-sqlite/src/angular-web-sqlite.ts"],"sourcesContent":["/* eslint-disable one-var */\r\n/* eslint-disable no-bitwise */\r\n/* eslint-disable object-shorthand */\r\nimport '@angular/compiler';\r\nimport { Injectable } from '@angular/core';\r\n\r\nexport interface Message {\r\n  type: 'init' | 'executeSql' | 'batchSql' | 'batchReturnSql';\r\n  id: string;\r\n  flags?: string;\r\n  filename?: string;\r\n  error?: any;\r\n  sql?: string;\r\n  param?: any;\r\n  sqls?: any;\r\n  rows?: any;\r\n  rowsAffected?: number;\r\n}\r\n\r\n@Injectable()\r\nexport class WebSqlite {\r\n\r\n  private sqliteClientWorkerPath = 'sqlite-client/sqlite-worker.js';\r\n  private worker!: Worker;\r\n  private queuedPromises: any = {};\r\n  private isInitialized!: boolean;\r\n  private filename!: string;\r\n\r\n  constructor(\r\n  ) { }\r\n\r\n  init(dbName: string, flags?: string) {\r\n    this.worker = new Worker(this.sqliteClientWorkerPath, { type: 'module' });\r\n    this.worker.onmessage = this.messageReceived.bind(this);\r\n    this.filename = `/${dbName}.sqlite3`;\r\n    const initDb: Message = { type: 'init', filename: this.filename, flags: flags || 'ct', id: this.generateGuid() };\r\n    this.worker.postMessage(initDb);\r\n    return new Promise<any>((resolve, reject) => {\r\n      this.queuedPromises[initDb.id] = {\r\n        resolve,\r\n        reject,\r\n      };\r\n    });\r\n  }\r\n\r\n  public async executeSql(sql: string, params: any) {\r\n    await this.waitForInitialization();\r\n    const executeSql: Message =\r\n      { type: 'executeSql', sql: sql, filename: this.filename, param: params, id: this.generateGuid() };\r\n    this.worker.postMessage(executeSql);\r\n    return new Promise<any>((resolve, reject) => {\r\n      this.queuedPromises[executeSql.id] = {\r\n        resolve,\r\n        reject\r\n      };\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Funcion para transacciones sin return\r\n   */\r\n  public async batchSql(sqls: any) {\r\n    await this.waitForInitialization();\r\n    const batchSql: Message =\r\n      { type: 'batchSql', sqls: sqls, filename: this.filename, id: this.generateGuid() };\r\n    this.worker.postMessage(batchSql);\r\n    return new Promise<any>((resolve, reject) => {\r\n      this.queuedPromises[batchSql.id] = {\r\n        resolve,\r\n        reject\r\n      };\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Funcion que devuelve la solucion a multiples transacciones\r\n   */\r\n  public async batchReturnSql(sqls: any[]) {\r\n    // TODO\r\n  }\r\n\r\n\r\n  private messageReceived(message: MessageEvent) {\r\n    const sqliteMessage: Message = message.data;\r\n    if (sqliteMessage.id && this.queuedPromises.hasOwnProperty(sqliteMessage.id)) {\r\n      const promise = this.queuedPromises[sqliteMessage.id];\r\n      delete this.queuedPromises[sqliteMessage.id];\r\n      switch (sqliteMessage.type) {\r\n        case 'init':\r\n          if (sqliteMessage.error) {\r\n            return promise.reject(sqliteMessage.error);\r\n          }\r\n          this.isInitialized = true;\r\n          return promise.resolve(sqliteMessage.filename);\r\n        case 'executeSql':\r\n          if (sqliteMessage.error) {\r\n            return promise.reject(sqliteMessage.error);\r\n          }\r\n          return promise.resolve({ rows: sqliteMessage.rows });\r\n        case 'batchSql':\r\n          if (sqliteMessage.error) {\r\n            return promise.reject(sqliteMessage.error);\r\n          }\r\n          return promise.resolve({ rowsAffected: sqliteMessage.rowsAffected });\r\n        case 'batchReturnSql':\r\n          if (sqliteMessage.error) {\r\n            return promise.reject(sqliteMessage.error);\r\n          }\r\n          return promise.resolve({ rows: sqliteMessage.rows });\r\n      }\r\n    }\r\n  }\r\n\r\n  private async waitForInitialization() {\r\n    while (!this.isInitialized) {\r\n      console.log('esperando inicialización...');\r\n      await new Promise(resolve => setTimeout(resolve, 100)); // Wait for 100 milliseconds before checking again\r\n    }\r\n  }\r\n\r\n  private generateGuid() {\r\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n      const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n      return v.toString(16);\r\n    });\r\n  }\r\n}\r\n","import '@angular/compiler';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-angular-web-sqlite',\r\n  template: ``,\r\n  styles: [\r\n  ]\r\n})\r\nexport class AngularWebSqliteComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","import '@angular/compiler';\r\nimport { NgModule } from '@angular/core';\r\nimport { AngularWebSqliteComponent } from './angular-web-sqlite.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [AngularWebSqliteComponent],\r\n  imports: [],\r\n  exports: [AngularWebSqliteComponent]\r\n})\r\nexport class AngularWebSqliteModule { }\r\n","/*\r\n * Public API Surface of angular-web-sqlite\r\n */\r\n\r\nexport * from './lib/angular-web-sqlite.service';\r\nexport * from './lib/angular-web-sqlite.component';\r\nexport * from './lib/angular-web-sqlite.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}