node-cli-template/flake.nix
2026-02-25 17:26:52 +07:00

45 lines
1.4 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs = inputs:
inputs.flake-parts.lib.mkFlake { inherit inputs; } (
{
systems = [ "x86_64-linux" ];
perSystem = { config, system, pkgs, lib, ... }:
let
packageJson = builtins.fromJSON (builtins.readFile ./package.json);
runtimeDeps = [ ]; # e. g. pkgs.jq
runtimePath = lib.makeSearchPath "bin" runtimeDeps;
basePackage = {
pname = packageJson.name;
version = packageJson.version;
src = ./.;
npmDepsHash = "sha256-qZIr0vUhSx/B64kNRAwLPuOTSEBs5wtbEn9rRUAXtaA=";
npmBuildScript = "build";
};
in
{
# runtime deps included
packages.bundled = pkgs.buildNpmPackage (basePackage // {
makeWrapperArgs = [ "--prefix" "PATH" ":" runtimePath ];
});
packages.default = config.packages.bundled;
packages.unbundled = pkgs.buildNpmPackage basePackage;
devShells.default = pkgs.mkShell {
packages = with pkgs;
[ nodejs typescript typescript-language-server ];
};
formatter = pkgs.nixpkgs-fmt;
};
}
);
}