{"version":3,"file":"delete.cjs","names":["SQLiteDeleteBase","entityKind","extractUsedTable","QueryPromise"],"sources":["../../../src/sqlite-core/async/delete.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 { SQLiteDeleteHKTBase } from '~/sqlite-core/query-builders/delete.ts';\nimport { SQLiteDeleteBase } from '~/sqlite-core/query-builders/delete.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { applyMixins, type Assume, type DrizzleTypeError } from '~/utils.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport type { SQLiteAsyncPreparedQuery, SQLiteAsyncPreparedQueryConfig, SQLiteAsyncSession } from './session.ts';\n\nexport interface SQLiteAsyncDeleteHKT extends SQLiteDeleteHKTBase {\n\t_type: SQLiteAsyncDeleteBase<\n\t\tAssume<this['table'], SQLiteTable>,\n\t\tAssume<this['resultType'], 'sync' | 'async'>,\n\t\tthis['runResult'],\n\t\tAssume<this['returning'], Record<string, unknown> | undefined>,\n\t\tthis['dynamic'],\n\t\tthis['excludedMethods']\n\t>;\n}\n\nexport type AnySQLiteAsyncDelete = SQLiteAsyncDeleteBase<any, any, any, any, any, any>;\n\nexport type SQLiteAsyncDelete<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n> = SQLiteAsyncDeleteBase<TTable, TResultType, TRunResult, TReturning, true, never>;\n\nexport type SQLiteAsyncDeleteExecute<T extends AnySQLiteAsyncDelete> = T['_']['returning'] extends undefined\n\t? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteAsyncDeletePrepare<T extends AnySQLiteAsyncDelete> = 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'] | undefined;\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteAsyncDeleteExecute<T>;\n\t}\n>;\n\nexport interface SQLiteAsyncDeleteBase<\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 extends Record<string, unknown> | undefined = 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\tSQLiteDeleteBase<\n\t\tSQLiteAsyncDeleteHKT & { 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& SQLiteDeleteBase<\n\t\t\tSQLiteAsyncDeleteHKT & { 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 SQLiteAsyncDeleteBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends SQLiteDeleteBase<\n\tSQLiteAsyncDeleteHKT & { 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 = 'SQLiteAsyncDelete';\n\n\tdeclare protected session: SQLiteAsyncSession<TResultType, TRunResult, any>;\n\n\t/** @internal */\n\t_prepare(prepare = false): SQLiteAsyncDeletePrepare<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: 'delete',\n\t\t\t\ttables: extractUsedTable(this.config.table),\n\t\t\t},\n\t\t) as SQLiteAsyncDeletePrepare<this>;\n\t}\n\n\tprepare(): SQLiteAsyncDeletePrepare<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(placeholderValues?: Record<string, unknown>): Promise<SQLiteAsyncDeleteExecute<this>> {\n\t\treturn this._prepare().execute(placeholderValues) as SQLiteAsyncDeleteExecute<this>;\n\t}\n}\n\napplyMixins(SQLiteAsyncDeleteBase, [QueryPromise]);\n"],"mappings":";;;;;;;;;AAmFA,IAAa,wBAAb,cASUA,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,QAAQ,mBAAsF;AACnG,SAAO,KAAK,UAAU,CAAC,QAAQ,kBAAkB;;;4BAIvC,uBAAuB,CAACC,gCAAa,CAAC"}