45 lines
1.4 KiB
Nix
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;
|
|
};
|
|
}
|
|
);
|
|
}
|