1{
2 inputs = {
3 nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
4 };
5
6 outputs = {
7 self,
8 nixpkgs,
9 }: let
10 supportedSystems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"];
11 forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
12 nixpkgsFor = forAllSystems (system:
13 import nixpkgs {
14 inherit system;
15 overlays = [self.overlay.default];
16 });
17 in {
18 overlay.default = final: prev: let
19 pname = "plonk";
20 version = "0.1.0";
21 in {
22 plonk = with final;
23 buildNpmPackage {
24 inherit pname version;
25 src = ./.;
26 packageJson = ./package.json;
27 buildPhase = "npm run build";
28 npmDepsHash = "sha256-qGCbaFAHd/s9hOTWMjHCam6Kf6pU6IWPybfwYh0sOwc=";
29 };
30 };
31
32 packages = forAllSystems (system: {
33 inherit (nixpkgsFor."${system}") plonk;
34 });
35
36 defaultPackage = forAllSystems (system: nixpkgsFor."${system}".plonk);
37
38 devShell = forAllSystems (system: let
39 pkgs = nixpkgsFor."${system}";
40 in
41 pkgs.mkShell {
42 nativeBuildInputs = [
43 pkgs.nodejs
44 pkgs.biome
45 pkgs.typescript
46 pkgs.nodePackages.typescript-language-server
47 ];
48 });
49
50 formatter = forAllSystems (system: nixpkgsFor."${system}".alejandra);
51 };
52}