Subject: [bug#47682] [PATCH v2] gnu: Add node-once.

From: Ron Nazarov <[email-masked]>
Date: Fri, 9 Apr 2021 23:10:18 +0100

* gnu/packages/node-xyz.scm (node-once): New variable.
---
 gnu/packages/node-xyz.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm
index f401380310..ee0b5e62d9 100644
--- a/gnu/packages/node-xyz.scm
+++ b/gnu/packages/node-xyz.scm
@@ -298,3 +298,33 @@ function with browser support.")
     (synopsis "Callback wrapping utility")
     (description "@code{wrappy} is a utility for Node.js to wrap callbacks.")
     (license license:isc)))
+
+(define-public node-once
+  (package
+    (name "node-once")
+    (version "1.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/isaacs/once")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1z8dcbf28dqdcp4wb0c53wrs90a07nkrax2c9kk26dsk1dhrnxav"))))
+    (build-system node-build-system)
+    (arguments
+     '(#:tests? #f ; FIXME: Tests depend on node-tap
+       #:phases
+       (modify-phases %standard-phases
+         ;; If configure existed it would fail due to tap being missing,
+         ;; as we do not have tap packaged yet, tap is used for tests.
+         ;; This package still works as a dependency of glob and inflight,
+         ;; which are being packaged.
+         (delete 'configure))))
+    (inputs
+     `(("node-wrappy" ,node-wrappy)))
+    (home-page "https://github.com/isaacs/once")
+    (synopsis "Node.js module to only run a function once")
+    (description "@code{once} is a Node.js module to only run a function once.")
+    (license license:isc)))
-- 
2.30.2