summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorDaniel Khodabakhsh <d@niel.khodabakh.sh>2025-06-23 15:46:59 +0200
committerJelle Licht <jlicht@fsfe.org>2025-06-23 16:08:22 +0200
commit6158e7872cf1bfc77b3874430375e94a7ebae0c2 (patch)
tree1476102998c552ce6dc5c148dc2dd4364b125d9b /gnu
parent0a07c7310eff1eaa8ace4dbaf732534a03f30865 (diff)
gnu: Add node-esbuild.
* gnu/packages/web.scm (node-esbuild): New variable. Change-Id: I9538646b7ea0fa2b88a1844a09e696676552c06b
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/web.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 74bdc657fa5..3a8cc0b3aee 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -73,6 +73,7 @@
;;; Copyright © 2025 Junker <dk@junkeria.club>"
;;; Copyright © 2025 Jake Forster <jakecameron.forster@gmail.com>
;;; Copyright © 2025 Remco van 't Veer <remco@remworks.net>"
+;;; Copyright © 2025 Daniel Khodabakhsh <d@niel.khodabakh.sh>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -107,6 +108,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
+ #:use-module (guix build-system node)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
@@ -2284,6 +2286,54 @@ directions.")
(native-inputs
(list go-github-com-kylelemons-godebug node-lts))))
+(define-public node-esbuild
+ (package
+ (name "node-esbuild")
+ (version (package-version esbuild))
+ (source
+ (origin
+ (inherit (package-source esbuild))
+ (file-name (git-file-name name version))
+ (snippet #f)
+ (modules '())))
+ (build-system node-build-system)
+ (inputs (list esbuild))
+ (arguments (list
+ #:tests? #f
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir (lambda _
+ (chdir "npm/esbuild")))
+ (add-before 'patch-dependencies 'modify-package (lambda _
+ (modify-json
+ (delete-fields '("optionalDependencies" "scripts")))
+ (substitute* "../../lib/npm/node-platform.ts"
+ (("^export var ESBUILD_BINARY_PATH:.+$")
+ (string-append "export var ESBUILD_BINARY_PATH: string"
+ " = process.env.ESBUILD_BINARY_PATH"
+ " || ESBUILD_BINARY_PATH"
+ " || path.join(__dirname, '..', 'bin', 'esbuild')")))))
+ (replace 'build (lambda* (#:key inputs #:allow-other-keys)
+ ; From scripts/esbuild.js
+ (invoke
+ "esbuild"
+ "../../lib/npm/node.ts"
+ "--outfile=lib/main.js"
+ "--bundle"
+ "--target=node10"
+ "--define:WASM=false"
+ (string-append "--define:ESBUILD_VERSION=\"" #$version "\"")
+ "--external:esbuild"
+ "--platform=node"
+ "--log-level=warning")
+ (copy-file "../../lib/shared/types.ts" "lib/main.d.ts")
+ (install-file
+ (string-append (assoc-ref inputs "esbuild") "/bin/esbuild")
+ "bin"))))))
+ (home-page (package-home-page esbuild))
+ (synopsis "Node module of ESBuild")
+ (description (package-description esbuild))
+ (license (package-license esbuild))))
+
(define-public wwwoffle
(package
(name "wwwoffle")