@stormzx/sqlbuilder
Version:
A simple sql builder.
59 lines (42 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _lodash = require("lodash");
var _utils = require("../../utils");
var _fragment = _interopRequireDefault(require("../select/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 (column === undefined) {
return this;
}
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 ((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 keys = [],
values = [];
for (let [key, value] of this.#columns.entries()) {
keys.push(key);
values.push(value);
}
return `(${keys.join(', ')}) value (${values.join(', ')})`;
}
}
exports.default = SetFragment;