UNPKG

acha-framework

Version:

is a modular framework on both client (angular.js) and server (node.js) side, it provides security, orm, ioc, obfuscation and ...

53 lines 1.5 kB
(function (undefined) { Ioc.define('backend.zipHelper', [], function (provide) { var AdmZip = require('adm-zip'); var createZip = function (source) { return Q.Promise(function (resolve, reject) { var zip = new AdmZip(); var promises = []; var errorHappend = false; for (var i = 0; i < source.length; i++) { var defer = Q.defer(); promises.push(defer.promise); (function (defer, src, zip) { FS.stat(src, function (err, stat) { if (err) { defer.resolve(); errorHappend = true; return; } if (stat.isDirectory()) { zip.addLocalFolder(src); } else { zip.addLocalFile(src); } defer.resolve(); }); }(defer, source[i], zip)); } Q.all(promises).then(function () { if (errorHappend) zip = null; resolve(zip); }); }); }; provide({ createZip: createZip, zip: function (source, destination) { 'use strict'; return Q.Promise(function (resolve, reject) { createZip(source).then(function (zip) { if (zip) { zip.writeZip(destination); zip = null; resolve(true); return; } resolve(false); }); }); } }); }); }());