wip migrations

This commit is contained in:
Michael Zhang 2024-05-15 22:37:00 -05:00
parent 10719b6d83
commit 8b070ca1dd
7 changed files with 394 additions and 45 deletions

7
.env Normal file
View file

@ -0,0 +1,7 @@
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
DATABASE_URL="file:./dev.db"

View file

@ -1,4 +1,4 @@
import type { BindParams, QueryExecResult } from "sql.js";
import type { BindParams, Database, QueryExecResult } from "sql.js";
import { RpcProvider } from "worker-rpc";
import DbWorker from "./db.worker?worker";
@ -10,6 +10,13 @@ const rpcProvider = new RpcProvider((message, transfer) =>
worker.onmessage = (e) => rpcProvider.dispatch(e.data);
interface AsyncDatabase {
exec(sql: string, params?: BindParams): Promise<QueryExecResult[]>;
run(sql: string, params?: BindParams): Promise<Database>;
}
export let dbClient: AsyncDatabase;
export async function getDbClient() {
await new Promise<void>((resolve) => {
rpcProvider.registerSignalHandler("ready", () => {
@ -17,14 +24,12 @@ export async function getDbClient() {
});
});
return {
async run(s: string, p?: BindParams[]) {
dbClient = {
async run(s: string, p?: BindParams): Promise<Database> {
return await rpcProvider.rpc("run", { s, p });
},
async exec(s: string, p?: BindParams[]): Promise<QueryExecResult[]> {
async exec(s: string, p?: BindParams): Promise<QueryExecResult[]> {
return await rpcProvider.rpc("exec", { s, p });
},
};
}
export const dbClient = await getDbClient();

View file

@ -1,18 +1,16 @@
import sqlWasmUrl from "@jlongster/sql.js/dist/sql-wasm.wasm?url";
import { MigrateDeploy } from "@prisma/migrate";
import initSqlJs from "@jlongster/sql.js";
import { SQLiteFS } from "absurd-sql";
import type { Database } from "sql.js";
import IndexedDBBackend from "absurd-sql/dist/indexeddb-backend";
import { RpcProvider } from "worker-rpc";
let SQL;
let db: Database;
import { Umzug } from "umzug";
import executeMigrations from "./migrations";
async function init() {
const SQL = await initSqlJs({
locateFile: (file) => {
console.log("FILE IS", file);
console.log("url is", sqlWasmUrl);
switch (file) {
case "sql-wasm.wasm":
return sqlWasmUrl;
@ -34,26 +32,22 @@ async function init() {
SQL.FS.close(stream);
}
db = new SQL.Database(path, { filename: true });
const db: Database = new SQL.Database(path, { filename: true });
db.exec("PRAGMA journal_mode=MEMORY;");
await executeMigrations(db);
const rpcProvider = new RpcProvider((message, transfer) =>
self.postMessage(message, undefined, transfer),
);
self.addEventListener("message", (evt) => rpcProvider.dispatch(evt.data));
rpcProvider.registerRpcHandler("run", ({ s, p }) => db.run(s, p));
rpcProvider.registerRpcHandler("exec", ({ s, p }) => db.exec(s, p));
rpcProvider.signal("ready");
}
await init();
const rpcProvider = new RpcProvider((message, transfer) =>
self.postMessage(message, undefined, transfer),
);
self.addEventListener("message", (evt) => rpcProvider.dispatch(evt.data));
rpcProvider.registerRpcHandler("run", ({ s, p }) => {
return db.run(s, p);
});
rpcProvider.registerRpcHandler("exec", ({ s, p }) => {
return db.exec(s, p);
});
console.log("SHIET");
rpcProvider.signal("ready");
init();

3
lib/db/migrations.ts Normal file
View file

@ -0,0 +1,3 @@
import type { Database } from "sql.js";
export default async function executeMigrations(db: Database) {}

View file

@ -25,6 +25,7 @@
"@vitejs/plugin-react-swc": "^3.6.0",
"fraction.js": "^4.3.7",
"js-green-licenses": "^4.0.0",
"prisma": "^5.14.0",
"sass": "^1.77.1",
"typescript": "^5.4.5",
"vite": "^5.2.11",
@ -39,6 +40,8 @@
"@mui/icons-material": "^5.15.17",
"@mui/joy": "5.0.0-beta.36",
"@mui/material": "^5.15.17",
"@prisma/client": "5.14.0",
"@prisma/migrate": "^5.14.0",
"@tanstack/react-query": "^5.36.1",
"@tanstack/react-table": "^8.17.3",
"@zlepper/rpc": "^0.0.10",
@ -52,6 +55,7 @@
"react-router": "^6.23.1",
"react-router-dom": "^6.23.1",
"stream-json": "^1.8.0",
"umzug": "^3.8.0",
"worker-rpc": "^0.2.0"
}
}

View file

@ -29,6 +29,12 @@ importers:
'@mui/material':
specifier: ^5.15.17
version: 5.15.17(@emotion/react@11.11.4(@types/react@18.3.2)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.2)(react@18.3.1))(@types/react@18.3.2)(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@prisma/client':
specifier: 5.14.0
version: 5.14.0(prisma@5.14.0)
'@prisma/migrate':
specifier: ^5.14.0
version: 5.14.0(@prisma/generator-helper@5.14.0)(@prisma/internals@5.14.0)
'@tanstack/react-query':
specifier: ^5.36.1
version: 5.36.1(react@18.3.1)
@ -68,6 +74,9 @@ importers:
stream-json:
specifier: ^1.8.0
version: 1.8.0
umzug:
specifier: ^3.8.0
version: 3.8.0(@types/node@20.12.12)
worker-rpc:
specifier: ^0.2.0
version: 0.2.0
@ -102,6 +111,9 @@ importers:
js-green-licenses:
specifier: ^4.0.0
version: 4.0.0
prisma:
specifier: ^5.14.0
version: 5.14.0
sass:
specifier: ^1.77.1
version: 1.77.1
@ -1245,6 +1257,51 @@ packages:
'@popperjs/core@2.11.8':
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
'@prisma/client@5.14.0':
resolution: {integrity: sha512-akMSuyvLKeoU4LeyBAUdThP/uhVP3GuLygFE3MlYzaCb3/J8SfsYBE5PkaFuLuVpLyA6sFoW+16z/aPhNAESqg==}
engines: {node: '>=16.13'}
peerDependencies:
prisma: '*'
peerDependenciesMeta:
prisma:
optional: true
'@prisma/debug@5.14.0':
resolution: {integrity: sha512-iq56qBZuFfX3fCxoxT8gBX33lQzomBU0qIUaEj1RebsKVz1ob/BVH1XSBwwwvRVtZEV1b7Fxx2eVu34Ge/mg3w==}
'@prisma/engines-version@5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48':
resolution: {integrity: sha512-ip6pNkRo1UxWv+6toxNcYvItNYaqQjXdFNGJ+Nuk2eYtRoEdoF13wxo7/jsClJFFenMPVNVqXQDV0oveXnR1cA==}
'@prisma/engines@5.14.0':
resolution: {integrity: sha512-lgxkKZ6IEygVcw6IZZUlPIfLQ9hjSYAtHjZ5r64sCLDgVzsPFCi2XBBJgzPMkOQ5RHzUD4E/dVdpn9+ez8tk1A==}
'@prisma/fetch-engine@5.14.0':
resolution: {integrity: sha512-VrheA9y9DMURK5vu8OJoOgQpxOhas3qF0IBHJ8G/0X44k82kc8E0w98HCn2nhnbOOMwbWsJWXfLC2/F8n5u0gQ==}
'@prisma/generator-helper@5.14.0':
resolution: {integrity: sha512-xVc71cmTnPZ0lnSs4FAY6Ta72vFJ3webrQwKMQ2ujr6hDG1VPIEf820T1TOS3ZZQd/OKigNKXnq3co8biz9/qw==}
'@prisma/get-platform@5.14.0':
resolution: {integrity: sha512-/yAyBvcEjRv41ynZrhdrPtHgk47xLRRq/o5eWGcUpBJ1YrUZTYB8EoPiopnP7iQrMATK8stXQdPOoVlrzuTQZw==}
'@prisma/internals@5.14.0':
resolution: {integrity: sha512-s0JRNDmR2bvcyy0toz89jy7SbbjANAs4e9KCReNvSm5czctIaZzDf68tcOXdtH0G7m9mKhVhNPdS9lMky0DhWA==}
'@prisma/migrate@5.14.0':
resolution: {integrity: sha512-/1sZWxtQojUS1UoyuElaKviqwkUAMjzQ2IKoXP1RHFhxb7bzq+WKcqj9c98ACq/aRST9YJi/j3YQjwLa5ciAiQ==}
peerDependencies:
'@prisma/generator-helper': '*'
'@prisma/internals': '*'
'@prisma/prisma-schema-wasm@5.14.0-17.56ca112d5a19c9925b53af75c3c6b7ada97f9f85':
resolution: {integrity: sha512-SX9vE9dGYBap6xsfJuDE5b2eoA6w1vKsx8QpLUHZR+kIV6GQVUYUboEfkvYYoBVen3s9LqxJ1+LjHL/1MqBZag==}
'@prisma/prisma-schema-wasm@5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48':
resolution: {integrity: sha512-WeTmJ0mK8ALoKJUQFO+465k9lm1JWS4ODUg7akJq1wjgyDU1RTAzDFli8ESmNJlMVgJgoAd6jXmzcnoA0HT9Lg==}
'@prisma/schema-files-loader@5.14.0':
resolution: {integrity: sha512-n1QHR2C63dARKPZe0WPn7biybcBHzXe+BEmiHC5Drq9KPWnpmQtIfGpqm1ZKdvCZfcA5FF3wgpSMPK4LnB0obQ==}
'@remix-run/router@1.16.1':
resolution: {integrity: sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==}
engines: {node: '>=14.0.0'}
@ -1378,6 +1435,25 @@ packages:
cpu: [x64]
os: [win32]
'@rushstack/node-core-library@4.3.0':
resolution: {integrity: sha512-JuNZ7lwaYQ4R1TugpryyWBn4lIxK+L7fF+muibFp0by5WklG22nsvH868fuBoZMLo5FqAs6WFOifNos4PJjWSA==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
'@types/node':
optional: true
'@rushstack/terminal@0.11.0':
resolution: {integrity: sha512-LKz7pv0G9Py5uULahNSixK1pTqIIKd103pAGhDW51YfzPojvmO5wfITe0PEUNAJZjuufN/KgeRW83dJo1gL2rQ==}
peerDependencies:
'@types/node': '*'
peerDependenciesMeta:
'@types/node':
optional: true
'@rushstack/ts-command-line@4.20.1':
resolution: {integrity: sha512-CvHh+Hs9Ia6Ds1bz3rlhvegCWeFUPytU8MG1sPC0sSxX1AJH2i/a3OczhdHGmLXRlAXN2OQianG9DeXRdN5qsw==}
'@sindresorhus/is@4.6.0':
resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
engines: {node: '>=10'}
@ -1483,6 +1559,9 @@ packages:
resolution: {integrity: sha512-mPBodDGVL+fl6d90wUREepHa/7lhsghg2A3vFpakEhrhtbIlgNAZiMr7ccTgak5qbHqF14Fwy+W1yFWQt+WmYQ==}
engines: {node: '>=12'}
'@types/argparse@1.0.38':
resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==}
'@types/cacheable-request@6.0.3':
resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
@ -1594,6 +1673,12 @@ packages:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
array-buffer-byte-length@1.0.1:
resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
engines: {node: '>= 0.4'}
@ -1794,6 +1879,10 @@ packages:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
engines: {node: ^12.20.0 || >=14}
common-tags@1.8.2:
resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
engines: {node: '>=4.0.0'}
@ -1911,6 +2000,10 @@ packages:
electron-to-chromium@1.4.768:
resolution: {integrity: sha512-z2U3QcvNuxdkk33YV7R1bVMNq7fL23vq3WfO5BHcqrm4TnDGReouBfYKLEFh5umoK1XACjEwp8mmnhXk2EJigw==}
emittery@0.13.1:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
engines: {node: '>=12'}
end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
@ -2027,6 +2120,14 @@ packages:
fs-constants@1.0.0:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
fs-extra@11.1.1:
resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
engines: {node: '>=14.14'}
fs-extra@7.0.1:
resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
engines: {node: '>=6 <7 || >=8'}
fs-extra@9.1.0:
resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
engines: {node: '>=10'}
@ -2171,6 +2272,10 @@ packages:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
import-lazy@4.0.0:
resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
engines: {node: '>=8'}
indent-string@4.0.0:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
engines: {node: '>=8'}
@ -2302,6 +2407,9 @@ packages:
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
jju@1.4.0:
resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==}
jotai@2.8.0:
resolution: {integrity: sha512-yZNMC36FdLOksOr8qga0yLf14miCJlEThlp5DeFJNnqzm2+ZG7wLcJzoOyij5K6U6Xlc5ljQqPDlJRgqW0Y18g==}
engines: {node: '>=12.20.0'}
@ -2351,6 +2459,9 @@ packages:
engines: {node: '>=6'}
hasBin: true
jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
@ -2365,6 +2476,10 @@ packages:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
kleur@3.0.3:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
@ -2379,6 +2494,12 @@ packages:
lodash.debounce@4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
lodash.get@4.4.2:
resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
lodash.isequal@4.5.0:
resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
lodash.sortby@4.7.0:
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
@ -2585,6 +2706,10 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
pony-cause@2.1.11:
resolution: {integrity: sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==}
engines: {node: '>=12.0.0'}
possible-typed-array-names@1.0.0:
resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
engines: {node: '>= 0.4'}
@ -2606,6 +2731,15 @@ packages:
resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
engines: {node: ^14.13.1 || >=16.0.0}
prisma@5.14.0:
resolution: {integrity: sha512-gCNZco7y5XtjrnQYeDJTiVZmT/ncqCr5RY1/Cf8X2wgLRmyh9ayPAGBNziI4qEE4S6SxCH5omQLVo9lmURaJ/Q==}
engines: {node: '>=16.13'}
hasBin: true
prompts@2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
@ -2792,6 +2926,11 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
semver@7.6.2:
resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
engines: {node: '>=10'}
@ -2828,6 +2967,9 @@ packages:
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
smob@1.5.0:
resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
@ -2878,6 +3020,9 @@ packages:
split2@3.2.2:
resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
stream-chain@2.2.5:
resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==}
@ -2887,6 +3032,10 @@ packages:
streamx@2.16.1:
resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==}
string-argv@0.3.2:
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
engines: {node: '>=0.6.19'}
string.prototype.matchall@4.0.11:
resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
engines: {node: '>= 0.4'}
@ -2936,6 +3085,10 @@ packages:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
supports-color@8.1.1:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@ -3009,6 +3162,10 @@ packages:
resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
engines: {node: '>=8'}
type-fest@4.18.2:
resolution: {integrity: sha512-+suCYpfJLAe4OXS6+PPXjW3urOS4IoP9waSiLuXfLgqZODKw/aWwASvzqE886wA0kQgGy0mIWyhd87VpqIy6Xg==}
engines: {node: '>=16'}
typed-array-buffer@1.0.2:
resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
engines: {node: '>= 0.4'}
@ -3030,6 +3187,10 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
umzug@3.8.0:
resolution: {integrity: sha512-FRBvdZxllW3eUzsqG3CIfgOVChUONrKNZozNOJfvmcfBn5pMKcJjICuMMEsDLHYa/aqd7a2NtXfYEG86XHe1lQ==}
engines: {node: '>=12'}
unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
@ -3062,6 +3223,10 @@ packages:
universal-user-agent@6.0.1:
resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==}
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
@ -3088,6 +3253,10 @@ packages:
validate-npm-package-name@3.0.0:
resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==}
validator@13.12.0:
resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==}
engines: {node: '>= 0.10'}
vite-plugin-mkcert@1.17.5:
resolution: {integrity: sha512-KKGY3iHx/9zb7ow8JJ+nLN2HiNIBuPBwj34fJ+jAJT89/8qfk7msO7G7qipR8VDEm9xMCys0xT11QOJbZcg3/Q==}
engines: {node: '>=v16.7.0'}
@ -3222,6 +3391,11 @@ packages:
resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
engines: {node: '>=10'}
z-schema@5.0.5:
resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
engines: {node: '>=8.0.0'}
hasBin: true
snapshots:
'@ampproject/remapping@2.3.0':
@ -4424,6 +4598,65 @@ snapshots:
'@popperjs/core@2.11.8': {}
'@prisma/client@5.14.0(prisma@5.14.0)':
optionalDependencies:
prisma: 5.14.0
'@prisma/debug@5.14.0': {}
'@prisma/engines-version@5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48': {}
'@prisma/engines@5.14.0':
dependencies:
'@prisma/debug': 5.14.0
'@prisma/engines-version': 5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48
'@prisma/fetch-engine': 5.14.0
'@prisma/get-platform': 5.14.0
'@prisma/fetch-engine@5.14.0':
dependencies:
'@prisma/debug': 5.14.0
'@prisma/engines-version': 5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48
'@prisma/get-platform': 5.14.0
'@prisma/generator-helper@5.14.0':
dependencies:
'@prisma/debug': 5.14.0
'@prisma/get-platform@5.14.0':
dependencies:
'@prisma/debug': 5.14.0
'@prisma/internals@5.14.0':
dependencies:
'@prisma/debug': 5.14.0
'@prisma/engines': 5.14.0
'@prisma/fetch-engine': 5.14.0
'@prisma/generator-helper': 5.14.0
'@prisma/get-platform': 5.14.0
'@prisma/prisma-schema-wasm': 5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48
'@prisma/schema-files-loader': 5.14.0
arg: 5.0.2
prompts: 2.4.2
'@prisma/migrate@5.14.0(@prisma/generator-helper@5.14.0)(@prisma/internals@5.14.0)':
dependencies:
'@prisma/debug': 5.14.0
'@prisma/engines-version': 5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48
'@prisma/generator-helper': 5.14.0
'@prisma/get-platform': 5.14.0
'@prisma/internals': 5.14.0
prompts: 2.4.2
'@prisma/prisma-schema-wasm@5.14.0-17.56ca112d5a19c9925b53af75c3c6b7ada97f9f85': {}
'@prisma/prisma-schema-wasm@5.14.0-25.e9771e62de70f79a5e1c604a2d7c8e2a0a874b48': {}
'@prisma/schema-files-loader@5.14.0':
dependencies:
'@prisma/prisma-schema-wasm': 5.14.0-17.56ca112d5a19c9925b53af75c3c6b7ada97f9f85
fs-extra: 11.1.1
'@remix-run/router@1.16.1': {}
'@rollup/plugin-babel@5.3.1(@babel/core@7.24.5)(rollup@2.79.1)':
@ -4521,6 +4754,33 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.17.2':
optional: true
'@rushstack/node-core-library@4.3.0(@types/node@20.12.12)':
dependencies:
fs-extra: 7.0.1
import-lazy: 4.0.0
jju: 1.4.0
resolve: 1.22.8
semver: 7.5.4
z-schema: 5.0.5
optionalDependencies:
'@types/node': 20.12.12
'@rushstack/terminal@0.11.0(@types/node@20.12.12)':
dependencies:
'@rushstack/node-core-library': 4.3.0(@types/node@20.12.12)
supports-color: 8.1.1
optionalDependencies:
'@types/node': 20.12.12
'@rushstack/ts-command-line@4.20.1(@types/node@20.12.12)':
dependencies:
'@rushstack/terminal': 0.11.0(@types/node@20.12.12)
'@types/argparse': 1.0.38
argparse: 1.0.10
string-argv: 0.3.2
transitivePeerDependencies:
- '@types/node'
'@sindresorhus/is@4.6.0': {}
'@surma/rollup-plugin-off-main-thread@2.2.3':
@ -4601,6 +4861,8 @@ snapshots:
'@tanstack/table-core@8.17.3': {}
'@types/argparse@1.0.38': {}
'@types/cacheable-request@6.0.3':
dependencies:
'@types/http-cache-semantics': 4.0.4
@ -4725,6 +4987,12 @@ snapshots:
normalize-path: 3.0.0
picomatch: 2.3.1
arg@5.0.2: {}
argparse@1.0.10:
dependencies:
sprintf-js: 1.0.3
array-buffer-byte-length@1.0.1:
dependencies:
call-bind: 1.0.7
@ -4960,6 +5228,9 @@ snapshots:
commander@2.20.3: {}
commander@9.5.0:
optional: true
common-tags@1.8.2: {}
concat-map@0.0.1: {}
@ -5067,6 +5338,8 @@ snapshots:
electron-to-chromium@1.4.768: {}
emittery@0.13.1: {}
end-of-stream@1.4.4:
dependencies:
once: 1.4.0
@ -5239,6 +5512,18 @@ snapshots:
fs-constants@1.0.0: {}
fs-extra@11.1.1:
dependencies:
graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.1
fs-extra@7.0.1:
dependencies:
graceful-fs: 4.2.11
jsonfile: 4.0.0
universalify: 0.1.2
fs-extra@9.1.0:
dependencies:
at-least-node: 1.0.0
@ -5397,6 +5682,8 @@ snapshots:
parent-module: 1.0.1
resolve-from: 4.0.0
import-lazy@4.0.0: {}
indent-string@4.0.0: {}
inflight@1.0.6:
@ -5514,6 +5801,8 @@ snapshots:
jiti@1.21.0: {}
jju@1.4.0: {}
jotai@2.8.0(@types/react@18.3.2)(react@18.3.1):
optionalDependencies:
'@types/react': 18.3.2
@ -5551,6 +5840,10 @@ snapshots:
json5@2.2.3: {}
jsonfile@4.0.0:
optionalDependencies:
graceful-fs: 4.2.11
jsonfile@6.1.0:
dependencies:
universalify: 2.0.1
@ -5565,6 +5858,8 @@ snapshots:
kind-of@6.0.3: {}
kleur@3.0.3: {}
leven@3.1.0: {}
lines-and-columns@1.2.4: {}
@ -5575,6 +5870,10 @@ snapshots:
lodash.debounce@4.0.8: {}
lodash.get@4.4.2: {}
lodash.isequal@4.5.0: {}
lodash.sortby@4.7.0: {}
lodash@4.17.21: {}
@ -5764,6 +6063,8 @@ snapshots:
picomatch@2.3.1: {}
pony-cause@2.1.11: {}
possible-typed-array-names@1.0.0: {}
postcss@8.4.38:
@ -5791,6 +6092,15 @@ snapshots:
pretty-bytes@6.1.1: {}
prisma@5.14.0:
dependencies:
'@prisma/engines': 5.14.0
prompts@2.4.2:
dependencies:
kleur: 3.0.3
sisteransi: 1.0.5
prop-types@15.8.1:
dependencies:
loose-envify: 1.4.0
@ -6007,6 +6317,10 @@ snapshots:
semver@6.3.1: {}
semver@7.5.4:
dependencies:
lru-cache: 6.0.0
semver@7.6.2: {}
serialize-javascript@6.0.2:
@ -6065,6 +6379,8 @@ snapshots:
dependencies:
is-arrayish: 0.3.2
sisteransi@1.0.5: {}
smob@1.5.0: {}
source-map-js@1.2.0: {}
@ -6116,6 +6432,8 @@ snapshots:
dependencies:
readable-stream: 3.6.2
sprintf-js@1.0.3: {}
stream-chain@2.2.5: {}
stream-json@1.8.0:
@ -6129,6 +6447,8 @@ snapshots:
optionalDependencies:
bare-events: 2.2.2
string-argv@0.3.2: {}
string.prototype.matchall@4.0.11:
dependencies:
call-bind: 1.0.7
@ -6193,6 +6513,10 @@ snapshots:
dependencies:
has-flag: 4.0.0
supports-color@8.1.1:
dependencies:
has-flag: 4.0.0
supports-preserve-symlinks-flag@1.0.0: {}
tar-fs@2.1.1:
@ -6272,6 +6596,8 @@ snapshots:
type-fest@0.8.1: {}
type-fest@4.18.2: {}
typed-array-buffer@1.0.2:
dependencies:
call-bind: 1.0.7
@ -6306,6 +6632,16 @@ snapshots:
typescript@5.4.5: {}
umzug@3.8.0(@types/node@20.12.12):
dependencies:
'@rushstack/ts-command-line': 4.20.1(@types/node@20.12.12)
emittery: 0.13.1
fast-glob: 3.3.2
pony-cause: 2.1.11
type-fest: 4.18.2
transitivePeerDependencies:
- '@types/node'
unbox-primitive@1.0.2:
dependencies:
call-bind: 1.0.7
@ -6338,6 +6674,8 @@ snapshots:
universal-user-agent@6.0.1: {}
universalify@0.1.2: {}
universalify@2.0.1: {}
upath@1.2.0: {}
@ -6363,6 +6701,8 @@ snapshots:
dependencies:
builtins: 1.0.3
validator@13.12.0: {}
vite-plugin-mkcert@1.17.5(vite@5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0)):
dependencies:
'@octokit/rest': 20.1.1
@ -6554,3 +6894,11 @@ snapshots:
yaml@1.10.2: {}
yargs-parser@20.2.9: {}
z-schema@5.0.5:
dependencies:
lodash.get: 4.4.2
lodash.isequal: 4.5.0
validator: 13.12.0
optionalDependencies:
commander: 9.5.0

View file

@ -79,21 +79,9 @@ export function AppWrapper() {
export default function App() {
useEffect(() => {
(async () => {
// await getDbClient();
console.log("WTF?", dbClient);
console.log("a");
await dbClient.run(
"CREATE TABLE IF NOT EXISTS rows (lol INTEGER PRIMARY KEY AUTOINCREMENT , what STRING);",
);
console.log("b");
await dbClient.run("INSERT INTO rows (what) VALUES ('helloge')");
console.log("c");
const result = await dbClient.exec("SELECT * FROM rows");
console.log("d");
console.log("RESULT", result);
await getDbClient();
})();
}, [dbClient]);
});
return (
<>