sql-string-template
Advanced tools
Comparing version
12
index.js
@@ -24,6 +24,16 @@ 'use strict'; | ||
} | ||
pack() { | ||
return [this._sql, this._params]; | ||
} | ||
/** | ||
* @returns {string} | ||
*/ | ||
get sql() { return this._sql; } | ||
/** | ||
* @returns {any[]} | ||
*/ | ||
get params() { return this._params; } | ||
} | ||
@@ -30,0 +40,0 @@ |
{ | ||
"name": "sql-string-template", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "ES2015 tagged template string for preparing statements", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -1,1 +0,78 @@ | ||
# SQL String Template | ||
# SQL String Template | ||
[](https://www.npmjs.com/package/sql-string-template) | ||
[](https://www.npmjs.com/package/sql-string-template) | ||
[](https://david-dm.org/leecjson/node-sql-string-template) | ||
[](https://github.com/leecjson/node-sql-string-template/blob/master/LICENSE.txt) | ||
[](https://github.com/semantic-release/semantic-release) | ||
A tiny tool allow you to use ES2015 template strings to render a sql prepared statements. (Only support quest mark placeholder for now!). | ||
## Examples | ||
### Insert | ||
```javascript | ||
const SQL = require('sql-string-template'); | ||
const data = { name: "jon", age: 12 }; | ||
const [sql, params] = SQL` | ||
INSERT INTO account (name, age) values (${name}, ${age}) | ||
`.pack(); | ||
/* | ||
sql: "INSERT INTO account (name, age) values (?, ?)" | ||
params: ["jon", 12] | ||
*/ | ||
``` | ||
### Insert with ```values``` function | ||
```javascript | ||
const SQL = require('sql-string-template'); | ||
const { values } = SQL; | ||
const data = { name: "jon", age: 12 }; | ||
const [sql, params] = SQL` | ||
INSERT INTO account ${values(data)} | ||
`.pack(); | ||
/* | ||
sql: "INSERT INTO account (name, age) values (?, ?)" | ||
params: ["jon", 12] | ||
*/ | ||
``` | ||
### Update | ||
```javascript | ||
const SQL = require('sql-string-template'); | ||
const [sql, params] = SQL` | ||
UPDATE account SET ${SQL.set({ | ||
name: "jon", | ||
age: 12, | ||
school: null, | ||
})} | ||
`.pack(); | ||
/* | ||
sql: "UPDATE account SET name=?, age=?, school=?" | ||
params: ["jon", 12, null] | ||
*/ | ||
``` | ||
### Select | ||
```javascript | ||
const SQL = require('sql-string-template'); | ||
const startDate = '2020-5-5'; | ||
const endDate = undefined; | ||
const stmt = SQL` | ||
SELECT | ||
${['id', 'name', 'pwd'].join(', ')} | ||
FROM | ||
account | ||
WHERE | ||
1=1 | ||
${startDate && SQL`AND startDate = ${startDate}`} | ||
${endDate && SQL`AND endDate = ${endDate}`} | ||
`; | ||
/* | ||
stmt.sql: "SELECT id, name, pwd FROM account WHERE 1=1 AND startDate=?" | ||
stmt.params: ["2020-5-5"] | ||
*/ | ||
``` |
9295
35.75%172
4.88%78
7700%