Files
taiga-front/flake.nix
2025-10-06 15:24:41 -05:00

74 lines
1.9 KiB
Nix

{
description = "Taiga a frontend tester";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
treefmt-nix.url = "github:numtide/treefmt-nix";
};
outputs =
{ nixpkgs, ... }@inputs:
let
supportedSystems = [ "x86_64-linux" ];
pkgsFor =
system:
nixpkgs.legacyPackages.${system}.extend (
nixpkgs.lib.composeManyExtensions [ ]
# nixpkgs.lib.composeManyExtensions ([ ] ++ builtins.attrValues self.overlays)
);
eachSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f (pkgsFor system));
treefmtEval = eachSystem (pkgs: inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix);
packageSetFor =
pkgs:
let
npmDeps = pkgs.importNpmLock.buildNodeModules {
npmRoot = ./.;
nodejs = pkgs.nodejs;
};
npmPackage = pkgs.buildNpmPackage {
pname = "taiga";
version = "0.1.0";
src = ./.;
inherit npmDeps;
npmConfigHook = pkgs.importNpmLock.npmConfigHook;
};
in
{
inherit npmDeps;
inherit npmPackage;
};
in
{
# nix fmt formatter
formatter = eachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
packages = eachSystem (pkgs: packageSetFor pkgs);
# default devshell
devShells = eachSystem (pkgs: {
default = pkgs.mkShell {
packages = with pkgs; [
importNpmLock.hooks.linkNodeModulesHook
nodejs
just
svelte-language-server
];
npmDeps = pkgs.importNpmLock.buildNodeModules {
npmRoot = ./.;
nodejs = pkgs.nodejs;
};
# Will be executed before entering the shell
# or running a command
shellHook = ''
linkNodeModulesHook
echo "Dev env ready"
'';
};
});
};
}