node-query/lib/DriverBase.js.map

1 line
6.8 KiB
Plaintext

{"version":3,"sources":["DriverBase.js"],"names":[],"mappings":"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","file":"DriverBase.js","sourcesContent":["'use strict';\n\nimport helpers from './helpers'\n\n/**\n * Base Database Driver\n *\n * @module driver\n */\nvar d = {\n\tidentifierStartChar: '\"',\n\tidentifierEndChar: '\"',\n\ttablePrefix: null,\n\thasTruncate: true,\n\n\t/**\n\t * Low level function for naive quoting of strings\n\n\t * @param {String} str\n\t * @return {String}\n\t * @private\n\t */\n\t_quote: function(str) {\n\t\treturn (helpers.isString(str) && ! (str.startsWith(d.identifierStartChar) || str.endsWith(d.identifierEndChar)))\n\t\t\t? d.identifierStartChar + str + d.identifierEndChar\n\t\t\t: str;\n\t},\n\n\t/**\n\t * Set the limit clause\n\n\t * @param {String} sql\n\t * @param {Number} limit\n\t * @param {Number|null} offset\n\t * @return {String}\n\t */\n\tlimit: function(sql, limit, offset) {\n\t\tsql += \" LIMIT \" + limit;\n\n\t\tif (helpers.isNumber(offset))\n\t\t{\n\t\t\tsql += \" OFFSET \" + offset;\n\t\t}\n\n\t\treturn sql;\n\t},\n\n\t/**\n\t * Quote database table name, and set prefix\n\t *\n\t * @param {String} table\n\t * @return {String}\n\t */\n\tquoteTable: function(table) {\n\t\t// Quote after prefix\n\t\treturn d.quoteIdentifiers(table);\n\t},\n\n\t/**\n\t * Use the driver's escape character to quote identifiers\n\t *\n\t * @param {String|Array}\n\t * @return {String|Array}\n\t */\n\tquoteIdentifiers: function(str) {\n\t\tvar hiers, raw;\n\t\tvar pattern = new RegExp(d.identifierStartChar + '(' + '([a-zA-Z0-9_]+)' + '(\\((.*?)\\))' + ')' + d.identifierEndChar, 'ig');\n\n\t\t// Recurse for arrays of identifiiers\n\t\tif (Array.isArray(str))\n\t\t{\n\t\t\treturn str.map(d.quoteIdentifiers);\n\t\t}\n\n\t\t// Handle commas\n\t\tif (str.includes(','))\n\t\t{\n\t\t\tvar parts = str.split(',').map(helpers.stringTrim);\n\t\t\tstr = parts.map(d.quoteIdentifiers).join(',');\n\t\t}\n\n\t\t// Split identifiers by period\n\t\thiers = str.split('.').map(d._quote);\n\t\traw = hiers.join('.');\n\n\t\t// Fix functions\n\t\tif (raw.includes('(') && raw.includes(')'))\n\t\t{\n\t\t\tvar funcs = pattern.exec(raw);\n\n\t\t\t// Unquote the function\n\t\t\traw = raw.replace(funcs[0], funcs[1]);\n\n\t\t\t// Quote the identifiers inside of the parens\n\t\t\tvar inParens = funcs[3].substring(1, funcs[3].length -1);\n\t\t\traw = raw.replace(inParens, d.quoteIdentifiers(inParens));\n\t\t}\n\n\t\treturn raw;\n\t},\n\n\t/**\n\t * SQL to truncate the passed table\n\t *\n\t * @param {String} table\n\t * @return {String} - sql\n\t */\n\ttruncate: function(table) {\n\t\tvar sql = (d.hasTruncate)\n\t\t\t? 'TRUNCATE '\n\t\t\t: 'DELETE FROM ';\n\n\t\tsql += d.quoteTable(table);\n\n\t\treturn sql;\n\t},\n\n\t/**\n\t * SQL to insert a group of rows\n\t *\n\t * @param {String} table - The table to insert to\n\t * @param {Array} [data] - The array of object containing data to insert\n\t * @return {String}\n\t */\n\tinsertBatch: function(table, data) {\n\t\tvar vals = [],\n\t\t\tfields = Object.keys(data[0]),\n\t\t\tsql = \"\",\n\t\t\tparams = [],\n\t\t\tparamString = \"\",\n\t\t\tparamList = [];\n\n\t\t// Get the data values to insert, so they can\n\t\t// be parameterized\n\t\tdata.forEach(function(obj) {\n\t\t\tObject.keys(obj).forEach(function(key) {\n\t\t\t\tvals.push(obj[key]);\n\t\t\t});\n\t\t});\n\n\t\t// Get the field names from the keys of the first\n\t\t// object inserted\n\t\ttable = d.quoteTable(table);\n\n\t\tsql += \"INSERT INTO \" + table + \" (\"\n\t\t\t+ d.quoteIdentifiers(fields).join(\",\")\n\t\t\t+ \") VALUES \";\n\n\t\t// Create placeholder groups\n\t\tparams = Array(fields.length).fill('?');\n\t\tparamString = \"(\" + params.join(',') + \")\";\n\t\tparamList = Array(data.length).fill(paramString);\n\n\t\tsql += paramList.join(',');\n\n\t\treturn {\n\t\t\tsql: sql,\n\t\t\tvalues: vals\n\t\t};\n\t}\n\n};\n\nmodule.exports = d;"],"sourceRoot":"/source/"}