diff options
Diffstat (limited to 'user/packages')
-rw-r--r-- | user/packages/lumen/default.nix | 12 | ||||
-rw-r--r-- | user/packages/node2nix/default.nix | 24 | ||||
-rw-r--r-- | user/packages/node2nix/node-env.nix | 696 | ||||
-rw-r--r-- | user/packages/node2nix/node-packages.nix | 144 |
4 files changed, 445 insertions, 431 deletions
diff --git a/user/packages/lumen/default.nix b/user/packages/lumen/default.nix index 91e1b726..85520a2f 100644 --- a/user/packages/lumen/default.nix +++ b/user/packages/lumen/default.nix @@ -1,9 +1,9 @@ -{ - stdenv, - lib, - go, - buildGoPackage, - fetchFromGitHub, +{ stdenv +, lib +, go +, buildGoPackage +, fetchFromGitHub +, }: buildGoPackage rec { pname = "lumen"; diff --git a/user/packages/node2nix/default.nix b/user/packages/node2nix/default.nix index 09eea0fe..13d7a1e2 100644 --- a/user/packages/node2nix/default.nix +++ b/user/packages/node2nix/default.nix @@ -1,12 +1,12 @@ # This file has been generated by node2nix 1.11.1. Do not edit! -{ - pkgs ? - import <nixpkgs> { - inherit system; - }, - system ? builtins.currentSystem, - nodejs ? pkgs."nodejs-18_x", -}: let +{ pkgs ? import <nixpkgs> { + inherit system; + } +, system ? builtins.currentSystem +, nodejs ? pkgs."nodejs-18_x" +, +}: +let nodeEnv = import ./node-env.nix { inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript; inherit pkgs nodejs; @@ -16,7 +16,7 @@ else null; }; in - import ./node-packages.nix { - inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; - inherit nodeEnv; - } +import ./node-packages.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; +} diff --git a/user/packages/node2nix/node-env.nix b/user/packages/node2nix/node-env.nix index b81347da..16720d90 100644 --- a/user/packages/node2nix/node-env.nix +++ b/user/packages/node2nix/node-env.nix @@ -1,15 +1,16 @@ # This file originates from node2nix -{ - lib, - stdenv, - nodejs, - python2, - pkgs, - libtool, - runCommand, - writeTextFile, - writeShellScript, -}: let +{ lib +, stdenv +, nodejs +, python2 +, pkgs +, libtool +, runCommand +, writeTextFile +, writeShellScript +, +}: +let # Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master utillinux = if pkgs ? utillinux @@ -22,7 +23,7 @@ else python2; # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise - tarWrapper = runCommand "tarWrapper" {} '' + tarWrapper = runCommand "tarWrapper" { } '' mkdir -p $out/bin cat > $out/bin/tar <<EOF @@ -34,16 +35,16 @@ ''; # Function that generates a TGZ file from a NPM project - buildNodeSourceDist = { - name, - version, - src, - ... - }: + buildNodeSourceDist = + { name + , version + , src + , ... + }: stdenv.mkDerivation { name = "node-tarball-${name}-${version}"; inherit src; - buildInputs = [nodejs]; + buildInputs = [ nodejs ]; buildPhase = '' export HOME=$TMPDIR tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts) @@ -106,13 +107,14 @@ # Bundle the dependencies of the package # # Only include dependencies if they don't exist. They may also be bundled in the package. - includeDependencies = {dependencies}: - lib.optionalString (dependencies != []) ( + includeDependencies = { dependencies }: + lib.optionalString (dependencies != [ ]) ( '' mkdir -p node_modules cd node_modules '' - + (lib.concatMapStrings ( + + (lib.concatMapStrings + ( dependency: '' if [ ! -e "${dependency.packageName}" ]; then ${composePackage dependency} @@ -126,13 +128,13 @@ ); # Recursively composes the dependencies of a package - composePackage = { - name, - packageName, - src, - dependencies ? [], - ... - } @ args: + composePackage = + { name + , packageName + , src + , dependencies ? [ ] + , ... + } @ args: builtins.addErrorContext "while evaluating node package '${packageName}'" '' installPackage "${packageName}" "${src}" ${includeDependencies {inherit dependencies;}} @@ -140,106 +142,109 @@ ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} ''; - pinpointDependencies = { - dependencies, - production, - }: let - pinpointDependenciesFromPackageJSON = writeTextFile { - name = "pinpointDependencies.js"; - text = '' - var fs = require('fs'); - var path = require('path'); - - function resolveDependencyVersion(location, name) { - if(location == process.env['NIX_STORE']) { - return null; - } else { - var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); - - if(fs.existsSync(dependencyPackageJSON)) { - var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); - - if(dependencyPackageObj.name == name) { - return dependencyPackageObj.version; - } - } else { - return resolveDependencyVersion(path.resolve(location, ".."), name); - } - } - } + pinpointDependencies = + { dependencies + , production + , + }: + let + pinpointDependenciesFromPackageJSON = writeTextFile { + name = "pinpointDependencies.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + function resolveDependencyVersion(location, name) { + if(location == process.env['NIX_STORE']) { + return null; + } else { + var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json"); + + if(fs.existsSync(dependencyPackageJSON)) { + var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON)); + + if(dependencyPackageObj.name == name) { + return dependencyPackageObj.version; + } + } else { + return resolveDependencyVersion(path.resolve(location, ".."), name); + } + } + } - function replaceDependencies(dependencies) { - if(typeof dependencies == "object" && dependencies !== null) { - for(var dependency in dependencies) { - var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); + function replaceDependencies(dependencies) { + if(typeof dependencies == "object" && dependencies !== null) { + for(var dependency in dependencies) { + var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency); - if(resolvedVersion === null) { - process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); - } else { - dependencies[dependency] = resolvedVersion; - } - } - } - } + if(resolvedVersion === null) { + process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n"); + } else { + dependencies[dependency] = resolvedVersion; + } + } + } + } - /* Read the package.json configuration */ - var packageObj = JSON.parse(fs.readFileSync('./package.json')); + /* Read the package.json configuration */ + var packageObj = JSON.parse(fs.readFileSync('./package.json')); - /* Pinpoint all dependencies */ - replaceDependencies(packageObj.dependencies); - if(process.argv[2] == "development") { - replaceDependencies(packageObj.devDependencies); - } - else { - packageObj.devDependencies = {}; - } - replaceDependencies(packageObj.optionalDependencies); - replaceDependencies(packageObj.peerDependencies); + /* Pinpoint all dependencies */ + replaceDependencies(packageObj.dependencies); + if(process.argv[2] == "development") { + replaceDependencies(packageObj.devDependencies); + } + else { + packageObj.devDependencies = {}; + } + replaceDependencies(packageObj.optionalDependencies); + replaceDependencies(packageObj.peerDependencies); - /* Write the fixed package.json file */ - fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); - ''; - }; - in '' - node ${pinpointDependenciesFromPackageJSON} ${ - if production - then "production" - else "development" - } + /* Write the fixed package.json file */ + fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); + ''; + }; + in + '' + node ${pinpointDependenciesFromPackageJSON} ${ + if production + then "production" + else "development" + } - ${lib.optionalString (dependencies != []) - '' - if [ -d node_modules ] - then - cd node_modules - ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} - cd .. - fi - ''} - ''; + ${lib.optionalString (dependencies != []) + '' + if [ -d node_modules ] + then + cd node_modules + ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies} + cd .. + fi + ''} + ''; # Recursively traverses all dependencies of a package and pinpoints all # dependencies in the package.json file to the versions that are actually # being used. - pinpointDependenciesOfPackage = { - packageName, - dependencies ? [], - production ? true, - ... - } @ args: '' - if [ -d "${packageName}" ] - then - cd "${packageName}" - ${pinpointDependencies {inherit dependencies production;}} - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - fi - ''; + pinpointDependenciesOfPackage = + { packageName + , dependencies ? [ ] + , production ? true + , ... + } @ args: '' + if [ -d "${packageName}" ] + then + cd "${packageName}" + ${pinpointDependencies {inherit dependencies production;}} + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + fi + ''; # Extract the Node.js source code which is used to compile packages with # native bindings - nodeSources = runCommand "node-sources" {} '' + nodeSources = runCommand "node-sources" { } '' tar --no-same-owner --no-same-permissions -xf ${nodejs.src} mv node-* $out ''; @@ -446,293 +451,300 @@ ''; }; - prepareAndInvokeNPM = { - packageName, - bypassCache, - reconstructLock, - npmFlags, - production, - }: let - forceOfflineFlag = - if bypassCache - then "--offline" - else "--registry http://www.example.com"; - in '' - # Pinpoint the versions of all dependencies to the ones that are actually being used - echo "pinpointing versions of dependencies..." - source $pinpointDependenciesScriptPath - - # Patch the shebangs of the bundled modules to prevent them from - # calling executables outside the Nix store as much as possible - patchShebangs . - - # Deploy the Node.js package by running npm install. Since the - # dependencies have been provided already by ourselves, it should not - # attempt to install them again, which is good, because we want to make - # it Nix's responsibility. If it needs to install any dependencies - # anyway (e.g. because the dependency parameters are - # incomplete/incorrect), it fails. - # - # The other responsibilities of NPM are kept -- version checks, build - # steps, postprocessing etc. - - export HOME=$TMPDIR - cd "${packageName}" - runHook preRebuild - - ${lib.optionalString bypassCache '' - ${lib.optionalString reconstructLock '' - if [ -f package-lock.json ] - then - echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" - echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" - rm package-lock.json - else - echo "No package-lock.json file found, reconstructing..." - fi + prepareAndInvokeNPM = + { packageName + , bypassCache + , reconstructLock + , npmFlags + , production + , + }: + let + forceOfflineFlag = + if bypassCache + then "--offline" + else "--registry http://www.example.com"; + in + '' + # Pinpoint the versions of all dependencies to the ones that are actually being used + echo "pinpointing versions of dependencies..." + source $pinpointDependenciesScriptPath + + # Patch the shebangs of the bundled modules to prevent them from + # calling executables outside the Nix store as much as possible + patchShebangs . + + # Deploy the Node.js package by running npm install. Since the + # dependencies have been provided already by ourselves, it should not + # attempt to install them again, which is good, because we want to make + # it Nix's responsibility. If it needs to install any dependencies + # anyway (e.g. because the dependency parameters are + # incomplete/incorrect), it fails. + # + # The other responsibilities of NPM are kept -- version checks, build + # steps, postprocessing etc. + + export HOME=$TMPDIR + cd "${packageName}" + runHook preRebuild + + ${lib.optionalString bypassCache '' + ${lib.optionalString reconstructLock '' + if [ -f package-lock.json ] + then + echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!" + echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!" + rm package-lock.json + else + echo "No package-lock.json file found, reconstructing..." + fi + + node ${reconstructPackageLock} + ''} - node ${reconstructPackageLock} + node ${addIntegrityFieldsScript} ''} - node ${addIntegrityFieldsScript} - ''} + npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild - npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild + runHook postRebuild - runHook postRebuild + if [ "''${dontNpmInstall-}" != "1" ] + then + # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. + rm -f npm-shrinkwrap.json - if [ "''${dontNpmInstall-}" != "1" ] - then - # NPM tries to download packages even when they already exist if npm-shrinkwrap is used. - rm -f npm-shrinkwrap.json + npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install + fi - npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install - fi - - # Link executables defined in package.json - node ${linkBinsScript} - ''; + # Link executables defined in package.json + node ${linkBinsScript} + ''; # Builds and composes an NPM package including all its dependencies - buildNodePackage = { - name, - packageName, - version ? null, - dependencies ? [], - buildInputs ? [], - production ? true, - npmFlags ? "", - dontNpmInstall ? false, - bypassCache ? false, - reconstructLock ? false, - preRebuild ? "", - dontStrip ? true, - unpackPhase ? "true", - buildPhase ? "true", - meta ? {}, - ... - } @ args: let - extraArgs = removeAttrs args ["name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta"]; - in + buildNodePackage = + { name + , packageName + , version ? null + , dependencies ? [ ] + , buildInputs ? [ ] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , preRebuild ? "" + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , meta ? { } + , ... + } @ args: + let + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ]; + in stdenv.mkDerivation ({ - name = "${name}${ + name = "${name}${ if version == null then "" else "-${version}" }"; - buildInputs = - [tarWrapper python nodejs] + buildInputs = + [ tarWrapper python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ lib.optional (stdenv.isDarwin) libtool ++ buildInputs; - inherit nodejs; + inherit nodejs; - inherit dontStrip; # Stripping may fail a build for some package deployments - inherit dontNpmInstall preRebuild unpackPhase buildPhase; + inherit dontStrip; # Stripping may fail a build for some package deployments + inherit dontNpmInstall preRebuild unpackPhase buildPhase; - compositionScript = composePackage args; - pinpointDependenciesScript = pinpointDependenciesOfPackage args; + compositionScript = composePackage args; + pinpointDependenciesScript = pinpointDependenciesOfPackage args; - passAsFile = ["compositionScript" "pinpointDependenciesScript"]; + passAsFile = [ "compositionScript" "pinpointDependenciesScript" ]; - installPhase = '' - source ${installPackage} + installPhase = '' + source ${installPackage} - # Create and enter a root node_modules/ folder - mkdir -p $out/lib/node_modules - cd $out/lib/node_modules + # Create and enter a root node_modules/ folder + mkdir -p $out/lib/node_modules + cd $out/lib/node_modules - # Compose the package and all its dependencies - source $compositionScriptPath + # Compose the package and all its dependencies + source $compositionScriptPath - ${prepareAndInvokeNPM {inherit packageName bypassCache reconstructLock npmFlags production;}} + ${prepareAndInvokeNPM {inherit packageName bypassCache reconstructLock npmFlags production;}} - # Create symlink to the deployed executable folder, if applicable - if [ -d "$out/lib/node_modules/.bin" ] - then - ln -s $out/lib/node_modules/.bin $out/bin - - # Patch the shebang lines of all the executables - ls $out/bin/* | while read i - do - file="$(readlink -f "$i")" - chmod u+rwx "$file" - patchShebangs "$file" - done - fi + # Create symlink to the deployed executable folder, if applicable + if [ -d "$out/lib/node_modules/.bin" ] + then + ln -s $out/lib/node_modules/.bin $out/bin + + # Patch the shebang lines of all the executables + ls $out/bin/* | while read i + do + file="$(readlink -f "$i")" + chmod u+rwx "$file" + patchShebangs "$file" + done + fi - # Create symlinks to the deployed manual page folders, if applicable - if [ -d "$out/lib/node_modules/${packageName}/man" ] - then - mkdir -p $out/share - for dir in "$out/lib/node_modules/${packageName}/man/"* - do - mkdir -p $out/share/man/$(basename "$dir") - for page in "$dir"/* - do - ln -s $page $out/share/man/$(basename "$dir") - done - done - fi + # Create symlinks to the deployed manual page folders, if applicable + if [ -d "$out/lib/node_modules/${packageName}/man" ] + then + mkdir -p $out/share + for dir in "$out/lib/node_modules/${packageName}/man/"* + do + mkdir -p $out/share/man/$(basename "$dir") + for page in "$dir"/* + do + ln -s $page $out/share/man/$(basename "$dir") + done + done + fi - # Run post install hook, if provided - runHook postInstall - ''; + # Run post install hook, if provided + runHook postInstall + ''; - meta = - { - # default to Node.js' platforms - platforms = nodejs.meta.platforms; - } - // meta; - } - // extraArgs); + meta = + { + # default to Node.js' platforms + platforms = nodejs.meta.platforms; + } + // meta; + } + // extraArgs); # Builds a node environment (a node_modules folder and a set of binaries) - buildNodeDependencies = { - name, - packageName, - version ? null, - src, - dependencies ? [], - buildInputs ? [], - production ? true, - npmFlags ? "", - dontNpmInstall ? false, - bypassCache ? false, - reconstructLock ? false, - dontStrip ? true, - unpackPhase ? "true", - buildPhase ? "true", - ... - } @ args: let - extraArgs = removeAttrs args ["name" "dependencies" "buildInputs"]; - in + buildNodeDependencies = + { name + , packageName + , version ? null + , src + , dependencies ? [ ] + , buildInputs ? [ ] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... + } @ args: + let + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ]; + in stdenv.mkDerivation ({ - name = "node-dependencies-${name}${ + name = "node-dependencies-${name}${ if version == null then "" else "-${version}" }"; - buildInputs = - [tarWrapper python nodejs] + buildInputs = + [ tarWrapper python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ lib.optional (stdenv.isDarwin) libtool ++ buildInputs; - inherit dontStrip; # Stripping may fail a build for some package deployments - inherit dontNpmInstall unpackPhase buildPhase; + inherit dontStrip; # Stripping may fail a build for some package deployments + inherit dontNpmInstall unpackPhase buildPhase; - includeScript = includeDependencies {inherit dependencies;}; - pinpointDependenciesScript = pinpointDependenciesOfPackage args; + includeScript = includeDependencies { inherit dependencies; }; + pinpointDependenciesScript = pinpointDependenciesOfPackage args; - passAsFile = ["includeScript" "pinpointDependenciesScript"]; + passAsFile = [ "includeScript" "pinpointDependenciesScript" ]; - installPhase = '' - source ${installPackage} + installPhase = '' + source ${installPackage} - mkdir -p $out/${packageName} - cd $out/${packageName} + mkdir -p $out/${packageName} + cd $out/${packageName} - source $includeScriptPath + source $includeScriptPath - # Create fake package.json to make the npm commands work properly - cp ${src}/package.json . - chmod 644 package.json - ${lib.optionalString bypassCache '' - if [ -f ${src}/package-lock.json ] - then - cp ${src}/package-lock.json . - chmod 644 package-lock.json - fi - ''} + # Create fake package.json to make the npm commands work properly + cp ${src}/package.json . + chmod 644 package.json + ${lib.optionalString bypassCache '' + if [ -f ${src}/package-lock.json ] + then + cp ${src}/package-lock.json . + chmod 644 package-lock.json + fi + ''} - # Go to the parent folder to make sure that all packages are pinpointed - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + # Go to the parent folder to make sure that all packages are pinpointed + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - ${prepareAndInvokeNPM {inherit packageName bypassCache reconstructLock npmFlags production;}} + ${prepareAndInvokeNPM {inherit packageName bypassCache reconstructLock npmFlags production;}} - # Expose the executables that were installed - cd .. - ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} + # Expose the executables that were installed + cd .. + ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."} - mv ${packageName} lib - ln -s $out/lib/node_modules/.bin $out/bin - ''; - } - // extraArgs); + mv ${packageName} lib + ln -s $out/lib/node_modules/.bin $out/bin + ''; + } + // extraArgs); # Builds a development shell - buildNodeShell = { - name, - packageName, - version ? null, - src, - dependencies ? [], - buildInputs ? [], - production ? true, - npmFlags ? "", - dontNpmInstall ? false, - bypassCache ? false, - reconstructLock ? false, - dontStrip ? true, - unpackPhase ? "true", - buildPhase ? "true", - ... - } @ args: let - nodeDependencies = buildNodeDependencies args; - extraArgs = removeAttrs args ["name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase"]; - in + buildNodeShell = + { name + , packageName + , version ? null + , src + , dependencies ? [ ] + , buildInputs ? [ ] + , production ? true + , npmFlags ? "" + , dontNpmInstall ? false + , bypassCache ? false + , reconstructLock ? false + , dontStrip ? true + , unpackPhase ? "true" + , buildPhase ? "true" + , ... + } @ args: + let + nodeDependencies = buildNodeDependencies args; + extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ]; + in stdenv.mkDerivation ({ - name = "node-shell-${name}${ + name = "node-shell-${name}${ if version == null then "" else "-${version}" }"; - buildInputs = [python nodejs] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; - buildCommand = '' - mkdir -p $out/bin - cat > $out/bin/shell <<EOF - #! ${stdenv.shell} -e - $shellHook - exec ${stdenv.shell} - EOF - chmod +x $out/bin/shell - ''; + buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) utillinux ++ buildInputs; + buildCommand = '' + mkdir -p $out/bin + cat > $out/bin/shell <<EOF + #! ${stdenv.shell} -e + $shellHook + exec ${stdenv.shell} + EOF + chmod +x $out/bin/shell + ''; - # Provide the dependencies in a development shell through the NODE_PATH environment variable - inherit nodeDependencies; - shellHook = lib.optionalString (dependencies != []) '' - export NODE_PATH=${nodeDependencies}/lib/node_modules - export PATH="${nodeDependencies}/bin:$PATH" - ''; - } - // extraArgs); -in { + # Provide the dependencies in a development shell through the NODE_PATH environment variable + inherit nodeDependencies; + shellHook = lib.optionalString (dependencies != [ ]) '' + export NODE_PATH=${nodeDependencies}/lib/node_modules + export PATH="${nodeDependencies}/bin:$PATH" + ''; + } + // extraArgs); +in +{ buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist; buildNodePackage = lib.makeOverridable buildNodePackage; buildNodeDependencies = lib.makeOverridable buildNodeDependencies; diff --git a/user/packages/node2nix/node-packages.nix b/user/packages/node2nix/node-packages.nix index 64748fe5..65622884 100644 --- a/user/packages/node2nix/node-packages.nix +++ b/user/packages/node2nix/node-packages.nix @@ -1,13 +1,14 @@ # This file has been generated by node2nix 1.11.1. Do not edit! -{ - nodeEnv, - fetchurl, - fetchgit, - nix-gitignore, - stdenv, - lib, - globalBuildInputs ? [], -}: let +{ nodeEnv +, fetchurl +, fetchgit +, nix-gitignore +, stdenv +, lib +, globalBuildInputs ? [ ] +, +}: +let sources = { "abort-controller-3.0.0" = { name = "abort-controller"; @@ -1063,7 +1064,8 @@ }; }; }; -in { +in +{ "pnpm-7.12" = nodeEnv.buildNodePackage { name = "pnpm"; packageName = "pnpm"; @@ -1108,10 +1110,10 @@ in { sources."glob-8.0.3" (sources."help-me-4.1.0" // { - dependencies = [ - sources."readable-stream-3.6.0" - ]; - }) + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) sources."ieee754-1.2.1" sources."inflight-1.0.6" sources."inherits-2.0.4" @@ -1190,16 +1192,16 @@ in { dependencies = [ (sources."asn1.js-5.4.1" // { - dependencies = [ - sources."bn.js-4.12.0" - ]; - }) + dependencies = [ + sources."bn.js-4.12.0" + ]; + }) (sources."assert-1.5.0" // { - dependencies = [ - sources."util-0.10.3" - ]; - }) + dependencies = [ + sources."util-0.10.3" + ]; + }) sources."base64-js-1.5.1" sources."bn.js-5.2.1" sources."brorand-1.1.0" @@ -1209,11 +1211,11 @@ in { sources."browserify-rsa-4.1.0" (sources."browserify-sign-4.2.1" // { - dependencies = [ - sources."inherits-2.0.4" - sources."readable-stream-3.6.0" - ]; - }) + dependencies = [ + sources."inherits-2.0.4" + sources."readable-stream-3.6.0" + ]; + }) sources."browserify-zlib-0.2.0" sources."buffer-4.9.2" sources."buffer-xor-1.0.3" @@ -1225,43 +1227,43 @@ in { sources."core-util-is-1.0.3" (sources."create-ecdh-4.0.4" // { - dependencies = [ - sources."bn.js-4.12.0" - ]; - }) + dependencies = [ + sources."bn.js-4.12.0" + ]; + }) sources."create-hash-1.2.0" sources."create-hmac-1.1.7" sources."crypto-browserify-3.12.0" sources."des.js-1.0.1" (sources."diffie-hellman-5.0.3" // { - dependencies = [ - sources."bn.js-4.12.0" - ]; - }) + dependencies = [ + sources."bn.js-4.12.0" + ]; + }) sources."domain-browser-1.2.0" (sources."elliptic-6.5.4" // { - dependencies = [ - sources."bn.js-4.12.0" - sources."inherits-2.0.4" - ]; - }) + dependencies = [ + sources."bn.js-4.12.0" + sources."inherits-2.0.4" + ]; + }) sources."events-3.3.0" sources."evp_bytestokey-1.0.3" (sources."hash-base-3.1.0" // { - dependencies = [ - sources."inherits-2.0.4" - sources."readable-stream-3.6.0" - ]; - }) + dependencies = [ + sources."inherits-2.0.4" + sources."readable-stream-3.6.0" + ]; + }) (sources."hash.js-1.1.7" // { - dependencies = [ - sources."inherits-2.0.4" - ]; - }) + dependencies = [ + sources."inherits-2.0.4" + ]; + }) sources."hmac-drbg-1.0.1" sources."https-browserify-1.0.0" sources."ieee754-1.2.1" @@ -1271,10 +1273,10 @@ in { sources."md5.js-1.3.5" (sources."miller-rabin-4.0.1" // { - dependencies = [ - sources."bn.js-4.12.0" - ]; - }) + dependencies = [ + sources."bn.js-4.12.0" + ]; + }) sources."minimalistic-assert-1.0.1" sources."minimalistic-crypto-utils-1.0.1" sources."node-gyp-build-4.5.0" @@ -1289,10 +1291,10 @@ in { sources."process-nextick-args-2.0.1" (sources."public-encrypt-4.0.3" // { - dependencies = [ - sources."bn.js-4.12.0" - ]; - }) + dependencies = [ + sources."bn.js-4.12.0" + ]; + }) sources."punycode-1.4.1" sources."querystring-0.2.0" sources."querystring-es3-0.2.1" @@ -1300,12 +1302,12 @@ in { sources."randomfill-1.0.4" (sources."readable-stream-2.3.7" // { - dependencies = [ - sources."inherits-2.0.4" - sources."safe-buffer-5.1.2" - sources."string_decoder-1.1.1" - ]; - }) + dependencies = [ + sources."inherits-2.0.4" + sources."safe-buffer-5.1.2" + sources."string_decoder-1.1.1" + ]; + }) sources."readline-sync-1.4.10" sources."ripemd160-2.0.2" sources."safe-buffer-5.2.1" @@ -1323,17 +1325,17 @@ in { sources."tty-browserify-0.0.0" (sources."url-0.11.0" // { - dependencies = [ - sources."punycode-1.3.2" - ]; - }) + dependencies = [ + sources."punycode-1.3.2" + ]; + }) sources."utf-8-validate-5.0.9" (sources."util-0.11.1" // { - dependencies = [ - sources."inherits-2.0.3" - ]; - }) + dependencies = [ + sources."inherits-2.0.3" + ]; + }) sources."util-deprecate-1.0.2" sources."vm-browserify-1.1.2" sources."which-1.3.1" |