Skip to content

Commit

Permalink
nodePackages.uglify-js: repackage using buildNpmPackage
Browse files Browse the repository at this point in the history
  • Loading branch information
lelgenio authored and lelgenio committed Jul 1, 2024
1 parent 3881b74 commit 8659aeb
Show file tree
Hide file tree
Showing 6 changed files with 144 additions and 2 deletions.
44 changes: 44 additions & 0 deletions pkgs/by-name/ug/uglify-js/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 62 additions & 0 deletions pkgs/by-name/ug/uglify-js/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
testers,
runCommand,
writeText,
uglify-js,
}:

buildNpmPackage rec {
pname = "uglify-js";
version = "3.18.0";

src = fetchFromGitHub {
owner = "mishoo";
repo = "UglifyJS";
rev = "v${version}";
hash = "sha256-m+OEcvWEk4RX0C4re9TFZpkcBvSwl7qfIM+56t100ws=";
};

npmDepsHash = "sha256-iLWmNifHpVvFSFXkfItVpGlh6za9T9wSr1Af4CQQSGM=";

postPatch = ''
cp ${./package-lock.json} package-lock.json
'';

dontNpmBuild = true;

passthru = {
updateScript = ./update.sh;
tests = {
version = testers.testVersion { package = uglify-js; };

simple = testers.testEqualContents {
assertion = "uglify-js minifies a basic js file";
expected = writeText "expected" ''
console.log(1);
'';
actual =
runCommand "actual"
{
nativeBuildInputs = [ uglify-js ];
base = writeText "base" ''
console . log ( ( 1 ) ) ;
'';
}
''
uglifyjs $base > $out
'';
};
};
};

meta = {
homepage = "https://github.com/mishoo/UglifyJS";
description = "JavaScript parser / mangler / compressor / beautifier toolkit";
mainProgram = "uglifyjs";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ lelgenio ];
};
}
37 changes: 37 additions & 0 deletions pkgs/by-name/ug/uglify-js/update.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p ripgrep common-updater-scripts nodejs prefetch-npm-deps jq

set -xeu -o pipefail

PACKAGE_DIR="$(realpath "$(dirname "$0")")"
cd "$PACKAGE_DIR/.."
while ! test -f flake.nix; do cd .. ; done
NIXPKGS_DIR="$PWD"

version="$(
list-git-tags --url=https://github.com/mishoo/UglifyJS \
| rg '^v([\d.]+)$' -r '$1' \
| sort --version-sort \
| tail -n1
)"
update-source-version uglify-js "$version"

TMPDIR="$(mktemp -d)"
trap "rm -rf '$TMPDIR'" EXIT
cd "$TMPDIR"

src="$(nix-build --no-link "$NIXPKGS_DIR" -A uglify-js.src)"
cp $src/package*.json .

# Maybe one day upstream may ship a package-lock.json,
# until then we must generate a fresh one
test -f package-lock.json || npm install --package-lock-only
cp -v package-lock.json "$PACKAGE_DIR/package-lock.json"

prev_npm_hash=$(
nix-instantiate "$NIXPKGS_DIR" \
--eval --json -A uglify-js.npmDepsHash \
| jq -r .
)
new_npm_hash=$(prefetch-npm-deps ./package-lock.json)
sd --fixed-strings "$prev_npm_hash" "$new_npm_hash" "$PACKAGE_DIR/package.nix"
1 change: 1 addition & 0 deletions pkgs/development/node-packages/aliases.nix
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ mapAliases {
inherit (pkgs) titanium; # added 2023-08-17
triton = pkgs.triton; # Added 2023-05-06
typescript = pkgs.typescript; # Added 2023-06-21
inherit (pkgs) uglify-js; # added 2024-06-15
inherit (pkgs) ungit; # added 2023-08-20
inherit (pkgs) vim-language-server; # added 2024-06-25
inherit (pkgs) vsc-leetcode-cli; # Added 2023-08-30
Expand Down
1 change: 0 additions & 1 deletion pkgs/development/node-packages/main-programs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
remod-cli = "remod";
teck-programmer = "teck-firmware-upgrade";
typescript-language-server = "typescript-language-server";
uglify-js = "uglifyjs";
undollar = "$";
vscode-css-languageserver-bin = "css-languageserver";
vscode-html-languageserver-bin = "html-languageserver";
Expand Down
1 change: 0 additions & 1 deletion pkgs/development/node-packages/node-packages.json
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,6 @@
, "ts-node"
, "ttf2eot"
, "typescript-language-server"
, "uglify-js"
, "undollar"
, "unified-language-server"
, "vega-cli"
Expand Down

0 comments on commit 8659aeb

Please sign in to comment.