zip-promise
Version:
zip-promise === > Promise archive wrapper
51 lines • 6.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const archiver = require("archiver");
const path = require("path");
const fs_1 = require("fs");
function file(fileIn, fileOut, levelCompression = 9) {
return new Promise((resolve, reject) => {
fs_1.access(fileIn, fs_1.constants.F_OK, notExistingError => {
if (notExistingError)
return reject(notExistingError);
const output = fs_1.createWriteStream(fileOut);
output.on('close', () => {
resolve({ pointer: archive.pointer() });
});
const archive = archiver('zip', {
zlib: { level: levelCompression }
});
archive.on('error', error => {
reject(error);
});
archive.pipe(output);
const file = path.parse(fileIn.toString());
archive.file(fileIn, { name: file.base });
archive.finalize();
});
});
}
exports.file = file;
function folder(folderIn, fileOut, levelCompression = 9) {
return new Promise((resolve, reject) => {
fs_1.access(folderIn, fs_1.constants.F_OK, notExistingError => {
if (notExistingError)
return reject(notExistingError);
const output = fs_1.createWriteStream(fileOut);
output.on('close', () => {
resolve({ pointer: archive.pointer() });
});
const archive = archiver('zip', {
zlib: { level: levelCompression }
});
archive.on('error', error => {
reject(error);
});
archive.pipe(output);
archive.directory(folderIn, false);
archive.finalize();
});
});
}
exports.folder = folder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBb0M7QUFDcEMsNkJBQTRCO0FBQzVCLDJCQUFtRTtBQU1uRSxTQUFnQixJQUFJLENBQUMsTUFBZ0IsRUFBRSxPQUFpQixFQUFFLG1CQUEyQixDQUFDO0lBQ3BGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsV0FBTSxDQUFDLE1BQU0sRUFBRSxjQUFTLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEVBQUU7WUFDaEQsSUFBSSxnQkFBZ0I7Z0JBQUUsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUVyRCxNQUFNLE1BQU0sR0FBRyxzQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUV6QyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQ3pDLENBQUMsQ0FBQyxDQUFBO1lBRUYsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRTtnQkFDOUIsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO2FBQ2xDLENBQUMsQ0FBQTtZQUVGLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDZixDQUFDLENBQUMsQ0FBQTtZQUVGLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7WUFFcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUUxQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUV6QyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUE1QkQsb0JBNEJDO0FBRUQsU0FBZ0IsTUFBTSxDQUFDLFFBQWtCLEVBQUUsT0FBaUIsRUFBRSxtQkFBMkIsQ0FBQztJQUN4RixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLFdBQU0sQ0FBQyxRQUFRLEVBQUUsY0FBUyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ2xELElBQUksZ0JBQWdCO2dCQUFFLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFFckQsTUFBTSxNQUFNLEdBQUcsc0JBQWlCLENBQUMsT0FBTyxDQUFDLENBQUE7WUFFekMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO2dCQUN0QixPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUN6QyxDQUFDLENBQUMsQ0FBQTtZQUVGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUU7Z0JBQzlCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTthQUNsQyxDQUFDLENBQUE7WUFFRixPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2YsQ0FBQyxDQUFDLENBQUE7WUFFRixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBRXBCLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBRWxDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNwQixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQTFCRCx3QkEwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhcmNoaXZlciBmcm9tICdhcmNoaXZlcidcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IGNyZWF0ZVdyaXRlU3RyZWFtLCBhY2Nlc3MsIFBhdGhMaWtlLCBjb25zdGFudHMgfSBmcm9tICdmcydcblxuaW50ZXJmYWNlIFJlc3BvbnNlRmlsZSB7XG4gIHBvaW50ZXI6IFN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsZShmaWxlSW46IFBhdGhMaWtlLCBmaWxlT3V0OiBQYXRoTGlrZSwgbGV2ZWxDb21wcmVzc2lvbjogTnVtYmVyID0gOSk6IFByb21pc2U8UmVzcG9uc2VGaWxlPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYWNjZXNzKGZpbGVJbiwgY29uc3RhbnRzLkZfT0ssIG5vdEV4aXN0aW5nRXJyb3IgPT4ge1xuICAgICAgaWYgKG5vdEV4aXN0aW5nRXJyb3IpIHJldHVybiByZWplY3Qobm90RXhpc3RpbmdFcnJvcilcblxuICAgICAgY29uc3Qgb3V0cHV0ID0gY3JlYXRlV3JpdGVTdHJlYW0oZmlsZU91dClcblxuICAgICAgb3V0cHV0Lm9uKCdjbG9zZScsICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSh7IHBvaW50ZXI6IGFyY2hpdmUucG9pbnRlcigpIH0pXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBhcmNoaXZlID0gYXJjaGl2ZXIoJ3ppcCcsIHtcbiAgICAgICAgemxpYjogeyBsZXZlbDogbGV2ZWxDb21wcmVzc2lvbiB9XG4gICAgICB9KVxuXG4gICAgICBhcmNoaXZlLm9uKCdlcnJvcicsIGVycm9yID0+IHtcbiAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgfSlcblxuICAgICAgYXJjaGl2ZS5waXBlKG91dHB1dClcblxuICAgICAgY29uc3QgZmlsZSA9IHBhdGgucGFyc2UoZmlsZUluLnRvU3RyaW5nKCkpXG5cbiAgICAgIGFyY2hpdmUuZmlsZShmaWxlSW4sIHsgbmFtZTogZmlsZS5iYXNlIH0pXG5cbiAgICAgIGFyY2hpdmUuZmluYWxpemUoKVxuICAgIH0pXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb2xkZXIoZm9sZGVySW46IFBhdGhMaWtlLCBmaWxlT3V0OiBQYXRoTGlrZSwgbGV2ZWxDb21wcmVzc2lvbjogTnVtYmVyID0gOSk6IFByb21pc2U8UmVzcG9uc2VGaWxlPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgYWNjZXNzKGZvbGRlckluLCBjb25zdGFudHMuRl9PSywgbm90RXhpc3RpbmdFcnJvciA9PiB7XG4gICAgICBpZiAobm90RXhpc3RpbmdFcnJvcikgcmV0dXJuIHJlamVjdChub3RFeGlzdGluZ0Vycm9yKVxuXG4gICAgICBjb25zdCBvdXRwdXQgPSBjcmVhdGVXcml0ZVN0cmVhbShmaWxlT3V0KVxuXG4gICAgICBvdXRwdXQub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgICByZXNvbHZlKHsgcG9pbnRlcjogYXJjaGl2ZS5wb2ludGVyKCkgfSlcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IGFyY2hpdmUgPSBhcmNoaXZlcignemlwJywge1xuICAgICAgICB6bGliOiB7IGxldmVsOiBsZXZlbENvbXByZXNzaW9uIH1cbiAgICAgIH0pXG5cbiAgICAgIGFyY2hpdmUub24oJ2Vycm9yJywgZXJyb3IgPT4ge1xuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgICB9KVxuXG4gICAgICBhcmNoaXZlLnBpcGUob3V0cHV0KVxuXG4gICAgICBhcmNoaXZlLmRpcmVjdG9yeShmb2xkZXJJbiwgZmFsc2UpXG5cbiAgICAgIGFyY2hpdmUuZmluYWxpemUoKVxuICAgIH0pXG4gIH0pXG59XG4iXX0=