* gnu/packages/node-xyz.scm (node-yazl): New variable. --- gnu/packages/node-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index d6035e2c23..dec7d9ef19 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2021 Noisytoot ;;; Copyright © 2021 Charles ;;; Copyright © 2021 Philip McGrath +;;; Copyright © 2022 Nicolas Graves ;;; ;;; This file is part of GNU Guix. ;;; @@ -1333,3 +1334,39 @@ (define-public node-serialport accessing serial ports. This package is the recommended entry point for most projects. It combines a high-level Node.js stream interface with a useful default set of parsers and bindings."))) + +(define-public node-yazl + (package + (name "node-yazl") + (version "2.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/thejoshwolfe/yazl") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lhwqqnvazpi4xw81ldpx0ky0h1j5rcx3br480q2bnzj21cm109n")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (invoke "npm" "--offline" + "--ignore-scripts" "install" "--production")))))) + (inputs (list node-buffer-crc32)) + (home-page "https://github.com/thejoshwolfe/yazl") + (synopsis "Yet another zip library for node") + (description "This package provides a zip library for Node. It follows +the following principles: +@enumerate +@item Don't block the JavaScript thread. Use and provide async APIs. +@item Keep memory usage under control. Don't attempt to buffer entire +files in RAM at once. +@item Prefer to open input files one at a time than all at once. +@end enumerate") + (license license:expat))) -- 2.37.0