Skip to content

Commit

Permalink
refactor: run registry resolution in mkDenoDir
Browse files Browse the repository at this point in the history
  • Loading branch information
nekowinston committed Dec 18, 2023
1 parent 088124e commit 2611e2d
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 14 deletions.
11 changes: 0 additions & 11 deletions nix/hooks/deno-cache-restore-hook.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,6 @@ denoRestoreCacheHook() {
cp -Lr --reflink=auto -- "$DENO_PREFETCH_DIR" "$DENO_DIR"
chmod -R +644 -- "$DENO_DIR"

if [ -d "$DENO_DIR/npm" ]; then
echo "Resolving NPM registry.json files"
shopt -s globstar
for registryJson in "$DENO_DIR"/npm/*/**/registry/*.json; do
dir="$(dirname "$registryJson")"
echo "> resolving $dir"
jq -s 'reduce .[] as $x ({}; . * $x)' "$dir"/*.json >"$dir/../registry.json"
done
echo "Finished resolving NPM registry.json files"
fi

echo "Finished denoRestoreCacheHook"
}

Expand Down
27 changes: 24 additions & 3 deletions nix/mkDenoDir.nix
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
{
fetchurl,
jq,
lib,
linkFarm,
writeText,
fetchurl,
runCommand,
symlinkJoin,
writeText,
}: {
lockFile,
npmRegistryUrl ? "https://registry.npmjs.org",
Expand Down Expand Up @@ -89,4 +91,23 @@
) (denoLock.packages.npm or {})
);
in
linkFarm "deno_prefetch" (npmDeps // remoteDeps)
symlinkJoin {
name = "deno_dir";
paths = [(linkFarm "deno_prefetch" (npmDeps // remoteDeps))];
propagatedBuildInputs = [jq];
postBuild = ''
if [ -d "$out/npm" ]; then
echo "deno_dir: Resolving NPM registry.json files"
shopt -s globstar
for registryJson in "$out/npm"/*/**/registry/*.json; do
dir="$(dirname "$registryJson")"
echo "> resolving $dir"
jq -s 'reduce .[] as $x ({}; . * $x)' "$dir"/*.json >"$dir/../registry.json"
done
rm -rf "$out/npm"/*/**/registry
echo "deno_dir: Finished resolving NPM registry.json files"
fi
'';
}

0 comments on commit 2611e2d

Please sign in to comment.