Browse Source

Merge pull request 'fix windows archive issue' (#10) from dev into master

Reviewed-on: https://git.devdevdev.life/AXE-WEB/block-dev-tool/pulls/10
pull/11/head
Roman Axelrod 2 years ago
parent
commit
03a8833f46
  1. 45
      helpers.js

45
helpers.js

@ -126,46 +126,33 @@ export function capitalize(str) {
export async function zipProject(srcDir, outputFileName = 'dist.zip') {
// create a file to stream archive data to.
const output = await fsExtra.createWriteStream(outputFileName);
const archive = archiver('zip', {});
// listen for all archive data to be written
// 'close' event is fired only when a file descriptor is involved
output.on('close', function () {
console.log(archive.pointer() + ' total bytes');
console.log('archiver has been finalized and the output file descriptor has closed.');
});
// This event is fired when the data source is drained no matter what was the data source.
// It is not part of this library but rather from the NodeJS Stream API.
// @see: https://nodejs.org/api/stream.html#stream_event_end
output.on('end', function () {
console.log('Data has been drained');
return new Promise((resolve, reject) => {
// Create a file to write the archive data
const archive = archiver('zip', {
zlib: {level: 9} // Compression level
});
// good practice to catch warnings (ie stat failures and other non-blocking errors)
archive.on('warning', function (err) {
if (err.code === 'ENOENT') {
// log warning
} else {
// throw error
throw err;
}
// Listen for errors on the archiver
archive.on('error', function (err) {
reject(err);
});
// good practice to catch this error explicitly
archive.on('error', function (err) {
throw err;
// Handle closure of the output file stream
output.on('close', function () {
console.log(`Archive created successfully and it is ${archive.pointer()} total bytes`);
resolve();
});
// pipe archive data to the file
// Pipe archive data to the file
archive.pipe(output);
// append files from a subdirectory, putting its contents at the root of archive
// Add files to the archive
archive.directory(srcDir, false);
// finalize the archive (ie we are done appending files but streams have to finish yet)
// 'close', 'end' or 'finish' may be fired right after calling this method so register to them beforehand
await archive.finalize();
// Finalize the archive - this is very important to ensure the file stream is finished
archive.finalize();
});
}
export async function buildExportFiles(blockName, platform) {

Loading…
Cancel
Save