deno2nix
Nix support for Deno
Usage
- lockfile ->
./lock.json
- import map ->
./import_map.json
- entrypoint ->
./mod.ts
Update lock.json
for caching
deno cache --import-map=./import_map.json --lock lock.json --lock-write ./mod.ts
Setup for nix flake (example)
{
inputs.deno2nix.url = "https://github.com/SnO2WMaN/deno2nix";
inputs.devshell.url = "github:numtide/devshell";
outputs = {
deno2nix,
flake-utils,
...
}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {
inherit system;
overlays = [
devshell.overlay
deno2nix.overlay
];
};
in {
packages.executable = pkgs.deno2nix.mkExecutable {
name = "example";
version = "0.1.0";
src = self;
lockfile = ./lock.json;
importmap = ./import_map.json;
entrypoint = ./mod.ts;
};
});
}
deno2nix.mkExecutable
Args
{
name,
version,
src,
entrypoint,
lockfile,
importmap ? null,
denoFlags ? [],
}
importMap = ./import_map.json
denoFlags = ["--allow-net" true]
Thanks