CoolFace
Apppublic

TrinetraLabs/Placebo_AI

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes
index.js58 linesDownload Raw Back to generate
1"use strict";2 3var compressions = require("../compressions");4var ZipFileWorker = require("./ZipFileWorker");5 6/**7 * Find the compression to use.8 * @param {String} fileCompression the compression defined at the file level, if any.9 * @param {String} zipCompression the compression defined at the load() level.10 * @return {Object} the compression object to use.11 */12var getCompression = function (fileCompression, zipCompression) {13 14    var compressionName = fileCompression || zipCompression;15    var compression = compressions[compressionName];16    if (!compression) {17        throw new Error(compressionName + " is not a valid compression method !");18    }19    return compression;20};21 22/**23 * Create a worker to generate a zip file.24 * @param {JSZip} zip the JSZip instance at the right root level.25 * @param {Object} options to generate the zip file.26 * @param {String} comment the comment to use.27 */28exports.generateWorker = function (zip, options, comment) {29 30    var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName);31    var entriesCount = 0;32    try {33 34        zip.forEach(function (relativePath, file) {35            entriesCount++;36            var compression = getCompression(file.options.compression, options.compression);37            var compressionOptions = file.options.compressionOptions || options.compressionOptions || {};38            var dir = file.dir, date = file.date;39 40            file._compressWorker(compression, compressionOptions)41                .withStreamInfo("file", {42                    name : relativePath,43                    dir : dir,44                    date : date,45                    comment : file.comment || "",46                    unixPermissions : file.unixPermissions,47                    dosPermissions : file.dosPermissions48                })49                .pipe(zipFileWorker);50        });51        zipFileWorker.entriesCount = entriesCount;52    } catch (e) {53        zipFileWorker.error(e);54    }55 56    return zipFileWorker;57};58