diff options
author | Nicolas Graves <ngraves@ngraves.fr> | 2025-09-11 00:39:12 +0200 |
---|---|---|
committer | Jelle Licht <jlicht@fsfe.org> | 2025-10-13 10:26:43 +0200 |
commit | 8cb9fa4757bd67adb7e2f27b0331f7f9255d5639 (patch) | |
tree | 1d11c4ecd20b0dd4fe643776fc7a3b657b622d4e | |
parent | 01b321e8894808af887f6845055afb68c959a8d0 (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.scm | 30 |
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 |