svelte: isolate prettier formatter wiring and fix plugin runtime packaging

This commit is contained in:
suiiii 2026-04-12 21:06:23 +02:00
commit a6d2346e34
No known key found for this signature in database
GPG key ID: 2F1ACB1232E35B05
3 changed files with 43 additions and 9 deletions

View file

@ -1,6 +1,8 @@
{
buildNpmPackage,
fetchFromGitHub,
makeWrapper,
nodejs,
pins,
}: let
pin = pins.prettier-plugin-svelte;
@ -9,6 +11,8 @@ in
pname = "prettier-plugin-svelte";
version = pin.version or pin.revision;
meta.mainProgram = "prettier";
src = fetchFromGitHub {
inherit (pin.repository) owner repo;
rev = finalAttrs.version;
@ -16,4 +20,21 @@ in
};
npmDepsHash = "sha256-XVyLW0XDCvZCZxu8g1fP7fRfeU3Hz81o5FCi/i4BKQw=";
nativeBuildInputs = [makeWrapper];
installPhase = ''
runHook preInstall
mkdir -p "$out/bin" "$out/lib"
cp -r node_modules "$out/lib/"
mkdir -p "$out/lib/node_modules/prettier-plugin-svelte"
cp -r browser.js index.d.ts package.json plugin.js plugin.js.map "$out/lib/node_modules/prettier-plugin-svelte/"
makeWrapper "${nodejs}/bin/node" "$out/bin/prettier" \
--add-flags "$out/lib/node_modules/prettier/bin/prettier.cjs" \
--set NODE_PATH "$out/lib/node_modules"
runHook postInstall
'';
})