49 lines
1.1 KiB
Nix
49 lines
1.1 KiB
Nix
{
|
|
description = "A Nix-flake-based Node.js development environment";
|
|
|
|
inputs.nixpkgs.url = "nixpkgs/nixos-unstable";
|
|
|
|
outputs =
|
|
{ self, nixpkgs }:
|
|
let
|
|
overlays = [
|
|
(final: prev: rec {
|
|
nodejs = prev.nodejs_latest;
|
|
pnpm = prev.nodePackages.pnpm;
|
|
yarn = (prev.yarn.override { inherit nodejs; });
|
|
})
|
|
];
|
|
supportedSystems = [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
"x86_64-darwin"
|
|
"aarch64-darwin"
|
|
];
|
|
forEachSupportedSystem =
|
|
f:
|
|
nixpkgs.lib.genAttrs supportedSystems (
|
|
system: f { pkgs = import nixpkgs { inherit overlays system; }; }
|
|
);
|
|
in
|
|
{
|
|
devShells = forEachSupportedSystem (
|
|
{ pkgs }:
|
|
{
|
|
default = pkgs.mkShell {
|
|
packages = with pkgs; [
|
|
node2nix
|
|
nodejs
|
|
pnpm
|
|
yarn
|
|
prettierd
|
|
nodePackages.typescript-language-server
|
|
pgformatter
|
|
hurl
|
|
flyctl
|
|
];
|
|
};
|
|
}
|
|
);
|
|
};
|
|
}
|