diff options
Diffstat (limited to '')
-rw-r--r-- | front/default.nix | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/front/default.nix b/front/default.nix new file mode 100644 index 0000000..440fa00 --- /dev/null +++ b/front/default.nix @@ -0,0 +1,62 @@ +{ stdenv +, fetchFromGitHub +, makeWrapper +, workadventure +, yarn2nix-moretea +, lib +, replace +, environment ? {} +, ... }: + +let + envIf = name: script: if environment ? name then script else ""; +in +yarn2nix-moretea.mkYarnPackage + (rec { + pname = "workadventurefront"; + version = "unstable"; + + # TODO: perhaps move this into its own file, to make it easily + # replacable across all workadventure packages. + src = fetchFromGitHub { + owner = "thecodingmachine"; + repo = "workadventure"; + rev = "6e9c71598004dc9cbab9418efb3c0ac892da7ca2"; + sha256 = "0rvra0dy631al4aylacyqldkyd6biawz2shsikgcy30nv5lzc78c"; + } + "/front"; + + # NOTE: this is optional and generated dynamically if omitted + yarnNix = ./yarn.nix; + + nativeBuildInputs = [ + makeWrapper + # includes `replace-literal` for patching. This command is + # actually the basis for `substituteInPlace`! + replace + ]; + + dontStrip = true; + + patchPhase = '' + # remove google tag manager + replace-literal -efsw '<script async src="https://www.googletagmanager.com/gtag/js?id=UA-10196481-11"></script>' ' '; + # remove quill js cdn + replace-literal -efsr -x .ts 'fileref.setAttribute("href", "https://cdn.quilljs.com/1.3.7/quill.snow.css");' ' '; + replace-literal -efsr '"@types/quill": "^1.3.7",' ' '; + replace-literal -efsr '"quill": "^1.3.7",' ' '; + '' + + envIf "RESOLUTION" ''replace-literal -efsr -x .ts 'const RESOLUTION = 2' 'const RESOLUTION = ${environment.RESOLUTION}' '' + + envIf "ZOOM_LEVEL" ''replace-literal -efsr -x .ts 'const ZOOM_LEVEL = 1' 'const ZOOM_LEVEL = ${environment.ZOOM_LEVEL}' '' + + envIf "POSITION_DELAY" ''replace-literal -efsr -x .ts 'const POSITION_DELAY = 200' 'const POSITION_DELAY = ${environment.POSITION_DELAY}' '' + + envIf "MAX_EXTRAPOLATION_TIME" ''replace-literal -efsr -x .ts 'const MAX_EXTRAPOLATION_TIME = 100' 'const MAX_EXTRAPOLATION_TIME = ${environment.MAX_EXTRAPOLATION_TIME}' ''; + + buildPhase = '' + mkdir -p $out + ln -s ${workadventure.messages.outPath}/generated deps/${pname}/src/Messages/generated + HOME=$TMPDIR yarn --offline run build + cp -r deps/${pname}/dist/ $out/ + ''; + + distPhase = ":"; + installPhase = ":"; + } // environment) |