about summary refs log tree commit diff
path: root/pkgs/by-name/sp/spectral-language-server/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/sp/spectral-language-server/package.nix')
-rw-r--r--pkgs/by-name/sp/spectral-language-server/package.nix19
1 files changed, 7 insertions, 12 deletions
diff --git a/pkgs/by-name/sp/spectral-language-server/package.nix b/pkgs/by-name/sp/spectral-language-server/package.nix
index 8193ff3acebd0..3a6ac22184ef2 100644
--- a/pkgs/by-name/sp/spectral-language-server/package.nix
+++ b/pkgs/by-name/sp/spectral-language-server/package.nix
@@ -1,7 +1,8 @@
 { lib
 , buildNpmPackage
-, mkYarnPackage
+, stdenv
 , fetchYarnDeps
+, yarnConfigHook
 , fetchFromGitHub
 , typescript
 , jq
@@ -10,33 +11,29 @@
 let
   # Instead of the build script that spectral-language-server provides (ref: https://github.com/luizcorreia/spectral-language-server/blob/master/script/vscode-spectral-build.sh), we build vscode-spectral manually.
   # This is because the script must go through the network and will not work under the Nix sandbox environment.
-  vscodeSpectral = mkYarnPackage rec {
+  vscodeSpectral = stdenv.mkDerivation (finalAttrs: {
     pname = "vscode-spectral";
     version = "1.1.2";
 
     src = fetchFromGitHub {
       owner = "stoplightio";
       repo = "vscode-spectral";
-      rev = "v${version}";
+      rev = "v${finalAttrs.version}";
       hash = "sha256-TWy+bC6qhTKDY874ORTBbvCIH8ycpmBiU8GLYxBIiAs=";
     };
 
-    packageJSON = ./package.json;
-
     offlineCache = fetchYarnDeps {
-      yarnLock = src + "/yarn.lock";
+      yarnLock = finalAttrs.src + "/yarn.lock";
       hash = "sha256-am27A9VyFoXuOlgG9mnvNqV3Q7Bi7GJzDqqVFGDVWIA=";
     };
 
-    nativeBuildInputs = [ typescript jq ];
+    nativeBuildInputs = [ typescript jq yarnConfigHook ];
 
     postPatch = ''
       cp server/tsconfig.json server/tsconfig.json.bak
       jq '.compilerOptions += {"module": "NodeNext", "moduleResolution": "NodeNext"}' server/tsconfig.json.bak > server/tsconfig.json
     '';
 
-    dontConfigure = true;
-
     buildPhase = ''
       runHook preBuild
       # FIXME: vscode-spactral depends on @rollup/pluginutils, but it may have a bug that doesn't provide the type definitions for NodeNext module resolution. (ref: https://github.com/rollup/plugins/issues/1192)
@@ -53,14 +50,12 @@ let
       runHook postInstall
     '';
 
-    doDist = false;
-
     meta = with lib; {
       homepage = "https://github.com/stoplightio/vscode-spectral";
       description = "VS Code extension bringing the awesome Spectral JSON/YAML linter with OpenAPI/AsyncAPI support";
       license = licenses.asl20;
     };
-  };
+  });
 in
 buildNpmPackage rec {
   pname = "spectral-language-server";