From 66c5842b76ec4b956ce02f2a5d9a73263dd3e4ea Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.dev>
Date: Tue, 18 Mar 2025 16:45:07 +0000
Subject: [PATCH] Move npm configuration

---
 nix/home/opdavies/default.nix      |  1 +
 nix/home/opdavies/modules/node.nix | 17 +++++++++++++++++
 2 files changed, 18 insertions(+)
 create mode 100644 nix/home/opdavies/modules/node.nix

diff --git a/nix/home/opdavies/default.nix b/nix/home/opdavies/default.nix
index a2210018..0be36e2b 100644
--- a/nix/home/opdavies/default.nix
+++ b/nix/home/opdavies/default.nix
@@ -48,6 +48,7 @@ in
   imports =
     [
       ../common
+      ./modules/node.nix
       shared-config
     ]
     ++ pkgs.lib.optionals (!headless) [
diff --git a/nix/home/opdavies/modules/node.nix b/nix/home/opdavies/modules/node.nix
new file mode 100644
index 00000000..b0aae355
--- /dev/null
+++ b/nix/home/opdavies/modules/node.nix
@@ -0,0 +1,17 @@
+{ config, ... }:
+
+let
+  inherit (config.xdg) configHome dataHome stateHome;
+in
+{
+  xdg.configFile."${config.home.sessionVariables.NPM_CONFIG_USERCONFIG}".text = ''
+    cache=${configHome}/npm
+    init-module=${configHome}/npm/config/npm-init.js
+    logs-dir=${stateHome}/npm/logs
+    prefix=${dataHome}/npm
+  '';
+
+  home.sessionVariables = {
+    NPM_CONFIG_USERCONFIG = "${configHome}/npm/npmrc";
+  };
+}