{ description = "Web demo of Organic Org Parser"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; organic = { url = "git+https://code.fizz.buzz/talexander/organic.git"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, organic, }: let forAllSystems = func: builtins.listToAttrs ( map (system: { name = system; value = func system; }) nixpkgs.lib.systems.flakeExposed ); overlays = [ organic.overlays.default ]; in { devShells = forAllSystems ( system: let pkgs = import nixpkgs { inherit system overlays; }; in { default = pkgs.mkShell { nativeBuildInputs = [ # rustToolchain ]; buildInputs = with pkgs; [ nodejs ]; }; } ); packages = forAllSystems ( system: let pkgs = import nixpkgs { inherit system overlays; }; appliedOverlay = self.overlays.default pkgs pkgs; in rec { inherit (appliedOverlay.organic_ast_explorer) release ; default = release; } ); overlays.default = final: prev: { organic_ast_explorer = final.lib.makeScope final.newScope ( organic_ast_explorer_scope: let wasm_bundler = (organic.overlays.default final final).organic.wasm_bundler; in { release = final.buildNpmPackage { pname = "organic_ast_explorer"; version = "0.0.0"; src = final.lib.cleanSource ./.; npmDepsHash = "sha256-cIL9HRZIg8djOgFEuH7jwem7Eia7V5tPogONma+TO9U="; npmBuildScript = "release"; preConfigure = '' substituteInPlace src/Explorer.tsx --replace-fail '../../organic/target/wasm32-unknown-unknown/js/wasm' '${wasm_bundler}/share/bundler/wasm' ''; installPhase = '' mkdir $out runHook preInstall cp -r dist/* "$out" runHook postInstall ''; }; } ); }; }; }