UNPKG

node-7z-threetwo

Version:

A CommonJs and ESM frontend to 7-Zip, downloads binaries in for Linux, Windows, and Mac OSX, with methods to create SFX self extracting 7z archives targeting different platforms.

42 lines (34 loc) 1.13 kB
'use strict'; const when = require('when'), u = { files: require('../util/files'), run: require('../util/run'), switches: require('../util/switches'), }; /** * Delete content to an archive. * @promise Delete * @param archive {string} Path to the archive. * @param files {string|array} Files to add. * @param options {Object} An object of acceptable 7-zip switch options. * @resolve {array} Arguments passed to the child-process. * @reject {Error} The error as issued by 7-Zip. */ module.exports = function (archive, files, options) { return when.promise(function (resolve, reject) { // Convert array of files into a string if needed. files = u.files(files); // Create a string that can be parsed by `run`. let command = '7za d "' + archive + '" ' + files; // Start the command u.run(command, options) // When all is done resolve the Promise. .then(function (args) { return resolve(args); }) // Catch the error and pass it to the reject function of the Promise. .catch(function (err) { return reject(err); }); }); };