Monorepo for Tangled
tangled.org
1# inspired by https://github.com/NixOS/nixpkgs/blob/333bfb7c258fab089a834555ea1c435674c459b4/pkgs/by-name/ga/gatsby-cli/package.nix
2{
3 lib,
4 stdenv,
5 fetchFromGitHub,
6 fetchYarnDeps,
7 yarnConfigHook,
8 yarnBuildHook,
9 nodejs,
10 makeBinaryWrapper,
11}:
12stdenv.mkDerivation (finalAttrs: {
13 pname = "did-method-plc";
14 version = "0.0.1";
15
16 src = fetchFromGitHub {
17 owner = "did-method-plc";
18 repo = "did-method-plc";
19 rev = "158ba5535ac3da4fd4309954bde41deab0b45972";
20 sha256 = "sha256-O5smubbrnTDMCvL6iRyMXkddr5G7YHxkQRVMRULHanQ=";
21 };
22 postPatch = ''
23 # remove dd-trace dependency
24 sed -i '3d' packages/server/service/index.js
25 '';
26
27 yarnOfflineCache = fetchYarnDeps {
28 yarnLock = finalAttrs.src + "/yarn.lock";
29 hash = "sha256-g8GzaAbWSnWwbQjJMV2DL5/ZlWCCX0sRkjjvX3tqU4Y=";
30 };
31
32 nativeBuildInputs = [
33 yarnConfigHook
34 yarnBuildHook
35 nodejs
36 makeBinaryWrapper
37 ];
38 yarnBuildScript = "lerna";
39 yarnBuildFlags = [
40 "run"
41 "build"
42 "--scope"
43 "@did-plc/server"
44 "--include-dependencies"
45 ];
46
47 installPhase = ''
48 runHook preInstall
49
50 mkdir -p $out/lib/node_modules/
51 mv packages/ $out/lib/packages/
52 mv node_modules/* $out/lib/node_modules/
53
54 makeWrapper ${lib.getExe nodejs} $out/bin/plc \
55 --add-flags $out/lib/packages/server/service/index.js \
56 --add-flags --enable-source-maps \
57 --set NODE_PATH $out/lib/node_modules
58
59 runHook postInstall
60 '';
61
62 meta = {
63 mainProgram = "plc";
64 };
65})