{"id":14974171,"url":"https://github.com/leecjson/node-sql-string-template","last_synced_at":"2025-10-27T06:31:56.439Z","repository":{"id":49575222,"uuid":"306510043","full_name":"leecjson/node-sql-string-template","owner":"leecjson","description":"A tiny tool allow you to use ES2015 template strings to render a sql prepared statements.","archived":false,"fork":false,"pushed_at":"2021-06-14T00:41:36.000Z","size":54,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-01T03:22:07.794Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leecjson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-23T02:31:45.000Z","updated_at":"2021-08-09T22:28:31.000Z","dependencies_parsed_at":"2022-09-14T15:40:44.381Z","dependency_job_id":null,"html_url":"https://github.com/leecjson/node-sql-string-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecjson%2Fnode-sql-string-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecjson%2Fnode-sql-string-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecjson%2Fnode-sql-string-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leecjson%2Fnode-sql-string-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leecjson","download_url":"https://codeload.github.com/leecjson/node-sql-string-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238455088,"owners_count":19475376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T13:50:05.393Z","updated_at":"2025-10-27T06:31:56.067Z","avatar_url":"https://github.com/leecjson.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SQL String Template\n\n[![npm](https://img.shields.io/npm/v/sql-string-template.svg?maxAge=2592000)](https://www.npmjs.com/package/sql-string-template)\n[![downloads](https://img.shields.io/npm/dm/sql-string-template.svg?maxAge=2592000)](https://www.npmjs.com/package/sql-string-template)\n[![dependencies](https://david-dm.org/leecjson/node-sql-string-template.svg)](https://david-dm.org/leecjson/node-sql-string-template)\n[![license](https://img.shields.io/npm/l/sql-string-template.svg?maxAge=2592000)](https://github.com/leecjson/node-sql-string-template/blob/master/LICENSE.txt)\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n\nA tiny tool allow you to use ES2015 template strings to render a sql prepared statements. (Only support quest mark placeholder for now!).\n\n## Examples\n\n### Insert\n```javascript\nconst SQL = require('sql-string-template');\n\nconst data = { \n  name: \"jon\", \n  age: 12 \n};\nconst stmt = SQL`\n  INSERT INTO account \n    (name, age) \n    values \n    (${data.name}, ${data.age})\n`;\n// stmt.sql: \"INSERT INTO account (name, age) values (?, ?)\"\n// stmt.params:  [\"jon\", 12]\n*/\n```\n\n### Insert with ```values``` function\n```javascript\nconst SQL = require('sql-string-template');\nconst { values } = SQL;\n\nconst data = { name: \"jon\", age: 12 };\nconst [sql, params] = SQL`\n  INSERT INTO account ${values(data)}\n`.spread();\n// sql: \"INSERT INTO account (name, age) values (?, ?)\"\n// params:  [\"jon\", 12]\n```\n\n### Update\n```javascript\nconst SQL = require('sql-string-template');\nconst [sql, params] = SQL`\n  UPDATE account SET ${SQL.set({\n    name: \"jon\", \n    age: 12,\n    school: null,\n  })}\n  WHERE id = ${1}\n`.spread();\n/*\nsql: \"UPDATE account SET name=?, age=?, school=?\"\nparams:  [\"jon\", 12, null]\n*/\n```\n\n### Select\n```javascript\nconst SQL = require('sql-string-template');\n\nconst startDate = '2020-5-5';\nconst endDate = undefined;\n\nconst stmt = SQL`\n  SELECT\n    ${['id', 'name', 'pwd'].join(', ')}\n  FROM\n    account\n  WHERE\n    1=1\n    ${startDate \u0026\u0026 SQL`AND startDate = ${startDate}`}\n    ${endDate \u0026\u0026 SQL`AND endDate = ${endDate}`}\n`;\n/*\nstmt.sql: \"SELECT id, name, pwd FROM account WHERE 1=1 AND startDate=?\"\nstmt.params:  [\"2020-5-5\"]\n*/\n```\n\n\n## Keyword Functions\n\n#### values\n```javascript\nconst data = {\n  name: 'fk',\n  age: 18\n};\nconst stmt = SQL`insert into tbl ${SQL.values(data)}`;\nstmt.sql; /* insert into tbl (name, age) values (?, ?) */\nstmt.params; /* ['fk', 18] */\n```\n\n### set\n```javascript\nconst data = {\n  name: 'fk',\n  age: 18\n};\nconst stmt = SQL`update tbl set ${SQL.set(data)}`;\nstmt.sql; /* update tbl set name=?, age=? */\nstmt.params; /* ['fk', 18] */\n```\n\n### join\n```javascript\nconst list = [\n  \"Nick\", \n  \"Adidas\",\n  \"Jordon\"\n];\nconst stmt = SQL`select * from tbl where a in (${SQL.join(list)})`;\nstmt.sql; /* select * from tbl where a in (?, ?, ?) */\nstmt.params; /* [\"Nick\", \"Adidas\", \"Jordon\"] */\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleecjson%2Fnode-sql-string-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleecjson%2Fnode-sql-string-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleecjson%2Fnode-sql-string-template/lists"}