sql-js / sql-js/sql.js

Can't import sql-wasm.wasm

Open
#480 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
13.7k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

I want to make sqlite db and browser work together offline in reactJS. I am using "react": "^17.0.2",

It seems there is a sqljs, sql-js and sql.js existing at the same time. Why do you use - in the name? To confuse?

image

I dare to install new version of it and used this demo
https://github.com/sql-js/react-sqljs-demo

And it complains on import string

import sqlWasm from "!!file-loader?name=sql-wasm-[contenthash].wasm!sql.js/dist/sql-wasm.wasm";

src/App.js
Line 6:1: Unexpected '!' in '!!file-loader?name=sql-wasm-[contenthash].wasm!sql.js/dist/sql-wasm.wasm'. Do not use import syntax to configure webpack loaders import/no-webpack-loader-syntax

After I delete !! in it it complains on

  useEffect(async () => {
    // sql.js needs to fetch its wasm file, so we cannot immediately instantiate the database
    // without any configuration, initSqlJs will fetch the wasm files directly from the same path as the js
    // see ../craco.config.js
    try {
      const SQL = await initSqlJs({ locateFile: () => sqlWasm });
      setDb(new SQL.Database());
    } catch (err) {
      setError(err);
    }
  }, []);

put async inside useEffect. I just want to extract some data from SQLite DB offline

Maybe you could provide code to work with existing DB on localhost offline with use of react ?

P.S.
another approach doesn't work for me either even I put wasm file in the root folder

image

image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked react-sqljs-demo, then inspect src/App.js and the referenced craco.config.js around the sql.js/dist/sql-wasm.wasm import and initSqlJs call. Reproduce the loader and useEffect errors with the reported React version. Done means an existing SQLite database can be loaded and queried offline in the React app without the reported import or WASM errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react, sqlite, wasm
Domain
databases, frontend, web-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.