GNU bug report logs - #68941
[PATCH 00/44] Node : a solution for tiny packages.

Previous Next

Package: guix-patches;

Reported by: Nicolas Graves <ngraves <at> ngraves.fr>

Date: Mon, 5 Feb 2024 23:17:02 UTC

Severity: normal

Tags: patch

Full log


Message #157 received at 68941 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Graves <ngraves <at> ngraves.fr>
To: 68941 <at> debbugs.gnu.org
Cc: ngraves <at> ngraves.fr
Subject: [PATCH v2 02/44] guix: build-system: node: Add node-is-type-object
 helper.
Date: Thu,  8 Feb 2024 01:24:25 +0100
* guix/build-system/node.scm (node-is-type-object): Add function.

Change-Id: I7027aff3b314cd999798afd8c11dc90ef7c6e43c
---
 guix/build-system/node.scm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/guix/build-system/node.scm b/guix/build-system/node.scm
index a16627e68c..3f68cd3f21 100644
--- a/guix/build-system/node.scm
+++ b/guix/build-system/node.scm
@@ -35,8 +35,22 @@ (define-module (guix build-system node)
             node-build
             node-build-system
 
+            node-is-type-object
             trivial-node-package))
 
+(define* (node-is-type-object type #:optional (type-exists? #t))
+  "Helper for node packages replacement.  This is actual code factorized from
+the packages it replaces, use with caution.  It doesn't apply to all
+javascript types."
+  (string-append
+   "function(value) {"
+   (if type-exists?
+       (string-append
+        "if (typeof value === '" (string-downcase type) "') {return true;} ")
+       "")
+   "if (value === null || typeof value !== 'object') {return false;}
+  return Object.prototype.toString.call(value) === '[object " type "]';}"))
+
 (define* (trivial-node-package node-name version replacement description
                                #:key (propagated-inputs '())
                                (mozilla-doclink #f)  ;maybe-string
-- 
2.41.0





This bug report was last modified 1 year and 13 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.