Skip to content

Commit 1482d70

Browse files
authored
Merge pull request #90 from rhashimoto/authorizer
Add set_authorizer() and limit()
2 parents dc81eaa + cd40b58 commit 1482d70

17 files changed

+398
-174
lines changed

Makefile

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ EXTENSION_FUNCTIONS_SHA3 = ee39ddf5eaa21e1d0ebcbceeab42822dd0c4f82d8039ce173fd48
1010

1111
# source files
1212

13-
LIBRARY_FILES = src/libfunction.js src/libmodule.js src/libvfs.js
13+
LIBRARY_FILES = src/libauthorizer.js src/libfunction.js src/libmodule.js src/libvfs.js
1414
EXPORTED_FUNCTIONS = src/exported_functions.json
1515
EXPORTED_RUNTIME_METHODS = src/extra_exported_runtime_methods.json
1616
ASYNCIFY_IMPORTS = src/asyncify_imports.json
@@ -19,12 +19,14 @@ ASYNCIFY_IMPORTS = src/asyncify_imports.json
1919

2020
BITCODE_FILES_DEBUG = \
2121
tmp/bc/debug/sqlite3.bc tmp/bc/debug/extension-functions.bc \
22+
tmp/bc/debug/libauthorizer.bc \
2223
tmp/bc/debug/libfunction.bc \
2324
tmp/bc/debug/libmodule.bc \
2425
tmp/bc/debug/libvfs.bc
2526

2627
BITCODE_FILES_DIST = \
2728
tmp/bc/dist/sqlite3.bc tmp/bc/dist/extension-functions.bc \
29+
tmp/bc/dist/libauthorizer.bc \
2830
tmp/bc/dist/libfunction.bc \
2931
tmp/bc/dist/libmodule.bc \
3032
tmp/bc/dist/libvfs.bc
@@ -61,6 +63,7 @@ EMFLAGS_INTERFACES = \
6163
-s EXPORTED_RUNTIME_METHODS=@$(EXPORTED_RUNTIME_METHODS)
6264

6365
EMFLAGS_LIBRARIES = \
66+
--js-library src/libauthorizer.js \
6467
--js-library src/libfunction.js \
6568
--js-library src/libmodule.js \
6669
--js-library src/libvfs.js
@@ -166,6 +169,10 @@ tmp/bc/debug/extension-functions.bc: deps/$(EXTENSION_FUNCTIONS)
166169
mkdir -p tmp/bc/debug
167170
$(EMCC) $(CFLAGS_DEBUG) $(WASQLITE_DEFINES) $^ -c -o $@
168171

172+
tmp/bc/debug/libauthorizer.bc: src/libauthorizer.c
173+
mkdir -p tmp/bc/debug
174+
$(EMCC) $(CFLAGS_DEBUG) $(WASQLITE_DEFINES) $^ -c -o $@
175+
169176
tmp/bc/debug/libfunction.bc: src/libfunction.c
170177
mkdir -p tmp/bc/debug
171178
$(EMCC) $(CFLAGS_DEBUG) $(WASQLITE_DEFINES) $^ -c -o $@
@@ -186,6 +193,10 @@ tmp/bc/dist/extension-functions.bc: deps/$(EXTENSION_FUNCTIONS)
186193
mkdir -p tmp/bc/dist
187194
$(EMCC) $(CFLAGS_DIST) $(WASQLITE_DEFINES) $^ -c -o $@
188195

196+
tmp/bc/dist/libauthorizer.bc: src/libauthorizer.c
197+
mkdir -p tmp/bc/dist
198+
$(EMCC) $(CFLAGS_DIST) $(WASQLITE_DEFINES) $^ -c -o $@
199+
189200
tmp/bc/dist/libfunction.bc: src/libfunction.c
190201
mkdir -p tmp/bc/dist
191202
$(EMCC) $(CFLAGS_DIST) $(WASQLITE_DEFINES) $^ -c -o $@

dist/wa-sqlite-async.mjs

Lines changed: 86 additions & 85 deletions
Large diffs are not rendered by default.

dist/wa-sqlite-async.wasm

174 Bytes
Binary file not shown.

dist/wa-sqlite.mjs

Lines changed: 81 additions & 79 deletions
Large diffs are not rendered by default.

dist/wa-sqlite.wasm

173 Bytes
Binary file not shown.

docs/assets/search.js

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

docs/interfaces/SQLiteAPI.html

Lines changed: 20 additions & 4 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "wa-sqlite",
3-
"version": "0.9.2",
3+
"version": "0.9.3",
44
"type": "module",
55
"main": "src/sqlite-api.js",
66
"types": "src/types/index.d.ts",

src/exported_functions.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"_sqlite3_get_autocommit",
3333
"_sqlite3_libversion",
3434
"_sqlite3_libversion_number",
35+
"_sqlite3_limit",
3536
"_sqlite3_malloc",
3637
"_sqlite3_open_v2",
3738
"_sqlite3_prepare_v2",

src/libauthorizer.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright 2023 Roy T. Hashimoto. All Rights Reserved.
2+
#include <emscripten.h>
3+
#include <sqlite3.h>
4+
5+
extern int jsAuth(
6+
void* db,
7+
int iActionCode,
8+
const char* pParam3,
9+
const char* pParam4,
10+
const char* pParam5,
11+
const char* pParam6);
12+
13+
int EMSCRIPTEN_KEEPALIVE set_authorizer(sqlite3* db) {
14+
return sqlite3_set_authorizer(db, &jsAuth, db);
15+
}

0 commit comments

Comments
 (0)