Skip to content

Commit 650d296

Browse files
Merge pull request #1 from assafmo/master
merge latest assafmo/SQLiteProxy into local fork
2 parents dd01bb7 + c5c9a45 commit 650d296

5 files changed

Lines changed: 43 additions & 95 deletions

File tree

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,14 @@ $ fg
107107
^C
108108
```
109109

110-
## Parameterized Queries
110+
## Parameterized Queries
111+
111112
Must use HTTP POST with content-type=application/json. 'params' element must be an array in request body
113+
112114
```console
113-
$ sqliteproxy --db currenttime.sqlite
114-
$ curl -i -X POST -H "Content-Type: application/json" -d "{\"sql\":\"select DATETIME(?) AS UTC_ISO\",\"params\":[\"now\"]}" http://localhost:2048
115-
$ [{"UTC_ISO":"2020-09-10 02:06:02"}]
115+
$ sqliteproxy --db currenttime.sqlite &
116+
$ curl -H "Content-Type: application/json" -d '{"sql":"select DATETIME(?) AS UTC_ISO","params":["now"]}' http://localhost:2048
117+
[{"UTC_ISO":"2020-09-10 02:06:02"}]
116118
```
117119

118120
## CORS

main.js

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,9 @@ function getSqlExecutor(httpRequestFieldName) {
4747
return function (req, res) {
4848
const sql = req[httpRequestFieldName].sql;
4949
let params = [];
50-
if (httpRequestFieldName === "body" && req.is('application/json'))
51-
{
50+
if (httpRequestFieldName === "body" && req.is("application/json")) {
5251
params = req[httpRequestFieldName].params;
53-
if (params == undefined || params == null)
54-
{
52+
if (params == undefined || params == null) {
5553
params = [];
5654
}
5755
}
@@ -61,11 +59,12 @@ function getSqlExecutor(httpRequestFieldName) {
6159

6260
let db;
6361
try {
64-
if (!Array.isArray(params))
65-
{
66-
var err = new Error("'params' element in http request body must be an array!");
67-
err["code"] = 10000;
68-
throw err;
62+
if (!Array.isArray(params)) {
63+
res.status(400);
64+
res.send(
65+
`${err.code}: 'params' element in http request body must be an array!\n`
66+
);
67+
return;
6968
}
7069
const readonly = flags.get("readonly");
7170
db = new Database(flags.get("db"), { readonly });
@@ -82,10 +81,10 @@ function getSqlExecutor(httpRequestFieldName) {
8281
let rows = [];
8382
try {
8483
if (sql.toLowerCase().includes("select")) {
85-
var stmt = db.prepare(sql);
84+
const stmt = db.prepare(sql);
8685
rows = stmt.all(params);
8786
} else {
88-
var stmt = db.prepare(sql);
87+
const stmt = db.prepare(sql);
8988
stmt.run(params);
9089
}
9190
} catch (err) {

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sqliteproxy",
3-
"version": "0.7.2",
3+
"version": "0.8.0",
44
"description": "HTTP JSON Proxy for SQLite",
55
"main": "main.js",
66
"bin": {

yarn.lock

Lines changed: 25 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@ ansi-regex@^2.0.0:
1515
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
1616
integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
1717

18-
ansi-regex@^3.0.0:
19-
version "3.0.0"
20-
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
21-
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
22-
2318
aproba@^1.0.3:
2419
version "1.2.0"
2520
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
@@ -348,7 +343,7 @@ has-unicode@^2.0.0:
348343
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
349344
integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
350345

351-
http-errors@1.7.2:
346+
http-errors@1.7.2, http-errors@~1.7.2:
352347
version "1.7.2"
353348
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
354349
integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
@@ -359,17 +354,6 @@ http-errors@1.7.2:
359354
statuses ">= 1.5.0 < 2"
360355
toidentifier "1.0.0"
361356

362-
http-errors@~1.7.2:
363-
version "1.7.3"
364-
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
365-
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
366-
dependencies:
367-
depd "~1.1.2"
368-
inherits "2.0.4"
369-
setprototypeof "1.1.1"
370-
statuses ">= 1.5.0 < 2"
371-
toidentifier "1.0.0"
372-
373357
iconv-lite@0.4.24:
374358
version "0.4.24"
375359
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -387,7 +371,7 @@ inherits@2.0.3:
387371
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
388372
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
389373

390-
inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
374+
inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
391375
version "2.0.4"
392376
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
393377
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -409,11 +393,6 @@ is-fullwidth-code-point@^1.0.0:
409393
dependencies:
410394
number-is-nan "^1.0.0"
411395

412-
is-fullwidth-code-point@^2.0.0:
413-
version "2.0.0"
414-
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
415-
integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
416-
417396
isarray@~1.0.0:
418397
version "1.0.0"
419398
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -456,7 +435,7 @@ mimic-response@^2.0.0:
456435
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
457436
integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
458437

459-
minimist@^1.2.0, minimist@^1.2.5:
438+
minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
460439
version "1.2.5"
461440
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
462441
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
@@ -477,9 +456,9 @@ minizlib@^1.2.1:
477456
minipass "^2.9.0"
478457

479458
mkdirp-classic@^0.5.2:
480-
version "0.5.2"
481-
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b"
482-
integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g==
459+
version "0.5.3"
460+
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
461+
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
483462

484463
mkdirp@^0.5.0, mkdirp@^0.5.1:
485464
version "0.5.5"
@@ -509,9 +488,9 @@ negotiator@0.6.2:
509488
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
510489

511490
node-abi@^2.7.0:
512-
version "2.16.0"
513-
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.16.0.tgz#7df94e9c0a7a189f4197ab84bac8089ef5894992"
514-
integrity sha512-+sa0XNlWDA6T+bDLmkCUYn6W5k5W6BPRL6mqzSCs6H/xUgtl4D5x2fORKDzopKiU6wsyn/+wXlRXwXeSp+mtoA==
491+
version "2.19.1"
492+
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85"
493+
integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==
515494
dependencies:
516495
semver "^5.4.1"
517496

@@ -570,14 +549,14 @@ path-to-regexp@0.1.7:
570549
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
571550

572551
prebuild-install@^5.3.3:
573-
version "5.3.3"
574-
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.3.tgz#ef4052baac60d465f5ba6bf003c9c1de79b9da8e"
575-
integrity sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==
552+
version "5.3.5"
553+
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.5.tgz#e7e71e425298785ea9d22d4f958dbaccf8bb0e1b"
554+
integrity sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==
576555
dependencies:
577556
detect-libc "^1.0.3"
578557
expand-template "^2.0.3"
579558
github-from-package "0.0.0"
580-
minimist "^1.2.0"
559+
minimist "^1.2.3"
581560
mkdirp "^0.5.1"
582561
napi-build-utils "^1.0.1"
583562
node-abi "^2.7.0"
@@ -663,21 +642,11 @@ readable-stream@^3.1.1, readable-stream@^3.4.0:
663642
string_decoder "^1.1.1"
664643
util-deprecate "^1.0.1"
665644

666-
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
645+
safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
667646
version "5.1.2"
668647
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
669648
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
670649

671-
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
672-
version "5.2.0"
673-
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
674-
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
675-
676-
safe-buffer@~5.2.0:
677-
version "5.2.1"
678-
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
679-
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
680-
681650
"safer-buffer@>= 2.1.2 < 3":
682651
version "2.1.2"
683652
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@@ -733,9 +702,9 @@ signal-exit@^3.0.0:
733702
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
734703

735704
simple-concat@^1.0.0:
736-
version "1.0.0"
737-
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
738-
integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
705+
version "1.0.1"
706+
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
707+
integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
739708

740709
simple-get@^3.0.3:
741710
version "3.1.0"
@@ -751,7 +720,7 @@ simple-get@^3.0.3:
751720
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
752721
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
753722

754-
string-width@^1.0.1:
723+
string-width@^1.0.1, "string-width@^1.0.2 || 2":
755724
version "1.0.2"
756725
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
757726
integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
@@ -760,22 +729,7 @@ string-width@^1.0.1:
760729
is-fullwidth-code-point "^1.0.0"
761730
strip-ansi "^3.0.0"
762731

763-
"string-width@^1.0.2 || 2":
764-
version "2.1.1"
765-
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
766-
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
767-
dependencies:
768-
is-fullwidth-code-point "^2.0.0"
769-
strip-ansi "^4.0.0"
770-
771-
string_decoder@^1.1.1:
772-
version "1.3.0"
773-
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
774-
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
775-
dependencies:
776-
safe-buffer "~5.2.0"
777-
778-
string_decoder@~1.1.1:
732+
string_decoder@^1.1.1, string_decoder@~1.1.1:
779733
version "1.1.1"
780734
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
781735
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
@@ -789,32 +743,25 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
789743
dependencies:
790744
ansi-regex "^2.0.0"
791745

792-
strip-ansi@^4.0.0:
793-
version "4.0.0"
794-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
795-
integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
796-
dependencies:
797-
ansi-regex "^3.0.0"
798-
799746
strip-json-comments@~2.0.1:
800747
version "2.0.1"
801748
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
802749
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
803750

804751
tar-fs@^2.0.0:
805-
version "2.0.1"
806-
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2"
807-
integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==
752+
version "2.1.0"
753+
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5"
754+
integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==
808755
dependencies:
809756
chownr "^1.1.1"
810757
mkdirp-classic "^0.5.2"
811758
pump "^3.0.0"
812759
tar-stream "^2.0.0"
813760

814761
tar-stream@^2.0.0:
815-
version "2.1.2"
816-
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325"
817-
integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==
762+
version "2.1.3"
763+
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.3.tgz#1e2022559221b7866161660f118255e20fa79e41"
764+
integrity sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==
818765
dependencies:
819766
bl "^4.0.1"
820767
end-of-stream "^1.4.1"

0 commit comments

Comments
 (0)