{"version":3,"file":"delete.cjs","names":["SQLiteDeleteBase","entityKind","extractUsedTable"],"sources":["../../../src/sqlite-core/effect/delete.ts"],"sourcesContent":["import { applyEffectWrapper, type QueryEffectHKTBase, type QueryEffectKind } from '~/effect-core/query-effect.ts';\nimport { entityKind } from '~/entity.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 { PreparedQueryConfig } from '~/sqlite-core/session.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Assume, DrizzleTypeError } from '~/utils.ts';\nimport { extractUsedTable } from '../utils.ts';\nimport type { SQLiteEffectPreparedQuery, SQLiteEffectSession } from './session.ts';\n\nexport interface SQLiteEffectDeleteHKT<TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase>\n\textends SQLiteDeleteHKTBase\n{\n\t_type: SQLiteEffectDeleteBase<\n\t\tAssume<this['table'], SQLiteTable>,\n\t\tthis['runResult'],\n\t\tAssume<this['returning'], Record<string, unknown> | undefined>,\n\t\tthis['dynamic'],\n\t\tthis['excludedMethods'],\n\t\tTEffectHKT\n\t>;\n}\n\nexport type AnySQLiteEffectDelete = SQLiteEffectDeleteBase<any, any, any, any, any, any>;\n\nexport type SQLiteEffectDelete<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTRunResult = unknown,\n\tTReturning extends Record<string, unknown> | undefined = undefined,\n\tTEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase,\n> = SQLiteEffectDeleteBase<TTable, TRunResult, TReturning, true, never, TEffectHKT>;\n\nexport type SQLiteEffectDeleteExecute<T extends AnySQLiteEffectDelete> = T['_']['returning'] extends undefined\n\t? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteEffectDeletePrepare<\n\tT extends AnySQLiteEffectDelete,\n\tTEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase,\n> = SQLiteEffectPreparedQuery<\n\tPreparedQueryConfig & {\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: SQLiteEffectDeleteExecute<T>;\n\t},\n\tTEffectHKT\n>;\n\nexport interface SQLiteEffectDeleteBase<\n\t// oxlint-disable-next-line no-unused-vars\n\tTTable extends SQLiteTable,\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\tTEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase,\n> extends QueryEffectKind<TEffectHKT, TReturning extends undefined ? TRunResult : TReturning[]> {}\n\nexport class SQLiteEffectDeleteBase<\n\tTTable extends SQLiteTable,\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\tTEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase,\n> extends SQLiteDeleteBase<\n\tSQLiteEffectDeleteHKT<TEffectHKT>,\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 = 'SQLiteEffectDelete';\n\n\tdeclare protected session: SQLiteEffectSession<TRunResult, TEffectHKT, any>;\n\n\t/** @internal */\n\t_prepare(prepare = false): SQLiteEffectDeletePrepare<this, TEffectHKT> {\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 SQLiteEffectDeletePrepare<this, TEffectHKT>;\n\t}\n\n\tprepare(): SQLiteEffectDeletePrepare<this, TEffectHKT> {\n\t\treturn this._prepare(true);\n\t}\n\n\trun: ReturnType<this['prepare']>['run'] = (placeholderValues?: Record<string, unknown>) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType<this['prepare']>['all'] = (placeholderValues?: Record<string, unknown>) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType<this['prepare']>['get'] = (placeholderValues?: Record<string, unknown>) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType<this['prepare']>['values'] = (placeholderValues?: Record<string, unknown>) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\texecute: ReturnType<this['prepare']>['execute'] = (placeholderValues?: Record<string, unknown>) => {\n\t\treturn this._prepare().execute(placeholderValues);\n\t};\n}\n\napplyEffectWrapper(SQLiteEffectDeleteBase);\n"],"mappings":";;;;;;;;AAmEA,IAAa,yBAAb,cAQUA,wDAOiG;CAC1G,QAA0BC,0BAAsB;;CAKhD,SAAS,UAAU,OAAoD;AACtE,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,UAAuD;AACtD,SAAO,KAAK,SAAS,KAAK;;CAG3B,OAA2C,sBAAgD;AAC1F,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAG9C,OAA2C,sBAAgD;AAC1F,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAG9C,OAA2C,sBAAgD;AAC1F,SAAO,KAAK,UAAU,CAAC,IAAI,kBAAkB;;CAG9C,UAAiD,sBAAgD;AAChG,SAAO,KAAK,UAAU,CAAC,OAAO,kBAAkB;;CAGjD,WAAmD,sBAAgD;AAClG,SAAO,KAAK,UAAU,CAAC,QAAQ,kBAAkB;;;sDAIhC,uBAAuB"}