1
0
mirror of https://github.com/akveo/eva-icons.git synced 2025-09-03 10:53:08 +02:00
Files
eva-icons/scripts/services/zip.js

50 lines
1.1 KiB
JavaScript

/**
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
const fs = require('fs-extra');
const path = require('path');
const archiver = require('archiver');
const config = require('../config');
const addToDirectory = (srcPath, subDir, zip) => {
zip.directory(srcPath, subDir);
};
const zip = (iconsFolders, archivePath) => {
const zip = archiver('zip', { zlib: { level: 9 } });
const desFolderPath = path.join(config.desPath, `eva-icons.zip`);
zip.on('warning', function(err) {
if (err.code === 'ENOENT') {
console.info('zip warning');
} else {
throw err;
}
});
zip.on('error', function(err) {
throw err;
});
iconsFolders.forEach((folder) => {
const prefix = folder.toLowerCase();
const srcPath = path.join(config.desPath, prefix);
addToDirectory(srcPath, prefix, zip);
});
addToDirectory(archivePath, false, zip);
zip.pipe(fs.createWriteStream(desFolderPath));
console.info(`Build ${desFolderPath}`);
zip.finalize();
};
module.exports = zip;