3
5
Fork 0
mirror of git://git.savannah.gnu.org/guix.git synced 2023-12-14 03:33:07 +01:00

gnu: Add node-llparse-bootstrap.

* gnu/packages/node.scm (node-llparse-bootstrap): New variable.
This commit is contained in:
Jelle Licht 2021-03-30 01:27:41 -04:00
parent 82e7f7c029
commit 91b78f371e
No known key found for this signature in database
GPG key ID: DA4597F947B41025

View file

@ -454,6 +454,62 @@ Node.js and web browsers.")
(description "This package is a frontend for the llparse compiler.")
(license license:expat)))
(define-public node-llparse-bootstrap
(package
(name "node-llparse")
(version "7.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/indutny/llparse.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"10da273iy2if88hp79cwms6c8qpsl1fkgzll6gmqyx5yxv5mkyp6"))
(modules '((guix build utils)))
(snippet
'(begin
;; Fix imports for esbuild.
;; https://github.com/evanw/esbuild/issues/477
(substitute* '("src/compiler/index.ts"
"src/implementation/c/node/base.ts"
"src/implementation/c/node/table-lookup.ts"
"src/implementation/c/compilation.ts"
"src/implementation/c/helpers/match-sequence.ts"
"src/implementation/c/code/mul-add.ts")
(("\\* as assert") "assert")
(("\\* as debugAPI") "debugAPI"))
#t))))
(build-system node-build-system)
(arguments
`(#:node ,node-bootstrap
#:tests? #f
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(let ((esbuild (string-append (assoc-ref inputs "esbuild")
"/bin/esbuild")))
(invoke esbuild
"--platform=node"
"--outfile=lib/api.js"
"--bundle"
"src/api.ts")))))))
(inputs
`(("node-debug" ,node-debug-bootstrap)
("node-llparse-frontend" ,node-llparse-frontend-bootstrap)))
(native-inputs
`(("esbuild" ,esbuild)))
(home-page "https://github.com/nodejs/llparse#readme")
(properties '((hidden? . #t)))
(synopsis "Compile incremental parsers to C code")
(description "This package offers an API for compiling an incremental
parser definition into a C output.")
(license license:expat)))
(define-public libnode
(package/inherit node
(name "libnode")