UNPKG

nano-queries

Version:

Simple and powerful database-agnostic query builder (SQL & NoSQL)

28 lines (26 loc) 2.87 kB
"use strict"; 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==