UNPKG

sworm

Version:

a lightweight write-only ORM for MSSQL, MySQL, PostgreSQL, Oracle, Sqlite 3

42 lines (34 loc) 831 B
var paramRegex = require('./paramRegex') var _ = require('underscore') function Unescape(value) { this.value = value } module.exports = unescape function unescape(value) { return new Unescape(value) } unescape.isUnescape = function (value) { return value instanceof Unescape } unescape.interpolate = function(query, params) { var driverParams = _.omit(params, function (value) { return unescape.isUnescape(value) }) var interpolatedQuery = query.replace(paramRegex, function(_, name) { if (params.hasOwnProperty(name)) { var value = params[name] if (unescape.isUnescape(value)) { delete driverParams[name] return value.value } else { return _ } } else { return _ } }) return { query: interpolatedQuery, params: driverParams } }