summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Graves <ngraves@ngraves.fr>2025-09-11 00:39:12 +0200
committerJelle Licht <jlicht@fsfe.org>2025-10-13 10:26:43 +0200
commit8cb9fa4757bd67adb7e2f27b0331f7f9255d5639 (patch)
tree1d11c4ecd20b0dd4fe643776fc7a3b657b622d4e
parent01b321e8894808af887f6845055afb68c959a8d0 (diff)
build-system: node: Refresh delete-dependencies procedure.
* guix/build/node-build-system.scm (delete-dependencies): Use map and match-lambda to improve readability of the phase. Change-Id: I6d9275c7eea1514f103988215916d478a68ea466 Signed-off-by: Jelle Licht <jlicht@fsfe.org>
-rw-r--r--guix/build/node-build-system.scm30
1 files changed, 13 insertions, 17 deletions
diff --git a/guix/build/node-build-system.scm b/guix/build/node-build-system.scm
index b52fbe847a..0cd05fc0e8 100644
--- a/guix/build/node-build-system.scm
+++ b/guix/build/node-build-system.scm
@@ -92,23 +92,19 @@ listed in 'dependencies-to-remove', a list of strings naming npm packages.
To prevent the deleted dependencies from being reintroduced, use this function
only after the 'patch-dependencies' phase."
- (lambda (pkg-meta)
- (fold
- (lambda (dependency-key pkg-meta)
- (alist-update
- pkg-meta
- dependency-key
- (lambda (dependencies)
- (remove
- (lambda (dependency)
- (member (car dependency) dependencies-to-remove))
- dependencies))))
- pkg-meta
- (list
- "devDependencies"
- "dependencies"
- "peerDependencies"
- "optionalDependencies"))))
+ (let ((predicate (lambda (dependency)
+ (member (car dependency) dependencies-to-remove)))
+ (dependency? (cut member <> (list "devDependencies"
+ "dependencies"
+ "peerDependencies"
+ "optionalDependencies"))))
+ (lambda (pkg-meta)
+ (map (match-lambda
+ (((? dependency? key) . dependencies)
+ (cons key (remove predicate dependencies)))
+ (otherwise
+ otherwise))
+ pkg-meta))))
(define* (modify-json-fields
fields