diff --git a/pkgs/development/tools/prettierd/default.nix b/pkgs/development/tools/prettierd/default.nix new file mode 100644 index 000000000000..400639a543d2 --- /dev/null +++ b/pkgs/development/tools/prettierd/default.nix @@ -0,0 +1,51 @@ +{ lib +, mkYarnPackage +, fetchFromGitHub +, makeWrapper +, nodejs +, fetchYarnDeps +, +}: +mkYarnPackage rec { + pname = "prettierd"; + version = "0.23.4"; + + src = fetchFromGitHub { + owner = "fsouza"; + repo = "prettierd"; + rev = "v${version}"; + hash = "sha256-GTukjkA/53N9ICdfCJr5HAqhdL5T0pth6zAk8Fu/cis="; + }; + + offlineCache = fetchYarnDeps { + yarnLock = src + "/yarn.lock"; + hash = "sha256-32wMwkVgO5DQuROWnujVGNeCAUq1D6jJurecsD2ROOU="; + }; + + packageJSON = ./package.json; + + nativeBuildInputs = [ makeWrapper ]; + + buildPhase = '' + runHook preBuild + export HOME=$(mktemp -d) + yarn --offline build + runHook postBuild + ''; + + # prettierd needs to be wrapped with nodejs so that it can be executed + postInstall = '' + wrapProgram "$out/bin/prettierd" --prefix PATH : "${nodejs}/bin" + ''; + + doDist = false; + + meta = with lib; { + description = "Prettier, as a daemon, for improved formatting speed"; + homepage = "https://github.com/fsouza/prettierd"; + license = licenses.isc; + changelog = "https://github.com/fsouza/prettierd/blob/${src.rev}/CHANGELOG.md"; + platforms = platforms.linux; + maintainers = with maintainers; [ NotAShelf n3oney ]; + }; +} diff --git a/pkgs/development/tools/prettierd/package.json b/pkgs/development/tools/prettierd/package.json new file mode 100644 index 000000000000..8769bac80c7b --- /dev/null +++ b/pkgs/development/tools/prettierd/package.json @@ -0,0 +1,46 @@ +{ + "name": "@fsouza/prettierd", + "version": "0.23.4", + "description": "prettier, as a daemon", + "bin": { + "prettierd": "./bin/prettierd" + }, + "scripts": { + "prepare": "yarn build", + "build": "tsc -b", + "run": "node bin/prettierd", + "start": "node bin/prettierd start", + "prettier:check": "prettier --check .", + "prettier:fix": "prettier --write ." + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fsouza/prettierd.git" + }, + "author": "Francisco Souza", + "license": "ISC", + "bugs": { + "url": "https://github.com/fsouza/prettierd/issues" + }, + "homepage": "https://github.com/fsouza/prettierd", + "devDependencies": { + "@types/node": "^20.2.5", + "@types/prettier": "^2.7.2", + "typescript": "^5.0.4" + }, + "dependencies": { + "core_d": "^5.0.1", + "nanolru": "^1.0.0", + "prettier": "^2.8.8" + }, + "files": [ + "bin", + "dist", + "LICENSE", + "README.md" + ], + "optionalDependencies": { + "@babel/parser": "^7.22.3", + "@typescript-eslint/typescript-estree": "^5.59.7" + } +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 77742af33997..53a734fcf5b0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11576,6 +11576,8 @@ with pkgs; pretender = callPackage ../tools/security/pretender { }; + prettierd = callPackage ../development/tools/prettierd { }; + pretty-simple = callPackage ../development/tools/pretty-simple { }; prettyping = callPackage ../tools/networking/prettyping { };