Some checks failed
Main Confidence / confidence (push) Failing after 45s
## Summary - introduce surface-aware compressed governance outcomes and reuse the shared truth/explanation seams for operator-first summaries - apply the compressed outcome hierarchy across baseline, evidence, review, review-pack, canonical review/evidence, and artifact-oriented operation-run surfaces - expand spec 214 fixtures and Pest coverage, and fix tenant-panel route assertions by generating explicit tenant-panel URLs in the affected Filament tests ## Validation - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - focused governance compression suite from `specs/214-governance-outcome-compression/quickstart.md` passed (`68` tests, `445` assertions) - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/InventoryItemResourceTest.php tests/Feature/Filament/BackupSetUiEnforcementTest.php tests/Feature/Filament/RestoreRunUiEnforcementTest.php` passed (`18` tests, `81` assertions) Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #253
123 lines
3.5 KiB
Plaintext
123 lines
3.5 KiB
Plaintext
import { entityKind } from "../../entity.js";
|
|
import { QueryPromise } from "../../query-promise.js";
|
|
import { SelectionProxyHandler } from "../../selection-proxy.js";
|
|
import { SQLiteTable } from "../table.js";
|
|
import { Table } from "../../table.js";
|
|
import { orderSelectedFields } from "../../utils.js";
|
|
import { extractUsedTable } from "../utils.js";
|
|
class SQLiteDeleteBase extends QueryPromise {
|
|
constructor(table, session, dialect, withList) {
|
|
super();
|
|
this.table = table;
|
|
this.session = session;
|
|
this.dialect = dialect;
|
|
this.config = { table, withList };
|
|
}
|
|
static [entityKind] = "SQLiteDelete";
|
|
/** @internal */
|
|
config;
|
|
/**
|
|
* Adds a `where` clause to the query.
|
|
*
|
|
* Calling this method will delete only those rows that fulfill a specified condition.
|
|
*
|
|
* See docs: {@link https://orm.drizzle.team/docs/delete}
|
|
*
|
|
* @param where the `where` clause.
|
|
*
|
|
* @example
|
|
* You can use conditional operators and `sql function` to filter the rows to be deleted.
|
|
*
|
|
* ```ts
|
|
* // Delete all cars with green color
|
|
* db.delete(cars).where(eq(cars.color, 'green'));
|
|
* // or
|
|
* db.delete(cars).where(sql`${cars.color} = 'green'`)
|
|
* ```
|
|
*
|
|
* You can logically combine conditional operators with `and()` and `or()` operators:
|
|
*
|
|
* ```ts
|
|
* // Delete all BMW cars with a green color
|
|
* db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));
|
|
*
|
|
* // Delete all cars with the green or blue color
|
|
* db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));
|
|
* ```
|
|
*/
|
|
where(where) {
|
|
this.config.where = where;
|
|
return this;
|
|
}
|
|
orderBy(...columns) {
|
|
if (typeof columns[0] === "function") {
|
|
const orderBy = columns[0](
|
|
new Proxy(
|
|
this.config.table[Table.Symbol.Columns],
|
|
new SelectionProxyHandler({ sqlAliasedBehavior: "alias", sqlBehavior: "sql" })
|
|
)
|
|
);
|
|
const orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];
|
|
this.config.orderBy = orderByArray;
|
|
} else {
|
|
const orderByArray = columns;
|
|
this.config.orderBy = orderByArray;
|
|
}
|
|
return this;
|
|
}
|
|
limit(limit) {
|
|
this.config.limit = limit;
|
|
return this;
|
|
}
|
|
returning(fields = this.table[SQLiteTable.Symbol.Columns]) {
|
|
this.config.returning = orderSelectedFields(fields);
|
|
return this;
|
|
}
|
|
/** @internal */
|
|
getSQL() {
|
|
return this.dialect.buildDeleteQuery(this.config);
|
|
}
|
|
toSQL() {
|
|
const { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());
|
|
return rest;
|
|
}
|
|
/** @internal */
|
|
_prepare(isOneTimeQuery = true) {
|
|
return this.session[isOneTimeQuery ? "prepareOneTimeQuery" : "prepareQuery"](
|
|
this.dialect.sqlToQuery(this.getSQL()),
|
|
this.config.returning,
|
|
this.config.returning ? "all" : "run",
|
|
true,
|
|
void 0,
|
|
{
|
|
type: "delete",
|
|
tables: extractUsedTable(this.config.table)
|
|
}
|
|
);
|
|
}
|
|
prepare() {
|
|
return this._prepare(false);
|
|
}
|
|
run = (placeholderValues) => {
|
|
return this._prepare().run(placeholderValues);
|
|
};
|
|
all = (placeholderValues) => {
|
|
return this._prepare().all(placeholderValues);
|
|
};
|
|
get = (placeholderValues) => {
|
|
return this._prepare().get(placeholderValues);
|
|
};
|
|
values = (placeholderValues) => {
|
|
return this._prepare().values(placeholderValues);
|
|
};
|
|
async execute(placeholderValues) {
|
|
return this._prepare().execute(placeholderValues);
|
|
}
|
|
$dynamic() {
|
|
return this;
|
|
}
|
|
}
|
|
export {
|
|
SQLiteDeleteBase
|
|
};
|
|
//# sourceMappingURL=delete.js.map |