@stormzx/sqlbuilder
Version:
A simple sql builder.
49 lines (35 loc) • 988 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fragment = _interopRequireDefault(require("./fragment"));
var _lodash = _interopRequireDefault(require("lodash"));
var _utils = require("../../utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class SelectFragment extends _fragment.default {
#columns = [];
get priority() {
return 100;
}
select(...columns) {
this.#columns.push(...(0, _lodash.default)(columns).flattenDeep().compact().value());
return this;
}
get sql() {
if (_lodash.default.isEmpty(this.#columns)) {
return 'select *';
}
let columns = this.#columns.map(v => {
if ((0, _utils.isRaw)(v)) {
return `${v}`;
}
return (0, _utils.escapeId)(v);
});
return `select ${columns.join(', ')}`;
}
get countSql() {
return `select 1`;
}
}
exports.default = SelectFragment;