{ lib, src, npmDepsHash, runtimeInputs, buildNpmPackage, meta, makeWrapper, nodejs_latest, jq, ... }: let inherit (lib) concatMapStringsSep; inherit (builtins) fromJSON readFile; packageJSON = fromJSON (readFile "${src}/package.json"); pname = packageJSON.name; inherit (packageJSON) version; in buildNpmPackage { inherit pname version src runtimeInputs npmDepsHash; prePatch = '' mv ./tsconfig.json ./project.json sed 's/^ *\/\/.*//' ${./config/tsconfig.json} > ./base.json ${jq}/bin/jq -sr '.[0] * .[1] | del(.extends)' ./project.json ./base.json > ./tsconfig.json rm base.json project.json ''; nativeBuildInputs = [makeWrapper]; postInstall = '' wrapProgram $out/bin/${pname} \ --prefix PATH : ${concatMapStringsSep ":" (p: p + "/bin") runtimeInputs} ''; nodejs = nodejs_latest; meta = {mainProgram = pname;} // meta; }