purs-eval/flake.nix
2022-11-02 04:11:31 -03:00

78 lines
2.1 KiB
Nix

{
inputs =
{
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
npmlock2nix.url = "github:nix-community/npmlock2nix";
npmlock2nix.flake = false;
ps-tools.follows = "purs-nix/ps-tools";
purs-nix.url = "github:purs-nix/purs-nix/ps-0.15";
utils.url = "github:ursi/flake-utils";
};
outputs = { utils, ... }@inputs:
utils.apply-systems
{
inherit inputs;
# Limited by ps-tools
systems = [ "x86_64-linux" "x86_64-darwin" ];
}
({ pkgs, system, ... }:
let
npm = import inputs.npmlock2nix { inherit pkgs; };
ps-tools = inputs.ps-tools.legacyPackages.${system};
purs-nix = inputs.purs-nix { inherit system; };
ps =
purs-nix.purs
{
dir = ./.;
dependencies =
with purs-nix.ps-pkgs;
[
prelude
debug
aff
affjax-node
argonaut-codecs
argonaut-generic
effect
httpure
node-buffer
node-process
node-streams-aff
test-unit
parsing
];
foreign."Affjax.Node".node_modules = npm.node_modules { src = ./.; } + /node_modules;
};
in
rec {
apps.default = {
type = "app";
program = "${packages.default}/bin/purs-eval";
};
packages = with ps.modules.Main; {
default = app { name = "purs-eval"; };
bundle = bundle { };
output = output { };
};
checks.test = ps.test.check { };
devShells.default = pkgs.mkShell {
packages = with pkgs; [
nodejs
(ps.command { })
ps-tools.for-0_15.purescript-language-server
purs-nix.esbuild
purs-nix.purescript
];
};
}
);
}