Files
flakelight/builtinModules/builtinFormatters.nix
Archit Gupta 1af817b598 Add workaround for prettier bug
prettier creates a node_modules folder when formatting some files, which
it should not as cache is not enabled. Setting the cache to a file works
around this.

See https://github.com/prettier/prettier/issues/13032
2024-11-27 00:43:44 -08:00

35 lines
943 B
Nix

# flakelight -- Framework for simplifying flake setup
# Copyright (C) 2023 Archit Gupta <archit@accelbread.com>
# SPDX-License-Identifier: MIT
{ config, lib, ... }:
let
inherit (lib) mkDefault mkEnableOption mkIf;
in
{
options.flakelight.builtinFormatters =
mkEnableOption "default formatters" //
{ default = config.formatter == null; };
config = mkIf config.flakelight.builtinFormatters {
devShell.packages = pkgs: [
pkgs.nixpkgs-fmt
pkgs.nodePackages.prettier
];
formatters = pkgs:
let
nixpkgs-fmt = "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt";
prettier = "${pkgs.nodePackages.prettier}/bin/prettier --write"
+ " --cache-location=.prettiercache";
in
{
"*.nix" = mkDefault nixpkgs-fmt;
"*.md" = mkDefault prettier;
"*.json" = mkDefault prettier;
"*.yaml" = mkDefault prettier;
"*.yml" = mkDefault prettier;
};
};
}