From 2371b4502852b11dfd11ddd48cb9a11a2f66a89e Mon Sep 17 00:00:00 2001 From: Daniel Khodabakhsh Date: Tue, 24 Jun 2025 16:19:00 -0700 Subject: gnu: Add node-fast-xml-parser. * gnu/packages/node-xyz.scm (node-fast-xml-parser): New variable. Change-Id: I1e569fed347895d0409b65110f184e90f7d9222c Signed-off-by: Andreas Enge --- gnu/packages/node-xyz.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 163df9167d..7217b7783f 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -595,6 +595,49 @@ multiple node.js files, while providing useful information about output and exit codes.") (license license:expat))) +(define-public node-fast-xml-parser + (package + (name "node-fast-xml-parser") + (version "4.5.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/NaturalIntelligence/fast-xml-parser") + (commit "f8d4d427a31a52d4df82260ac1973d94ad73335b"))) + (file-name (git-file-name name version)) + (sha256 (base32 "1wc5mgihrgync0vj79gk7g367rssqhzmzxl41kdhhcya045bis85")) + (modules '((guix build utils))) + (snippet #~(begin + (delete-file-recursively "lib"))))) + (build-system node-build-system) + (inputs (list node-strnum)) + (arguments (list + #:tests? #f ; FIXME: Tests require 'nyc'. + #:phases #~(modify-phases %standard-phases + (add-before 'patch-dependencies 'modify-package (lambda _ + (modify-json + (delete-dev-dependencies)))) + (replace 'build (lambda _ + (define output "output") + (mkdir output) + (for-each + (lambda (file) (install-file file output)) + (list "CHANGELOG.md" "LICENSE" "package.json" "README.md")) + (copy-recursively "src" (string-append output "/src")) + (chdir output)))))) + (synopsis "Validate XML, Parse XML, Build XML without C/C++ based libraries") + (description "Validate XML, Parse XML to JS Object, or Build XML from JS Object\ + without C/C++ based libraries and no callback. + * Validate XML data syntactically. Use detailed-xml-validator to verify business rules. + * Parse XML to JS Objectand vice versa + * Common JS, ESM, and browser compatible + * Faster than any other pure JS implementation. +It can handle big files (tested up to 100mb). XML Entities, HTML entities, and DOCTYPE\ + entites are supported. Unpaired tags (Eg
in HTML), stop nodes (Eg