diff --git a/flake.nix b/flake.nix index f6c39f2..e5522aa 100644 --- a/flake.nix +++ b/flake.nix @@ -63,6 +63,7 @@ }; packages = { + wordle-solver-web = pkgs.callPackage ./nix/wordle-solver-web.nix {inherit (self'.packages) wordle-solver-wasm-pkg;}; wordle-solver-wasm = crossToolchain.pkgs.callPackage ./nix/wordle-solver-wasm.nix {}; wordle-solver-wasm-pkg = pkgs.callPackage ./nix/wordle-solver-wasm-pkg.nix { inherit wasm-bindgen root-crate; diff --git a/nix/wordle-solver-web.nix b/nix/wordle-solver-web.nix new file mode 100644 index 0000000..d02cbff --- /dev/null +++ b/nix/wordle-solver-web.nix @@ -0,0 +1,37 @@ +{ + stdenv, + fetchYarnDeps, + yarnConfigHook, + yarnBuildHook, + nodejs, + wordle-solver-wasm-pkg, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "wordle-solver-web"; + version = "0.1.0"; + + src = ../web; + + yarnOfflineCache = fetchYarnDeps { + yarnLock = finalAttrs.src + "/yarn.lock"; + hash = "sha256-Vv9Ux9UF5loXUxxA2/tQvVTHSFpt7gD8iilO1PUj3y8="; + }; + + yarnBuildScript = "build-no-wasm"; + + postPatch = '' + ln -s ${wordle-solver-wasm-pkg} pkg + ''; + + installPhase = '' + mkdir $out + mv dist/* $out/ + ''; + + nativeBuildInputs = [ + yarnConfigHook + yarnBuildHook + # Needed for executing package.json scripts + nodejs + ]; +}) diff --git a/web/package.json b/web/package.json index 1370ace..850cfab 100644 --- a/web/package.json +++ b/web/package.json @@ -4,14 +4,15 @@ "version": "0.0.0", "type": "module", "scripts": { + "build-no-wasm": "run-s tsc vite:build", "build": "run-s wasm-pack:release tsc vite:build", "dev": "run-s wasm-pack:dev vite:dev", "tsc": "tsc", "vite:build": "vite build", "vite:dev": "vite -c vite.config.dev.ts", "vite:preview": "vite preview", - "wasm-pack:dev": "wasm-pack build --dev --features wasm-bindgen --manifest-path ../Cargo.toml", - "wasm-pack:release": "wasm-pack build --features wasm-bindgen --manifest-path ../Cargo.toml" + "wasm-pack:dev": "rm -rf pkg; wasm-pack build --dev --features wasm-bindgen --manifest-path ../Cargo.toml; mv ../pkg .", + "wasm-pack:release": "rm -rf pkg; wasm-pack build --features wasm-bindgen --manifest-path ../Cargo.toml; mv ../pkg ." }, "devDependencies": { "npm-run-all": "^4.1.5", @@ -24,6 +25,6 @@ "dependencies": { "esbuild": "^0.28.2", "rollup": "^4.62.4", - "wordle-solver": "link:../pkg" + "wordle-solver": "link:./pkg" } } diff --git a/web/yarn.lock b/web/yarn.lock index 9506a23..87cb42f 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -1850,6 +1850,6 @@ which@^1.2.9: dependencies: isexe "^2.0.0" -"wordle-solver@link:../pkg": +"wordle-solver@link:./pkg": version "0.0.0" uid ""