Socket
Socket
Sign inDemoInstall

sqlite-tag-spawned

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sqlite-tag-spawned - npm Package Compare versions

Comparing version 0.5.4 to 0.5.5

78

cjs/utils.js

@@ -17,2 +17,22 @@ 'use strict';

const quote = /'/g;
const asValue = value => {
switch (typeof value) {
case 'string':
return "'" + value.replace(quote, "''") + "'";
case 'number':
if (!isFinite(value))
return;
case 'boolean':
return +value;
case 'object':
case 'undefined':
if (!value)
return 'NULL';
else if (value instanceof Date)
return "'" + value.toISOString() + "'";
}
};
exports.asValue = asValue;
const sql = (rej, _) => {

@@ -22,27 +42,6 @@ const [template, ...values] = asParams(..._);

for (let i = 0; i < values.length; i++) {
const value = values[i];
switch (typeof value) {
case 'string':
sql.push("'" + value.replace(/'/g, "''") + "'");
break;
case 'number':
if (!isFinite(value))
return error(rej, 'invalid number ' + value);
case 'boolean':
sql.push(+value);
break;
case 'undefined':
case 'object':
if (!value) {
sql.push('NULL');
break;
}
else if (value instanceof Date) {
sql.push("'" + value.toISOString() + "'");
break;
}
default:
return error(rej, 'incompatible value');
}
sql.push(template[i + 1]);
const value = asValue(values[i]);
if (value === void 0)
return error(rej, 'incompatible ' + (typeof value) + 'value');
sql.push(value, template[i + 1]);
}

@@ -53,1 +52,30 @@ const query = sql.join('').trim();

exports.sql = sql;
const sql2array = sql => {
const re = /(([:$@](\w+))|(\$\{\s*(\w+)\s*\}))/g;
const out = [];
let i = 0;
let match;
while (match = re.exec(sql)) {
out.push(sql.slice(i, match.index), match[3] || match[5]);
i = match.index + match[0].length;
}
out.push(sql.slice(i));
return out;
};
exports.sql2array = sql2array;
// WARNING: this changes the incoming array value @ holes
// useful only when sql2array results are stored,
// and revived, as JSON ... watch out side effects
// if used with same array more than once!
const array2sql = (chunks, data = null) => {
for (let i = 1; i < chunks.length; i += 2) {
const value = asValue(data[chunks[i]]);
if (value === void 0)
return '';
chunks[i] = value;
}
return chunks.join('');
};
exports.array2sql = array2sql;

@@ -14,2 +14,21 @@ import plain from 'plain-tag';

const quote = /'/g;
export const asValue = value => {
switch (typeof value) {
case 'string':
return "'" + value.replace(quote, "''") + "'";
case 'number':
if (!isFinite(value))
return;
case 'boolean':
return +value;
case 'object':
case 'undefined':
if (!value)
return 'NULL';
else if (value instanceof Date)
return "'" + value.toISOString() + "'";
}
};
export const sql = (rej, _) => {

@@ -19,27 +38,6 @@ const [template, ...values] = asParams(..._);

for (let i = 0; i < values.length; i++) {
const value = values[i];
switch (typeof value) {
case 'string':
sql.push("'" + value.replace(/'/g, "''") + "'");
break;
case 'number':
if (!isFinite(value))
return error(rej, 'invalid number ' + value);
case 'boolean':
sql.push(+value);
break;
case 'undefined':
case 'object':
if (!value) {
sql.push('NULL');
break;
}
else if (value instanceof Date) {
sql.push("'" + value.toISOString() + "'");
break;
}
default:
return error(rej, 'incompatible value');
}
sql.push(template[i + 1]);
const value = asValue(values[i]);
if (value === void 0)
return error(rej, 'incompatible ' + (typeof value) + 'value');
sql.push(value, template[i + 1]);
}

@@ -49,1 +47,28 @@ const query = sql.join('').trim();

};
export const sql2array = sql => {
const re = /(([:$@](\w+))|(\$\{\s*(\w+)\s*\}))/g;
const out = [];
let i = 0;
let match;
while (match = re.exec(sql)) {
out.push(sql.slice(i, match.index), match[3] || match[5]);
i = match.index + match[0].length;
}
out.push(sql.slice(i));
return out;
};
// WARNING: this changes the incoming array value @ holes
// useful only when sql2array results are stored,
// and revived, as JSON ... watch out side effects
// if used with same array more than once!
export const array2sql = (chunks, data = null) => {
for (let i = 1; i < chunks.length; i += 2) {
const value = asValue(data[chunks[i]]);
if (value === void 0)
return '';
chunks[i] = value;
}
return chunks.join('');
};
{
"name": "sqlite-tag-spawned",
"version": "0.5.4",
"version": "0.5.5",
"description": "Same as sqlite-tag but without the native sqlite3 module dependency",

@@ -5,0 +5,0 @@ "main": "./cjs/index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc