Skip to content

Commit a4b7233

Browse files
committed
chore: added demo apps for webpack, rsbuild and parcel bundlers
1 parent fc06653 commit a4b7233

17 files changed

Lines changed: 8787 additions & 1275 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,5 @@ Thumbs.db
4141
node_modules
4242
dist/
4343
bundle
44+
45+
.parcel-cache
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>SAHPOOL Parcel Demo</title>
7+
</head>
8+
<body>
9+
<div id="app"></div>
10+
<script type="module" src="./src/main.js"></script>
11+
</body>
12+
</html>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "@sqlite.org/sahpool-parcel-demo",
3+
"type": "module",
4+
"scripts": {
5+
"dev": "parcel serve index.html --port 5174 --dist-dir dist",
6+
"build": "parcel build index.html --dist-dir dist"
7+
},
8+
"targets": {
9+
"default": {
10+
"outputFormat": "esmodule"
11+
}
12+
},
13+
"devDependencies": {
14+
"parcel": "^2.16.1"
15+
}
16+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const worker = new Worker(new URL('./workers/worker.js', import.meta.url), {
2+
type: 'module',
3+
});
4+
5+
worker.onmessage = (e) => {
6+
if (e.data.type === 'success') {
7+
const app = document.getElementById('app');
8+
if (app) {
9+
const ul = document.createElement('ul');
10+
e.data.rows.forEach((row) => {
11+
const li = document.createElement('li');
12+
li.textContent = `${row.id}: ${row.name}`;
13+
ul.appendChild(li);
14+
});
15+
app.appendChild(ul);
16+
}
17+
return;
18+
}
19+
20+
console.error(e.data.message);
21+
};
22+
23+
worker.postMessage({ type: 'start' });
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import sqlite3InitModule from '../../../../dist/index.mjs';
2+
3+
self.onmessage = async (e) => {
4+
if (e.data.type !== 'start') return;
5+
6+
try {
7+
const sqlite3 = await sqlite3InitModule();
8+
const opfsSahPool = await sqlite3.installOpfsSAHPoolVfs({
9+
directory: '/sqlite-wasm-sahpool-parcel-demo',
10+
clearOnInit: true,
11+
});
12+
13+
const db = new opfsSahPool.OpfsSAHPoolDb('/test-sahpool-parcel-worker.sqlite3');
14+
db.exec('CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)');
15+
db.exec({
16+
sql: 'INSERT INTO test (name) VALUES (?), (?)',
17+
bind: ['Alice', 'Bob'],
18+
});
19+
20+
const rows = db.selectObjects('SELECT * FROM test ORDER BY id');
21+
db.close();
22+
self.postMessage({ type: 'success', rows });
23+
} catch (err) {
24+
self.postMessage({ type: 'error', message: err.message });
25+
}
26+
};
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "@sqlite.org/sahpool-rsbuild-demo",
3+
"type": "module",
4+
"scripts": {
5+
"dev": "rsbuild dev --port 5175",
6+
"build": "rsbuild build"
7+
},
8+
"devDependencies": {
9+
"@rsbuild/core": "^1.5.13"
10+
}
11+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { defineConfig } from '@rsbuild/core';
2+
3+
export default defineConfig({
4+
server: {
5+
headers: {
6+
'Cross-Origin-Embedder-Policy': 'require-corp',
7+
'Cross-Origin-Opener-Policy': 'same-origin',
8+
},
9+
},
10+
html: {
11+
title: 'SAHPOOL Rsbuild Demo',
12+
},
13+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import './main.js';
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const worker = new Worker(new URL('./workers/worker.js', import.meta.url), {
2+
type: 'module',
3+
});
4+
5+
worker.onmessage = (e) => {
6+
if (e.data.type === 'success') {
7+
const app = document.getElementById('app');
8+
if (app) {
9+
const ul = document.createElement('ul');
10+
e.data.rows.forEach((row) => {
11+
const li = document.createElement('li');
12+
li.textContent = `${row.id}: ${row.name}`;
13+
ul.appendChild(li);
14+
});
15+
app.appendChild(ul);
16+
}
17+
return;
18+
}
19+
20+
console.error(e.data.message);
21+
};
22+
23+
worker.postMessage({ type: 'start' });
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import sqlite3InitModule from '../../../../dist/index.mjs';
2+
3+
self.onmessage = async (e) => {
4+
if (e.data.type !== 'start') return;
5+
6+
try {
7+
const sqlite3 = await sqlite3InitModule();
8+
const opfsSahPool = await sqlite3.installOpfsSAHPoolVfs({
9+
directory: '/sqlite-wasm-sahpool-rsbuild-demo',
10+
clearOnInit: true,
11+
});
12+
13+
const db = new opfsSahPool.OpfsSAHPoolDb('/test-sahpool-rsbuild-worker.sqlite3');
14+
db.exec('CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)');
15+
db.exec({
16+
sql: 'INSERT INTO test (name) VALUES (?), (?)',
17+
bind: ['Alice', 'Bob'],
18+
});
19+
20+
const rows = db.selectObjects('SELECT * FROM test ORDER BY id');
21+
db.close();
22+
self.postMessage({ type: 'success', rows });
23+
} catch (err) {
24+
self.postMessage({ type: 'error', message: err.message });
25+
}
26+
};

0 commit comments

Comments
 (0)