Skip to content

Commit 52845dc

Browse files
committed
Upgrade to Node v16
* Updated pkgs.nix to a5774e76bb8c3145eac524be62375c937143b80c * Updated node2nix to 1.11.0 and loading directly from GitHub * Updated pkg to 5.6.0 and using pkg-fetch 3.3 base binaries * Updated to TypeScript 4.5+ and eslint to ^5.0.0 * Updated @types/node to 16.11.7 * Updated node-gyp-build to 4.4.0 * Updated typedoc to 0.22.15, the .nojekyll generation is automatic * Added dist/**/*.json to pkg assets * Changed to target ES2021 as node 16 supports it * Bin executable duct-tape in default.nix because node2nix no longer generates bin executables
1 parent 5299b37 commit 52845dc

File tree

10 files changed

+7697
-279
lines changed

10 files changed

+7697
-279
lines changed

.eslintrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
],
2020
"parserOptions": {
2121
"sourceType": "module",
22-
"ecmaVersion": 2020
22+
"ecmaVersion": 2021
2323
},
2424
"rules": {
2525
"linebreak-style": ["error", "unix"],

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Note that JavaScript libraries are not packaged in Nix. Only JavaScript applicat
99
Building the package:
1010

1111
```sh
12-
nix-build -E '(import ./pkgs.nix).callPackage ./default.nix {}'
12+
nix-build -E '(import ./pkgs.nix {}).callPackage ./default.nix {}'
1313
```
1414

1515
Building the releases:

default.nix

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{ runCommandNoCC
22
, callPackage
3+
, jq
34
}:
45

56
let
@@ -11,20 +12,40 @@ let
1112
packageName = utils.node2nixDev.packageName;
1213
}
1314
''
14-
mkdir -p $out/lib/node_modules/${utils.node2nixDev.packageName}
15+
mkdir -p "$out/lib/node_modules/${utils.node2nixDev.packageName}"
1516
# copy the package.json
16-
cp ${utils.node2nixDev}/lib/node_modules/${utils.node2nixDev.packageName}/package.json $out/lib/node_modules/${utils.node2nixDev.packageName}/
17+
cp \
18+
"${utils.node2nixDev}/lib/node_modules/${utils.node2nixDev.packageName}/package.json" \
19+
"$out/lib/node_modules/${utils.node2nixDev.packageName}/"
1720
# copy the dist
18-
cp -r ${utils.node2nixDev}/lib/node_modules/${utils.node2nixDev.packageName}/dist $out/lib/node_modules/${utils.node2nixDev.packageName}/
21+
cp -r \
22+
"${utils.node2nixDev}/lib/node_modules/${utils.node2nixDev.packageName}/dist" \
23+
"$out/lib/node_modules/${utils.node2nixDev.packageName}/"
1924
# copy over the production dependencies
2025
if [ -d "${utils.node2nixProd}/lib/node_modules" ]; then
21-
cp -r ${utils.node2nixProd}/lib/node_modules $out/lib/node_modules/${utils.node2nixDev.packageName}/
26+
cp -r \
27+
"${utils.node2nixProd}/lib/node_modules" \
28+
"$out/lib/node_modules/${utils.node2nixDev.packageName}/"
2229
fi
23-
# create symlink to the deployed executable folder, if applicable
24-
if [ -d "${utils.node2nixDev}/lib/node_modules/.bin" ]; then
25-
cp -r ${utils.node2nixDev}/lib/node_modules/.bin $out/lib/node_modules/
26-
ln -s $out/lib/node_modules/.bin $out/bin
30+
# symlink bin executables
31+
if [ \
32+
"$(${jq}/bin/jq 'has("bin")' "$out/lib/node_modules/${utils.node2nixDev.packageName}/package.json")" \
33+
== \
34+
"true" \
35+
]; then
36+
mkdir -p "$out/bin"
37+
while IFS= read -r bin_name && IFS= read -r bin_path; do
38+
# make files executable
39+
chmod a+x "$out/lib/node_modules/${utils.node2nixDev.packageName}/$bin_path"
40+
# create the symlink
41+
ln -s \
42+
"../lib/node_modules/${utils.node2nixDev.packageName}/$bin_path" \
43+
"$out/bin/$bin_name"
44+
done < <(
45+
${jq}/bin/jq -r 'select(.bin != null) | .bin | to_entries[] | (.key, .value)' \
46+
"$out/lib/node_modules/${utils.node2nixDev.packageName}/package.json"
47+
)
2748
fi
28-
'';
49+
'';
2950
in
3051
drv

0 commit comments

Comments
 (0)