From 11b43f996e08fa4789fb245bfd516071cbbf37b2 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 9 May 2018 23:14:58 +0200 Subject: [PATCH] gnu: Add js-filesaver. * gnu/packages/javascript.scm (js-filesaver): New variable. --- gnu/packages/javascript.scm | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm index a54d4ecabd..e2742faa11 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -368,6 +369,44 @@ to ES5 without causing run-time errors in older engines. In many cases, this means that these shams cause many ES5 methods to silently fail.") (license license:expat))) +(define-public js-filesaver + (package + (name "js-filesaver") + (version "1.3.8") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eligrey/FileSaver.js/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "1rkhfqs5plaj628kzj7qgm5qahy4v7ihygifidqr6g6265mil97h")))) + (build-system minify-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-uglification + ;; Remove "export" keyword which prevents the file from being + ;; uglified by uglify-js. Moreover, that keyword is not present in + ;; the minified version of the library some projects are using, + ;; e.g., + ;; + (lambda _ + (substitute* "src/FileSaver.js" + (("export ") "")) + #t))))) + (home-page + "https://eligrey.com/blog/saving-generated-files-on-the-client-side/") + (synopsis "HTML5 saveAs() FileSaver implementation") + (description "@file{FileSaver.js} implements the @code{saveAs()} +FileSaver interface in browsers that do not natively support it. + +@file{FileSaver.js} is the solution to saving files on the +client-side, and is perfect for webapps that need to generate files, +or for saving sensitive information that shouldn't be sent to an +external server.") + (license license:expat))) + (define-public mujs (package (name "mujs")