{"_id":"sqlish","_rev":"42-7ab211c173b34e75781a46e367882448","name":"sqlish","description":"A small SQL generator for NodeJS, MongoDB shell or web browser.","dist-tags":{"latest":"0.0.12"},"versions":{"0.0.6":{"name":"sqlish","version":"0.0.6","description":"A very small SQL generator for NodeJS, MongoDB shell or web browser.","main":"./sqlish.js","repository":{"type":"git","url":"https://github.com/rsdoiel/sqlish.git"},"author":{"name":"R. S. Doiel","email":"rsdoiel@gmail.com","url":"https://github.com/rsdoiel"},"maintainers":[{"name":"rsdoiel","email":"rsdoiel@gmail.com"}],"contributors":[{"name":"Yawn","url":"https://github.com/yawnt"}],"engines":{"node":">= 0.8","npm":">= 1.1"},"scripts":{"test":"node tests/sqlish_test.js"},"bugs":{"url":"http://github.com/rsdoiel/sqlish/issues"},"_id":"sqlish@0.0.6","dist":{"shasum":"d2acaba851c5cace29c3994490b0ba1c3cddce03","tarball":"https://registry.npmjs.org/sqlish/-/sqlish-0.0.6.tgz","integrity":"sha512-pLROBd6PV1PK3iYI1PG19yUVWxrE+Qztpy48fheYGvo5ZzwQ8IBghs1FgekOizN15vgrO0OOkFsTxzz5y5BKdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF8ZveJHYSoXWlSYRBBMTGfvCn02jvuMxghflIPOYn9/AiBOPM9ff5CzAmluOS9Skpv0itnImmNzHhsO+KvbzW8C4g=="}]},"_npmVersion":"1.1.61","_npmUser":{"name":"rsdoiel","email":"rsdoiel@gmail.com"},"directories":{}},"0.0.7":{"name":"sqlish","version":"0.0.7","description":"A very small SQL generator for NodeJS, MongoDB shell or web browser.","main":"./sqlish.js","repository":{"type":"git","url":"https://github.com/rsdoiel/sqlish.git"},"author":{"name":"R. S. Doiel","email":"rsdoiel@gmail.com","url":"https://github.com/rsdoiel"},"maintainers":[{"name":"rsdoiel","email":"rsdoiel@gmail.com"}],"contributors":[{"name":"Yawn","url":"https://github.com/yawnt"}],"engines":{"node":">= 0.8","npm":">= 1.1"},"scripts":{"test":"node tests/sqlish_test.js"},"dependencies":{"harness":">= 0.0.2"},"bugs":{"url":"http://github.com/rsdoiel/sqlish/issues"},"_id":"sqlish@0.0.7","dist":{"shasum":"9206fe05376e206a5cf74d3ab6643f77003b168f","tarball":"https://registry.npmjs.org/sqlish/-/sqlish-0.0.7.tgz","integrity":"sha512-mZvL7ZlWPZvDOmRanf1hXqaLFjZjTqO/RdVN1G7XiPUp/hp1zTYcTiCJ2fLR/t128KAU6M126ealeS6GEIXLqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjQCCZYMAXPbs7oJd9lxupDfmCxDfXbGS5won9DoNAjAIhANmPci3SJL2TR4umHXhF6CNDQgaJxXUdsYbWG0kr6cvS"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"rsdoiel","email":"rsdoiel@gmail.com"},"directories":{}},"0.0.8":{"name":"sqlish","version":"0.0.8","description":"A very small SQL generator for NodeJS, MongoDB shell or web browser.","main":"./sqlish.js","repository":{"type":"git","url":"https://github.com/rsdoiel/sqlish.git"},"author":{"name":"R. S. Doiel","email":"rsdoiel@gmail.com","url":"https://github.com/rsdoiel"},"maintainers":[{"name":"rsdoiel","email":"rsdoiel@gmail.com"}],"contributors":[{"name":"Yawn","url":"https://github.com/yawnt"}],"engines":{"node":">= 0.8","npm":">= 1.1"},"scripts":{"test":"node tests/sqlish_test.js"},"dependencies":{"harness":">= 0.0.2"},"bugs":{"url":"http://github.com/rsdoiel/sqlish/issues"},"_id":"sqlish@0.0.8","dist":{"shasum":"ce0d8aa79733a2dd3ecc69086ebfc995da4b2d98","tarball":"https://registry.npmjs.org/sqlish/-/sqlish-0.0.8.tgz","integrity":"sha512-MFEIEZzrbGVgxEStbbpycg8HDS1Fb00zmVULS/Zxz97LKRWWeIIukVs4FY7mrHrUQ++poDPegxr9tCoPR2JStQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4tbQY7aqjbqkh+IaNwTawyLwL31BtGZbGS9L/wsvkHQIgTCouplRnqGVSCHj1l0SN8QXobZwL+pqRYxCdlhOo71k="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"rsdoiel","email":"rsdoiel@gmail.com"},"directories":{}},"0.0.9":{"name":"sqlish","version":"0.0.9","description":"A small SQL generator for NodeJS, MongoDB shell or web browser.","main":"./sqlish.js","repository":{"type":"git","url":"https://github.com/rsdoiel/sqlish.git"},"author":{"name":"R. S. Doiel","email":"rsdoiel@gmail.com","url":"https://github.com/rsdoiel"},"maintainers":[{"name":"rsdoiel","email":"rsdoiel@gmail.com"}],"contributors":[{"name":"Yawn","url":"https://github.com/yawnt"}],"engines":{"node":">= 0.8","npm":">= 1.1"},"scripts":{"test":"node tests/sqlish_test.js"},"dependencies":{"harness":">= 0.0.3"},"bugs":{"url":"http://github.com/rsdoiel/sqlish/issues"},"_id":"sqlish@0.0.9","dist":{"shasum":"43bb253c4246fafb7caa2b62faaafa2fcc67a18a","tarball":"https://registry.npmjs.org/sqlish/-/sqlish-0.0.9.tgz","integrity":"sha512-vuWftBEigFl6EAIJzOIvH0ql/0wCk9fzGHYsN4ijUI+N7RIJIPBdzbejE9C7hkxsyjf/FArAyl50o/AfnQPD2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICetkrkEDM2+xs/+hfZ/UltPRLluV/u8xauGsUVS8VG+AiBqPt4wZPSXZ5AZr2buKnG2BMi/rPx2RGkZPS2rzVAQkw=="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"rsdoiel","email":"rsdoiel@gmail.com"},"directories":{}},"0.0.10":{"name":"sqlish","version":"0.0.10","description":"A small SQL generator for NodeJS, MongoDB shell or web browser.","main":"./sqlish.js","repository":{"type":"git","url":"https://github.com/rsdoiel/sqlish.git"},"author":{"name":"R. S. Doiel","email":"rsdoiel@gmail.com","url":"https://github.com/rsdoiel"},"maintainers":[{"name":"rsdoiel","email":"rsdoiel@gmail.com"}],"contributors":[{"name":"Yawn","url":"https://github.com/yawnt"}],"engines":{"node":">= 0.8","npm":">= 1.1"},"scripts":{"test":"node tests/sqlish_test.js"},"dependencies":{"harness":">= 0.0.6"},"bugs":{"url":"http://github.com/rsdoiel/sqlish/issues"},"_id":"sqlish@0.0.10","dist":{"shasum":"4f220a2facce89f030ad1559b4094bd3351d3182","tarball":"https://registry.npmjs.org/sqlish/-/sqlish-0.0.10.tgz","integrity":"sha512-CS0QTLohGlkUcZyL1z04cRIpxuVkuwBJsd9k9mlgCPJ0zK+U3Ak9UDAHS1uQ8FlRjQtWuanjQivpImgEQCAGxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuy2Qq9shovDTZVlJ2T2ZU498EZDf0upnGJQ8DDC5jVQIgd0iny8Dv6SEmb3Yb4nhgpQFaxOjMhyO0maXrnktusaM="}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"rsdoiel","email":"rsdoiel@gmail.com"},"directories":{}},"0.0.11":{"name":"sqlish","version":"0.0.11","description":"A small SQL generator for NodeJS, MongoDB shell or web browser.","main":"./sqlish.js","repository":{"type":"git","url":"https://github.com/rsdoiel/sqlish.git"},"author":{"name":"R. S. Doiel","email":"rsdoiel@gmail.com","url":"https://github.com/rsdoiel"},"maintainers":[{"name":"rsdoiel","email":"rsdoiel@gmail.com"}],"contributors":[{"name":"Yawn","url":"https://github.com/yawnt"}],"engines":{"node":">= 0.8","npm":">= 1.1"},"scripts":{"test":"node tests/sqlish_test.js"},"dependencies":{"harness":">= 0.0.6"},"bugs":{"url":"http://github.com/rsdoiel/sqlish/issues"},"_id":"sqlish@0.0.11","dist":{"shasum":"ca76c014c325d78e4ab515cadabd0e562bd710e9","tarball":"https://registry.npmjs.org/sqlish/-/sqlish-0.0.11.tgz","integrity":"sha512-eh1VRIHX4SRTtjkjO5xO9og2Q3jWeUf702zMyVsWsIio1eWQg4rOoiIaWeVfw2YXP7LygtkKC6YYUKVjYoKpLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVOa5jd2bwDVwhDw2iqAZi4fjX6YbzUiY4dsWfZQ1uVwIhANbE2HtwRkaWXgMg97t08IcIksPZ4nAVvXr6xLRTobM1"}]},"_from":".","_npmVersion":"1.2.11","_npmUser":{"name":"rsdoiel","email":"rsdoiel@gmail.com"}},"0.0.12":{"name":"sqlish","version":"0.0.12","description":"A small SQL generator for NodeJS, MongoDB shell or web browser.","main":"./sqlish.js","repository":{"type":"git","url":"https://github.com/rsdoiel/sqlish.git"},"author":{"name":"R. S. Doiel","email":"rsdoiel@gmail.com","url":"https://github.com/rsdoiel"},"maintainers":[{"name":"rsdoiel","email":"rsdoiel@gmail.com"}],"contributors":[{"name":"Yawn","url":"https://github.com/yawnt"},{"name":"Stoke","url":"https://github.com/stoke"}],"engines":{"node":"0.10.x","npm":"1.2.x"},"scripts":{"test":"node tests/sqlish_test.js"},"devDependencies":{"yui":"3.10.x"},"bugs":{"url":"http://github.com/rsdoiel/sqlish/issues"},"_id":"sqlish@0.0.12","dist":{"shasum":"bce5c5a95c4d40e53455cd7b63d71926fdbcbd82","tarball":"https://registry.npmjs.org/sqlish/-/sqlish-0.0.12.tgz","integrity":"sha512-F7d5a2MrHvNhp0aItbOZn5OhIGndbEZ2nVnVVBjC49JJs2ylTu/7e848RXt/O+e/5ovw5VeFH6kb0TjFa2kApw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEsrbifoWuwmtPn+SOrrPkpzLRLKB2uKgFxynsZZviP7AiEAkrVIrhCCsw4f745sc1Nx+LrDw4t1OZruxB+jf80Nu+c="}]},"_from":".","_npmVersion":"1.2.24","_npmUser":{"name":"rsdoiel","email":"rsdoiel@gmail.com"}}},"readme":"[![build status](https://secure.travis-ci.org/rsdoiel/sqlish.png)](http://travis-ci.org/rsdoiel/sqlish)\nsqlish\n======\n\nA SQL generator for for NodeJS, Mongo Shell and web browsers.\n\n# Overview\n\nJavaScript's ability to chaining function calls provides an nice semantic\nfor generating SQL statements. sqlish (Californian pronunciation: sk wil' ish)\ntakes this approach and attempts to be portable as well as simple to use.\n\n\n## Advantages?\n\nThere are several advantages two taking this approach\n\n* lower cognitive noise (you're programming in one language not two)\n* your JS tools (e.g. jslint) now cover your assembly of SQL statements\n* assembling complex SQL is just a matter of chaining functions\n* MongoDB like object literals for expressions\n* sqlish is very small without dependancies\n* it works as a NodeJS module\n* it works as a loadable script in MongoDB's shell\n* it works should work web browsers supporting SQLite\n\n\n## installation\n\nTo use with NodeJS install via npm.\n\n```\n\tnpm install sqlish\n```\n\n# A NodeJS example\n\n```JavaScript\n\tvar sqlish = require(\"sqlish\"),\n\t\tdialect = sqlish.Dialect,\n\t\tSql = new sqlish.Sqlish(\"MySQL 5.5\"),\n\t\tmessage = {\n\t\t\tid: 0,\n\t\t\tname: \"fred\",\n\t\t\temail: \"fred@gmail.com\",\n\t\t\tmessages: 'He Said, \"Hello World\"',\n\t\t\tsent: new Date(\"09/01/2012 14:15:00\")\n\t\t};\n\n\tSql.use_UTC = false;\t\n\t\n\t// Output:\n\t// INSERT INTO messages (name, email, msg, sent) VALUES (\n\t//\t\"fred\", \"fred@example.com\", \"He siad, \\\"Hello World\\\"\", \n\t//\t\"2012-09-01 14:15:00\");\n\tconsole.log(Sql.insert(\"test\", message).toString());\n\t\n\t// Output:\n\t// SELECT id, name, email, msg, sent FROM messages \n\t//\tWHERE email LIKE \"%@example.com\";\n\tconsole.log(Sql.select(Object.keys(message))\n\t\t\t.from(\"messages\")\n\t\t\t.where({email: {$like: \"%@example.com\"}}).toString());\n\t\n\t// Output:\n\t// REPLACE INTO messages (id, name, email, msg, sent) VALUES (\n\t//\t10123, \"George\", \"george@example.com\", \"He siad, \\\"Hello World\\\"\", \n\t//\t\"2012-07-01\");\n\tmessage.id = 10123;\n\tmessage.name = \"George\";\n\tmessage.email = \"george@example.com\";\n\tmessage.sent = new Date(\"07/01/2012\");\n\tconsole.log(Sql.replace(\"test\", message).toString());\n```\n\n## a word about sqlish's toString()\n\nNormally you want SQL statements to end with a semi-colon and by default this\nis what the toString() at the end of the function chain will do.  However their\nare cases where you may want to render complex SQL statements by parts.  In\nthat case you can overwrite the default semi-colon by passing the terminating\nstring (including the empty string) as a paramater to toString().\n\n```JavaScript\n\tvar sqlish = require(\"sqlish\"),\n\t\tSql = new sqlish.Sqlish();\n    \n    // No trailing semi-colon\n    console.log(sql.select(\"count()\").toString(\"\"));\n    // Trailing semi-colon\n    console.log(sql.select(\"count()\").toString());\n```\nRunning the above will yeald something like-\n\n```shell\n    > console.log(sql.select(\"count()\").toString(\"\"));\n    'SELECT count()'\n    > console.log(sql.select(\"count()\").toString());\n    'SELECT count();'\n```\n\nIf you would like to have some other delimiter used as the end of statement marker you\ncan do so when overwriting Sql.eol at time of object creation or before calling toString().\n\n```\n\tvar sqlish = require(\"sqlish\"),\n\t\tSql = new sqlish.Sqlish();\n\t\t\n\tSql.eol = \";\\n\\n\";\n    \n    // No trailing semi-colon\n    console.log(sql.select(\"count()\").toString(\"\"));\n    // Trailing semi-colon with two new lines\n    console.log(sql.select(\"count()\").toString());\n```\n\nWould yeild something like-\n\n```shell\n    > console.log(sql.select(\"count()\").toString(\"\"));\n    'SELECT count()'\n    > console.log(sql.select(\"count()\").toString());\n    'SELECT count();'\n    \n    \n```\n\n# MongoDB shell example\n\nCopy _sqlish.js_ and _load-sqlish.js_ to your working directory. Then use\nMongoDB's shell's _load()_ function to include it. See mongo-example.js:\n\n```javascript\n    load(\"load-sqlish.js\");\n    sql = new Sql();\n    // Output should look like:\n    //  SELECT id, name, email, modified FROM myTable;\n    print(sql.select([\"id\", \"name\", \"email\", \"modified\"]).from(\"myTable\").toString());\n    item = {id:1, name: \"fred\", email: \"fred@example.com\", modified: new Date(\"09/14/2012 10:21:14\")};\n    // Output should look like:\n    //  REPLACE INTO myTable (id, name, email, modified) VALUES (\"fred\", \"fred@example.com\", \"2012-09-14 10:21:14\");\n    print(sql.replace(\"myTable\", item).toString());\n```\n\nSave the above example code as _mongo-example.js_. Run under MongoDB's shell-\n\n```shell\n\tmongo mongo-example.js\n```\n\nOutput should look something like-\n\n```shell\n\tMongoDB shell version: 2.2.0\n\tconnecting to: test\n\tSELECT id, name, email, modified FROM myTable;\n\tREPLACE INTO myTable (id, name, email, modified) VALUES (1, \"fred\", \"fred@example.com\", \"2012-09-14 10:21:14\");\n```\n\n# Alternatives?\n\nIf you don't need web browser or MongoDB shell support two SQL generators at npmjs.org \nlook very promising-\n\n* [bloom-sql](https://npmjs.org/package/bloom-sql)\n* [sql-generator](https://npmjs.org/package/sql-generator)\n\n","maintainers":[{"name":"rsdoiel","email":"rsdoiel@gmail.com"}],"time":{"modified":"2022-06-26T23:16:32.894Z","created":"2012-09-11T06:30:15.588Z","0.0.1":"2012-09-11T06:30:16.982Z","0.0.2":"2012-09-11T18:41:28.711Z","0.0.3":"2012-09-14T02:50:57.132Z","0.0.4":"2012-09-15T05:31:31.935Z","0.0.5":"2012-09-19T23:19:40.387Z","0.0.6":"2012-09-24T05:30:19.774Z","0.0.7":"2012-10-08T20:26:39.346Z","0.0.8":"2012-10-15T01:13:11.723Z","0.0.9":"2012-11-30T18:27:06.076Z","0.0.10":"2013-02-17T01:51:59.104Z","0.0.11":"2013-02-17T17:43:02.348Z","0.0.12":"2013-06-02T19:13:31.724Z"},"author":{"name":"R. S. Doiel","email":"rsdoiel@gmail.com","url":"https://github.com/rsdoiel"},"repository":{"type":"git","url":"https://github.com/rsdoiel/sqlish.git"},"users":{"fgribreau":true},"contributors":[{"name":"Yawn","url":"https://github.com/yawnt"},{"name":"Stoke","url":"https://github.com/stoke"}],"bugs":{"url":"http://github.com/rsdoiel/sqlish/issues"},"readmeFilename":"README.md"}