@stormzx/sqlbuilder
Version:
A simple sql builder.
57 lines (40 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _lodash = require("lodash");
var _utils = require("../utils");
var _fragment = _interopRequireDefault(require("./fragment"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class SetFragment extends _fragment.default {
#table;
#ignore = false;
#columns = new Map();
get priority() {
return 300;
}
set(column, value) {
if ((0, _lodash.isObject)(column) && !(0, _utils.isRaw)(column) && !(0, _utils.isTable)(column)) {
for (let key in column) {
this.set(key, column[key]);
}
return this;
}
if (column === undefined || value === undefined) {
return this;
}
if ((0, _lodash.isString)(column)) {
column = (0, _utils.escapeId)((0, _lodash.snakeCase)(column));
}
this.#columns.set(`${(0, _utils.escapeId)(column)}`, (0, _utils.escape)(value));
}
get sql() {
let sets = [];
for (let [key, value] of this.#columns.entries()) {
sets.push(`${key} = ${value}`);
}
return sets.length ? `set ${sets.join(', ')}` : '';
}
}
exports.default = SetFragment;