mysql-all-in-one
Version:
A package that allows you to have a complete interaction with a MYSQL database, allowing to connect to the database, retrieve data and create queries.
35 lines (34 loc) • 1.8 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const generate_query_from_prepared_statement_1 = require("../generate_query_from_prepared_statement");
const where_1 = __importDefault(require("../select/conditionals/where"));
const order_1 = require("../select/order");
const utils_1 = require("../utils");
const types_1 = require("./types");
/**
* @description Delete from query.
* @param table Table of delete from.
* @param whereOpts Optional where object to filter deleted data.
* @param opts Extra delete options like `ignore`, `quick`
* @returns Delete from SQL query.
* @example deleteFrom('table', {id: 5}, {ignore: true});
* >>> "DELETE IGNORE FROM `table` WHERE (`table`.`id` = 5);"
*/
const deleteFrom = (table, whereOpts, opts) => {
const { ignore, quick, returnPreparedStatement, limit, order: orderOpts, } = Object.assign(Object.assign({}, types_1.defaultDeleteOptions), opts);
const tableRef = (0, utils_1.escapeNames)(table);
const [_, alias] = (0, utils_1.extractTableAlias)(tableRef);
const { statement: whereStatement, values: whereValues } = (0, where_1.default)(whereOpts, alias);
const prepStatement = {
statement: `DELETE ${quick === true ? "QUICK " : ""}${ignore === true ? "IGNORE " : ""}FROM ${tableRef}${whereStatement}${(0, order_1.order)(orderOpts, alias)}${limit ? ` LIMIT ${limit}` : ""};`,
values: whereValues,
__is_prep_statement: true,
};
return returnPreparedStatement === true
? prepStatement
: (0, generate_query_from_prepared_statement_1.generateQueryFromPreparedStatement)(prepStatement);
};
exports.default = deleteFrom;
;