guix_mirror_bot pushed a commit to branch javascript-team
in repository guix.

commit 07ad3cd7915171a24899c813ff71b3b67e8a86cb
Author: Nicolas Graves <[email protected]>
AuthorDate: Sun Jul 12 00:30:18 2026 +0200

    gnu: node-llparse-frontend-bootstrap: Avoid node-build-system.
    
    * gnu/packages/node.scm (node-llparse-frontend-bootstrap)
    [name]: Add -bootstrap suffix.
    [source]: Drop snippet, move it to a phase.
    [build-system]: Switch to gnu-build-system + bootstrap-node-phases.
    [arguments]: Improve style.
    {node}: Drop it.
    {phases}: Migrate accordingly.
    [native-inputs]: Add node-bootstrap.
    
    Change-Id: I37f4c0b9ba997d21a95a9f97be3e79d6630817a0
    Signed-off-by: Jelle Licht <[email protected]>
---
 gnu/packages/node.scm | 91 +++++++++++++++++++++++++++------------------------
 1 file changed, 49 insertions(+), 42 deletions(-)

diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 68447c7e75..74fc1fa2c5 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -579,7 +579,7 @@ Node.js and web browsers.")
 
 (define-public node-llparse-frontend-bootstrap
   (package
-    (name "node-llparse-frontend")
+    (name "node-llparse-frontend-bootstrap")
     (version "3.0.0")
     (source
      (origin
@@ -589,51 +589,58 @@ Node.js and web browsers.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1rm9g4ifyip30svm5cgnf0gx7d45jgh4mpf2hkd092xhngmfvicc"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Fix imports for esbuild.
-           ;; https://github.com/evanw/esbuild/issues/477
-           (substitute* '("src/frontend.ts"
-                          "src/code/field-value.ts"
-                          "src/container/index.ts"
-                          "src/container/wrap.ts"
-                          "src/node/sequence.ts"
-                          "src/node/single.ts"
-                          "src/node/table-lookup.ts"
-                          "src/trie/index.ts")
-             (("\\* as assert") "assert")
-             (("\\* as debugAPI") "debugAPI"))
-           #t))))
-    (build-system node-build-system)
+        (base32 "1rm9g4ifyip30svm5cgnf0gx7d45jgh4mpf2hkd092xhngmfvicc"))))
+    (build-system gnu-build-system)
     (arguments
-     `(#:node ,node-bootstrap
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'patch-dependencies 'delete-dependencies
-           (lambda args
-             (modify-json (delete-dependencies
-                           `("@types/debug"
-                             "@types/mocha"
-                             "@types/node"
-                             "mocha"
-                             "ts-node"
-                             "tslint"
-                             "typescript")))))
-         (replace 'build
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((esbuild (search-input-file inputs "/bin/esbuild")))
-               (invoke esbuild
-                       "--platform=node"
-                       "--outfile=lib/frontend.js"
-                       "--bundle"
-                       "src/frontend.ts")))))))
+     (list
+      #:tests? #f
+      #:phases
+      #~(modify-phases #$bootstrap-node-phases
+          (add-after 'unpack 'fix-imports-for-esbuild
+            ;; https://github.com/evanw/esbuild/issues/477
+            (lambda _
+              (substitute* '("src/frontend.ts"
+                             "src/code/field-value.ts"
+                             "src/container/index.ts"
+                             "src/container/wrap.ts"
+                             "src/node/sequence.ts"
+                             "src/node/single.ts"
+                             "src/node/table-lookup.ts"
+                             "src/trie/index.ts")
+                (("\\* as assert") "assert")
+                (("\\* as debugAPI") "debugAPI"))))
+          (add-before 'configure 'patch-dependencies
+            (lambda* (#:key inputs #:allow-other-keys)
+              #$(delete-dependencies* (list "@types/debug"
+                                            "@types/mocha"
+                                            "@types/node"
+                                            "mocha"
+                                            "ts-node"
+                                            "tslint"
+                                            "typescript"))
+              ;; Resolve dependencies manually.
+              (let* ((debug-path "lib/node_modules/debug")
+                     (debug (search-input-directory inputs debug-path))
+                     (builder-path "lib/node_modules/llparse-builder")
+                     (builder (search-input-directory inputs builder-path)))
+                (substitute* "package.json"
+                  (("\"debug\": \".*")
+                   (format #f "\"debug\": \"file://~a\"," debug))
+                  (("\"llparse-builder\": \".*")
+                   (format #f "\"llparse-builder\": \"file://~a\""
+                           builder))))))
+          (add-before 'repack 'build
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((esbuild (search-input-file inputs "/bin/esbuild")))
+                (invoke esbuild
+                        "--platform=node"
+                        "--outfile=lib/frontend.js"
+                        "--bundle"
+                        "src/frontend.ts")))))))
     (inputs
      (list node-debug-bootstrap node-llparse-builder-bootstrap))
     (native-inputs
-     (list esbuild))
+     (list esbuild node-bootstrap))
     (home-page "https://github.com/nodejs/llparse-frontend#readme";)
     (properties '((hidden? . #t)))
     (synopsis "Frontend for the llparse compiler")

Reply via email to