{"version":3,"file":"sql.js.mjs","names":[],"sources":["../../src/dialects/sql.js/connection.ts","../../src/dialects/sql.js/driver.ts","../../src/dialects/sql.js/dialect.ts"],"sourcesContent":["import type { DatabaseConnection, QueryResult } from 'kysely';\nimport type { BindParams, Database } from 'sql.js';\n\nimport { CompiledQuery } from 'kysely';\n\nexport class SqlJsConnection implements DatabaseConnection {\n    private database: Database;\n\n    constructor(database: Database) {\n        this.database = database;\n    }\n\n    async executeQuery<R>(compiledQuery: CompiledQuery<unknown>): Promise<QueryResult<R>> {\n        const executeResult = this.database.exec(compiledQuery.sql, compiledQuery.parameters as BindParams);\n        const rowsModified = this.database.getRowsModified();\n        return {\n            numAffectedRows: BigInt(rowsModified),\n            rows: executeResult\n                .map(({ columns, values }) =>\n                    values.map((row) => columns.reduce((acc, column, i) => ({ ...acc, [column]: row[i] }), {}) as R),\n                )\n                .flat(),\n        };\n    }\n\n    // eslint-disable-next-line require-yield\n    async *streamQuery() {\n        throw new Error('Not supported with SQLite');\n    }\n}\n","import type { DatabaseConnection, Driver } from 'kysely';\n\nimport { CompiledQuery } from 'kysely';\n\nimport { SqlJsConnection } from './connection';\nimport type { SqlJsDialectConfig } from './types';\n\nexport class SqlJsDriver implements Driver {\n    private config: SqlJsDialectConfig;\n\n    constructor(config: SqlJsDialectConfig) {\n        this.config = config;\n    }\n\n    async acquireConnection(): Promise<DatabaseConnection> {\n        return new SqlJsConnection(this.config.sqlJs);\n    }\n\n    async beginTransaction(connection: DatabaseConnection): Promise<void> {\n        await connection.executeQuery(CompiledQuery.raw('BEGIN'));\n    }\n\n    async commitTransaction(connection: DatabaseConnection): Promise<void> {\n        await connection.executeQuery(CompiledQuery.raw('COMMIT'));\n    }\n\n    async rollbackTransaction(connection: DatabaseConnection): Promise<void> {\n        await connection.executeQuery(CompiledQuery.raw('ROLLBACK'));\n    }\n\n    async destroy(): Promise<void> {\n        this.config.sqlJs.close();\n    }\n\n    async init() {}\n\n    async releaseConnection(_connection: DatabaseConnection): Promise<void> {}\n}\n","import type { Dialect } from 'kysely';\n\nimport type { SqlJsDialectConfig } from './types';\n\nimport { Kysely, SqliteAdapter, SqliteIntrospector, SqliteQueryCompiler } from 'kysely';\n\nimport { SqlJsDriver } from './driver';\n\n/**\n * The SqlJsDialect is for testing purposes only and should not be used in production.\n */\nexport class SqlJsDialect implements Dialect {\n    private config: SqlJsDialectConfig;\n\n    constructor(config: SqlJsDialectConfig) {\n        this.config = config;\n    }\n\n    createAdapter = () => new SqliteAdapter();\n\n    createDriver = () => new SqlJsDriver(this.config);\n\n    createIntrospector = (db: Kysely<any>) => new SqliteIntrospector(db);\n\n    createQueryCompiler = () => new SqliteQueryCompiler();\n}\n"],"mappings":";;AAKA,IAAa,kBAAb,MAA2D;CACvD;CAEA,YAAY,UAAoB;AAC5B,OAAK,WAAW;;CAGpB,MAAM,aAAgB,eAAgE;EAClF,MAAM,gBAAgB,KAAK,SAAS,KAAK,cAAc,KAAK,cAAc,WAAyB;EACnG,MAAM,eAAe,KAAK,SAAS,iBAAiB;AACpD,SAAO;GACH,iBAAiB,OAAO,aAAa;GACrC,MAAM,cACD,KAAK,EAAE,SAAS,aACb,OAAO,KAAK,QAAQ,QAAQ,QAAQ,KAAK,QAAQ,OAAO;IAAE,GAAG;KAAM,SAAS,IAAI;IAAI,GAAG,EAAE,CAAC,CAAM,CACnG,CACA,MAAM;GACd;;CAIL,OAAO,cAAc;AACjB,QAAM,IAAI,MAAM,4BAA4B;;;;;ACpBpD,IAAa,cAAb,MAA2C;CACvC;CAEA,YAAY,QAA4B;AACpC,OAAK,SAAS;;CAGlB,MAAM,oBAAiD;AACnD,SAAO,IAAI,gBAAgB,KAAK,OAAO,MAAM;;CAGjD,MAAM,iBAAiB,YAA+C;AAClE,QAAM,WAAW,aAAa,cAAc,IAAI,QAAQ,CAAC;;CAG7D,MAAM,kBAAkB,YAA+C;AACnE,QAAM,WAAW,aAAa,cAAc,IAAI,SAAS,CAAC;;CAG9D,MAAM,oBAAoB,YAA+C;AACrE,QAAM,WAAW,aAAa,cAAc,IAAI,WAAW,CAAC;;CAGhE,MAAM,UAAyB;AAC3B,OAAK,OAAO,MAAM,OAAO;;CAG7B,MAAM,OAAO;CAEb,MAAM,kBAAkB,aAAgD;;;;;;;ACzB5E,IAAa,eAAb,MAA6C;CACzC;CAEA,YAAY,QAA4B;AACpC,OAAK,SAAS;;CAGlB,sBAAsB,IAAI,eAAe;CAEzC,qBAAqB,IAAI,YAAY,KAAK,OAAO;CAEjD,sBAAsB,OAAoB,IAAI,mBAAmB,GAAG;CAEpE,4BAA4B,IAAI,qBAAqB"}