{"version":3,"file":"sqlite-connection.mjs","sources":["../../../src/sqlite-connection.ts"],"sourcesContent":["import sqlite3 from 'sqlite3';\nimport {RdbmsConnection} from '@shopify/shopify-app-session-storage';\n\nexport class SqliteConnection implements RdbmsConnection {\n  sessionStorageIdentifier: string;\n  private ready: Promise<void>;\n  private db: sqlite3.Database;\n\n  constructor(\n    database: string | sqlite3.Database,\n    sessionStorageIdentifier: string,\n  ) {\n    this.sessionStorageIdentifier = sessionStorageIdentifier;\n    this.ready = this.init(database);\n  }\n\n  async query(query: string, params: any[] = []): Promise<any[]> {\n    await this.ready;\n\n    return new Promise((resolve, reject) => {\n      this.db.all(query, params, (err, result) => {\n        if (err) {\n          reject(err);\n          return;\n        }\n        resolve(result);\n      });\n    });\n  }\n\n  async executeRawQuery(query: string): Promise<void> {\n    await this.ready;\n\n    return new Promise((resolve, reject) => {\n      this.db.exec(query, (err: Error) => {\n        if (err) {\n          reject(err);\n          return;\n        }\n        resolve();\n      });\n    });\n  }\n\n  async hasTable(tablename: string): Promise<boolean> {\n    await this.ready;\n\n    const query = `\n    SELECT name FROM sqlite_schema\n    WHERE\n      type = 'table' AND\n      name = ${this.getArgumentPlaceholder()};\n    `;\n    const rows = await this.query(query, [tablename]);\n    return rows.length === 1;\n  }\n\n  getArgumentPlaceholder(_?: number): string {\n    return `?`;\n  }\n\n  async connect(): Promise<void> {\n    await this.ready;\n\n    // Nothing to do here\n    return Promise.resolve();\n  }\n\n  async disconnect(): Promise<void> {\n    await this.ready;\n\n    // Nothing to do here\n    return Promise.resolve();\n  }\n\n  private async init(database: string | sqlite3.Database): Promise<void> {\n    this.db =\n      typeof database === 'string' ? new sqlite3.Database(database) : database;\n  }\n}\n"],"names":[],"mappings":";;MAGa,gBAAgB,CAAA;AAC3B,IAAA,wBAAwB;AAChB,IAAA,KAAK;AACL,IAAA,EAAE;IAEV,WAAA,CACE,QAAmC,EACnC,wBAAgC,EAAA;AAEhC,QAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAClC;AAEA,IAAA,MAAM,KAAK,CAAC,KAAa,EAAE,SAAgB,EAAE,EAAA;QAC3C,MAAM,IAAI,CAAC,KAAK;QAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAI;gBACzC,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC;oBACX;gBACF;gBACA,OAAO,CAAC,MAAM,CAAC;AACjB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,eAAe,CAAC,KAAa,EAAA;QACjC,MAAM,IAAI,CAAC,KAAK;QAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAU,KAAI;gBACjC,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC;oBACX;gBACF;AACA,gBAAA,OAAO,EAAE;AACX,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,QAAQ,CAAC,SAAiB,EAAA;QAC9B,MAAM,IAAI,CAAC,KAAK;AAEhB,QAAA,MAAM,KAAK,GAAG;;;;eAIH,IAAI,CAAC,sBAAsB,EAAE,CAAA;KACvC;AACD,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;AACjD,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;IAC1B;AAEA,IAAA,sBAAsB,CAAC,CAAU,EAAA;AAC/B,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,MAAM,OAAO,GAAA;QACX,MAAM,IAAI,CAAC,KAAK;;AAGhB,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;IAC1B;AAEA,IAAA,MAAM,UAAU,GAAA;QACd,MAAM,IAAI,CAAC,KAAK;;AAGhB,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;IAC1B;IAEQ,MAAM,IAAI,CAAC,QAAmC,EAAA;AACpD,QAAA,IAAI,CAAC,EAAE;AACL,YAAA,OAAO,QAAQ,KAAK,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ;IAC5E;AACD;;;;"}