Просмотр исходного кода

Fix build (fallback to Node 14 because for some reason Node2Nix 16 does not install dependencies of dependencies).

Joeri Exelmans 2 лет назад
Родитель
Сommit
507fb3838c
4 измененных файлов с 17 добавлено и 6 удалено
  1. 6 4
      nix/default.nix
  2. 1 1
      nix/npm_deps/default.nix
  3. 9 0
      src/collab/common/uuidv4.js
  4. 1 1
      src/collab/server/run_server.js

+ 6 - 4
nix/default.nix

@@ -17,6 +17,10 @@ let
     rev = "8c1d7e435f7d1e412436800de3a7f0aa0c640992";
   }) {};
 
+
+  commonSrc = ../src/collab/common;
+  serverSrc = ../src/collab/server;
+
   node = pkgs.nodejs-slim-18_x;
   #node = pkgs.nodejs-slim;
 
@@ -65,13 +69,11 @@ in rec {
     name = "drawio-server";
     system = builtins.currentSystem;
 
-    inherit node staticWebApp;
+    inherit node staticWebApp commonSrc serverSrc;
 
     coreutils = pkgs.coreutils;
 
-    commonSrc = ../src/collab/common;
-    serverSrc = ../src/collab/server;
-    node_path = "${npmDeps.nodeDependencies}/lib/node_modules";
+    node_path = "${npmDeps.nodeDependencies}/lib/node_modules:${commonSrc}";
 
     builder = "${pkgs.bash}/bin/bash";
     args = [ ./server-builder.sh ];

+ 1 - 1
nix/npm_deps/default.nix

@@ -2,7 +2,7 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-16_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}:
 
 let
   nodeEnv = import ./node-env.nix {

+ 9 - 0
src/collab/common/uuidv4.js

@@ -0,0 +1,9 @@
+const crypto = require("crypto");
+
+module.exports = function() {
+  return (crypto.randomBytes(4).toString('hex')
+    + '-' + crypto.randomBytes(2).toString('hex')
+    + '-' + crypto.randomBytes(2).toString('hex')
+    + '-' + crypto.randomBytes(2).toString('hex')
+    + '-' + crypto.randomBytes(6).toString('hex'));
+};

+ 1 - 1
src/collab/server/run_server.js

@@ -58,7 +58,7 @@ async function startServer() {
   }
 
   const { WebSocketServer } = require('ws');
-  const uuidv4 = require("../common/uuidv4.js");
+  const uuidv4 = require("uuidv4.js");
 
   function asyncSleep(ms) {
     return new Promise(resolve => setTimeout(resolve, ms));