-
Notifications
You must be signed in to change notification settings - Fork 0
/
lib.nix
46 lines (37 loc) · 1.18 KB
/
lib.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{ pkgs }:
with builtins;
with pkgs.lib;
let
componentsPackageJson = fromJSON (builtins.readFile ./packages/components/package.json);
reactPackageJson = fromJSON (builtins.readFile ./packages/react/package.json);
in
{
# builds an arc package
buildArcPackage =
attrs @
{ name
, buildPhase
, installPhase
, ...
}:
with pkgs.lib;
with pkgs.lib.sources;
pkgs.buildNpmPackage {
inherit buildPhase installPhase;
pname = "arc-web-${name}";
version =
if componentsPackageJson.version == reactPackageJson.version
then componentsPackageJson.version
else throw "version mismatch";
# this workspace is a monorepo and all dependencies
# are resolved via the workspace root package.json
src = cleanSource ./.;
npmDepsHash = "sha256-uE8cRyMuYQgldz+lgnRv9tyhiLBdBnwviDrqycrH16s=";
# dont run the build scripts when rebuilding
# npm dependencies as node-keytar will fail
npmRebuildFlags = [ "--ignore-scripts" ];
# ignore legacy peer dependencies
# due to peer conflics in npm deps
npmInstallFlags = [ "--legacy-peer-deps" ];
};
}