svelte-language-server: cleanup (#459908)

This commit is contained in:
Jo
2025-11-10 20:59:24 +00:00
committed by GitHub
3 changed files with 59 additions and 2058 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,31 +1,73 @@
{
lib,
buildNpmPackage,
fetchurl,
stdenv,
fetchFromGitHub,
pnpm,
nodejs,
makeBinaryWrapper,
nix-update-script,
}:
let
version = "0.17.21";
in
buildNpmPackage {
stdenv.mkDerivation (finalAttrs: {
pname = "svelte-language-server";
inherit version;
version = "0.17.21";
src = fetchurl {
url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-${version}.tgz";
hash = "sha256-zRUeAocuEyoaBUrCDkqxJhMY7ryv9y7hYQC5/CsL2NM=";
src = fetchFromGitHub {
owner = "sveltejs";
repo = "language-tools";
tag = "svelte-language-server@${finalAttrs.version}";
hash = "sha256-HNd4M7bFTN0oFdO44w8Rgz45mDLrJ/ksZKB0iPw6t1s=";
};
npmDepsHash = "sha256-0nad0gdQhl3nwHbmDyLCfnIfgn4ixBbZn/oy3THDniw=";
pnpmWorkspaces = [ "svelte-language-server..." ];
postPatch = ''
ln -s ${./package-lock.json} package-lock.json
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs)
pname
version
src
pnpmWorkspaces
;
fetcherVersion = 2;
hash = "sha256-J279yrHRyG6QyUedXmYwv6Kcuz/9pGwvu6dUELIFeu8=";
};
nativeBuildInputs = [
nodejs
pnpm.configHook
makeBinaryWrapper
];
buildPhase = ''
runHook preBuild
pnpm run --filter=svelte-language-server... build
runHook postBuild
'';
dontNpmBuild = true;
installPhase = ''
runHook preInstall
npmFlags = [ "--legacy-peer-deps" ];
pnpm install --filter=svelte-language-server... --prod --frozen-lockfile --offline --force --ignore-scripts
mkdir -p $out/lib/node_modules/svelte-language-server/
mkdir -p $out/bin
passthru.updateScript = ./update.sh;
mv {packages,node_modules} $out/lib/node_modules/svelte-language-server/
makeWrapper ${lib.getExe nodejs} $out/bin/svelteserver \
--add-flags "$out/lib/node_modules/svelte-language-server/packages/language-server/bin/server.js" \
--set NODE_PATH "$out/lib/node_modules/svelte-language-server/packages/language-server/node_modules/"
runHook postInstall
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--use-github-releases"
"--version-regex"
"svelte-language-server@(.*)"
];
};
meta = {
description = "Language server (implementing the language server protocol) for Svelte";
@@ -35,4 +77,4 @@ buildNpmPackage {
mainProgram = "svelteserver";
maintainers = [ ];
};
}
})

View File

@@ -1,30 +0,0 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p gnused nix nodejs prefetch-npm-deps wget
set -euo pipefail
pushd "$(dirname "${BASH_SOURCE[0]}")"
version=$(npm view svelte-language-server version)
tarball="svelte-language-server-$version.tgz"
url="https://registry.npmjs.org/svelte-language-server/-/$tarball"
if [[ "$UPDATE_NIX_OLD_VERSION" == "$version" ]]; then
echo "Already up to date!"
exit 0
fi
sed -i 's#version = "[^"]*"#version = "'"$version"'"#' package.nix
sha256=$(nix-prefetch-url "$url")
src_hash=$(nix-hash --type sha256 --to-sri "$sha256")
sed -i 's#hash = "[^"]*"#hash = "'"$src_hash"'"#' package.nix
rm -f package-lock.json package.json *.tgz
wget "$url"
tar xf "$tarball" --strip-components=1 package/package.json
npm i --package-lock-only
npm_hash=$(prefetch-npm-deps package-lock.json)
sed -i 's#npmDepsHash = "[^"]*"#npmDepsHash = "'"$npm_hash"'"#' package.nix
rm -f package.json *.tgz
popd