{"version":3,"file":"insert.cjs","names":["SQLiteInsertBase","entityKind","extractUsedTable","QueryPromise"],"sources":["../../../src/sqlite-core/async/insert.ts"],"sourcesContent":["import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteInsertBuilder, SQLiteInsertHKTBase } from '~/sqlite-core/query-builders/insert.ts';\nimport { SQLiteInsertBase } from '~/sqlite-core/query-builders/insert.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { applyMixins, type Assume } from '~/utils.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport type { SQLiteAsyncPreparedQuery, SQLiteAsyncPreparedQueryConfig, SQLiteAsyncSession } from './session.ts';\n\nexport interface SQLiteAsyncInsertHKT extends SQLiteInsertHKTBase {\n\t_type: SQLiteAsyncInsertBase<\n\t\tAssume<this['table'], SQLiteTable>,\n\t\tAssume<this['resultType'], 'sync' | 'async'>,\n\t\tthis['runResult'],\n\t\tthis['returning'],\n\t\tthis['dynamic'],\n\t\tthis['excludedMethods']\n\t>;\n}\n\nexport type AnySQLiteAsyncInsert = SQLiteAsyncInsertBase<any, any, any, any, any, any>;\n\nexport type SQLiteAsyncInsert<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = any,\n> = SQLiteAsyncInsertBase<TTable, TResultType, TRunResult, TReturning, true, never>;\n\nexport type SQLiteAsyncInsertBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTColumnList extends string[] | 'all' = 'all',\n> = SQLiteInsertBuilder<TTable, TRunResult, TColumnList, SQLiteAsyncInsertHKT & { resultType: TResultType }>;\n\nexport type SQLiteAsyncInsertExecute<T extends AnySQLiteAsyncInsert> = T['_']['returning'] extends undefined\n\t? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteAsyncInsertPrepare<T extends AnySQLiteAsyncInsert> = SQLiteAsyncPreparedQuery<\n\tSQLiteAsyncPreparedQueryConfig & {\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteAsyncInsertExecute<T>;\n\t}\n>;\n\nexport interface SQLiteAsyncInsertBase<\n\t// oxlint-disable-next-line no-unused-vars\n\tTTable extends SQLiteTable,\n\t// oxlint-disable-next-line no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\t// oxlint-disable-next-line no-unused-vars\n\tTDynamic extends boolean = false,\n\t// oxlint-disable-next-line no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends\n\tSQLiteInsertBase<\n\t\tSQLiteAsyncInsertHKT & { resultType: TResultType },\n\t\tTTable,\n\t\tTRunResult,\n\t\tTReturning,\n\t\tTDynamic,\n\t\tTExcludedMethods\n\t>,\n\tQueryPromise<TReturning extends undefined ? TRunResult : TReturning[]>\n{\n\treadonly _:\n\t\t& SQLiteInsertBase<\n\t\t\tSQLiteAsyncInsertHKT & { resultType: TResultType },\n\t\t\tTTable,\n\t\t\tTRunResult,\n\t\t\tTReturning,\n\t\t\tTDynamic,\n\t\t\tTExcludedMethods\n\t\t>['_']\n\t\t& { readonly resultType: TResultType };\n}\n\nexport class SQLiteAsyncInsertBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends SQLiteInsertBase<\n\tSQLiteAsyncInsertHKT & { resultType: TResultType },\n\tTTable,\n\tTRunResult,\n\tTReturning,\n\tTDynamic,\n\tTExcludedMethods\n> implements RunnableQuery<TReturning extends undefined ? TRunResult : TReturning[], 'sqlite'>, SQLWrapper {\n\tstatic override readonly [entityKind]: string = 'SQLiteAsyncInsert';\n\n\tdeclare protected session: SQLiteAsyncSession<TResultType, TRunResult, any>;\n\n\t/** @internal */\n\t_prepare(prepare = false): SQLiteAsyncInsertPrepare<this> {\n\t\treturn this.session.prepareQuery(\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\t'arrays',\n\t\t\tprepare,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t\tthis.config.returning ? this.dialect.mapperGenerators.rows(this.config.returning, undefined) : undefined,\n\t\t\t{\n\t\t\t\ttype: 'insert',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteAsyncInsertPrepare<this>;\n\t}\n\n\tprepare(): SQLiteAsyncInsertPrepare<this> {\n\t\treturn this._prepare(true);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\tasync execute(): Promise<SQLiteAsyncInsertExecute<this>> {\n\t\treturn this._prepare().execute() as SQLiteAsyncInsertExecute<this>;\n\t}\n}\n\napplyMixins(SQLiteAsyncInsertBase, [QueryPromise]);\n"],"mappings":";;;;;;;;;AA2FA,IAAa,wBAAb,cAUUA,wDAOiG;CAC1G,QAA0BC,0BAAsB;;CAKhD,SAAS,UAAU,OAAuC;AACzD,SAAO,KAAK,QAAQ,aACnB,KAAK,QAAQ,WAAW,KAAK,QAAQ,CAAC,EACtC,UACA,SACA,KAAK,OAAO,YAAY,QAAQ,OAChC,KAAK,OAAO,YAAY,KAAK,QAAQ,iBAAiB,KAAK,KAAK,OAAO,WAAW,OAAU,GAAG,QAC/F;GACC,MAAM;GACN,QAAQC,2CAAiB,KAAK,OAAO,MAAM;GAC3C,CACD;;CAGF,UAA0C;AACzC,SAAO,KAAK,SAAS,KAAK;;CAG3B,OAA2C,sBAAsB;AAChE,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAG9C,OAA2C,sBAAsB;AAChE,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAG9C,OAA2C,sBAAsB;AAChE,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAG9C,UAAiD,sBAAsB;AACtE,SAAO,KAAK,UAAU,CAAC,OAAO,kBAAkB;;CAGjD,MAAM,UAAmD;AACxD,SAAO,KAAK,UAAU,CAAC,SAAS;;;4BAItB,uBAAuB,CAACC,gCAAa,CAAC"}