nano-queries
Version:
Simple and powerful database-agnostic query builder (SQL & NoSQL)
28 lines (26 loc) • 2.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TemplateStringQueryBuilder = void 0;
const Query_1 = require("./core/Query");
const QueryBuilder_1 = require("./QueryBuilder");
class TemplateStringQueryBuilder {
build(strings, ...params) {
const query = new QueryBuilder_1.QueryBuilder();
strings.forEach((rawCode, index, items) => {
query.raw(rawCode);
const lastItemIndex = items.length - 1;
if (index < lastItemIndex) {
const parameter = params[index];
if (parameter instanceof Query_1.Query) {
query.raw(parameter);
}
else {
query.value(parameter);
}
}
});
return query;
}
}
exports.TemplateStringQueryBuilder = TemplateStringQueryBuilder;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRlbXBsYXRlU3RyaW5nUXVlcnlCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdDQUFxQztBQUNyQyxpREFBOEM7QUFHOUMsTUFBYSwwQkFBMEI7SUFDL0IsS0FBSyxDQUNYLE9BQTZCLEVBQzdCLEdBQUcsTUFBcUM7UUFFeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSwyQkFBWSxFQUFFLENBQUM7UUFFakMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDekMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVuQixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLEtBQUssR0FBRyxhQUFhLEVBQUU7Z0JBQzFCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxTQUFTLFlBQVksYUFBSyxFQUFFO29CQUMvQixLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDTixLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN2QjthQUNEO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7Q0FDRDtBQXhCRCxnRUF3QkMiLCJmaWxlIjoiVGVtcGxhdGVTdHJpbmdRdWVyeUJ1aWxkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeSB9IGZyb20gJy4vY29yZS9RdWVyeSc7XG5pbXBvcnQgeyBRdWVyeUJ1aWxkZXIgfSBmcm9tICcuL1F1ZXJ5QnVpbGRlcic7XG5pbXBvcnQgeyBQcmltaXRpdmVWYWx1ZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVTdHJpbmdRdWVyeUJ1aWxkZXIge1xuXHRwdWJsaWMgYnVpbGQoXG5cdFx0c3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXksXG5cdFx0Li4ucGFyYW1zOiBBcnJheTxQcmltaXRpdmVWYWx1ZSB8IFF1ZXJ5PlxuXHQpOiBRdWVyeSB7XG5cdFx0Y29uc3QgcXVlcnkgPSBuZXcgUXVlcnlCdWlsZGVyKCk7XG5cblx0XHRzdHJpbmdzLmZvckVhY2goKHJhd0NvZGUsIGluZGV4LCBpdGVtcykgPT4ge1xuXHRcdFx0cXVlcnkucmF3KHJhd0NvZGUpO1xuXG5cdFx0XHRjb25zdCBsYXN0SXRlbUluZGV4ID0gaXRlbXMubGVuZ3RoIC0gMTtcblx0XHRcdGlmIChpbmRleCA8IGxhc3RJdGVtSW5kZXgpIHtcblx0XHRcdFx0Y29uc3QgcGFyYW1ldGVyID0gcGFyYW1zW2luZGV4XTtcblxuXHRcdFx0XHRpZiAocGFyYW1ldGVyIGluc3RhbmNlb2YgUXVlcnkpIHtcblx0XHRcdFx0XHRxdWVyeS5yYXcocGFyYW1ldGVyKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRxdWVyeS52YWx1ZShwYXJhbWV0ZXIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gcXVlcnk7XG5cdH1cbn1cbiJdfQ==