本文整理汇总了TypeScript中yauzl.fromBuffer函数的典型用法代码示例。如果您正苦于以下问题:TypeScript fromBuffer函数的具体用法?TypeScript fromBuffer怎么用?TypeScript fromBuffer使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了fromBuffer函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: reject
return new Promise<void>((resolve, reject) => {
yauzl.fromBuffer(buffer, { lazyEntries: true }, (err, zipFile) => {
if (err) {
let message = "C# Extension was unable to download its dependencies. Please check your internet connection. If you use a proxy server, please visit https://aka.ms/VsCodeCsharpNetworking";
eventStream.post(new ZipError(message));
return reject(new NestedError(message));
}
zipFile.readEntry();
zipFile.on('entry', (entry: yauzl.Entry) => {
let absoluteEntryPath = path.resolve(destinationInstallPath.value, entry.fileName);
if (entry.fileName.endsWith('/')) {
// Directory - create it
mkdirp(absoluteEntryPath, { mode: 0o775 }, err => {
if (err) {
return reject(new NestedError('Error creating directory for zip directory entry:' + err.code || '', err));
}
zipFile.readEntry();
});
}
else {
// File - extract it
zipFile.openReadStream(entry, (err, readStream) => {
if (err) {
return reject(new NestedError('Error reading zip stream', err));
}
mkdirp(path.dirname(absoluteEntryPath), { mode: 0o775 }, err => {
if (err) {
return reject(new NestedError('Error creating directory for zip file entry', err));
}
let binaryPaths = binaries && binaries.map(binary => binary.value);
// Make sure executable files have correct permissions when extracted
let fileMode = binaryPaths && binaryPaths.indexOf(absoluteEntryPath) !== -1
? 0o755
: 0o664;
readStream.pipe(fs.createWriteStream(absoluteEntryPath, { mode: fileMode }));
readStream.on('end', () => zipFile.readEntry());
});
});
}
});
zipFile.on('end', () => {
resolve();
});
zipFile.on('error', err => {
reject(new NestedError('Zip File Error:' + err.code || '', err));
});
});
});
示例2: mkdirp
res.on("end", () => {
const zipBuffer = Buffer.concat(buffers);
yauzl.fromBuffer(zipBuffer, { lazyEntries: true }, (err: Error, zipFile: any) => {
if (err != null) throw err;
splashScreen.setProgressMax(zipFile.entryCount * 2);
splashScreen.setProgressValue(zipFile.entryCount);
let entriesProcessed = 0;
const rootFolderName = path.parse(downloadURL).name;
zipFile.readEntry();
zipFile.on("entry", (entry: any) => {
if (entry.fileName.indexOf(rootFolderName) !== 0) throw new Error(`Found file outside of root folder: ${entry.fileName} (${rootFolderName})`);
const filename = path.join(settings.corePath, entry.fileName.replace(rootFolderName, ""));
if (/\/$/.test(entry.fileName)) {
mkdirp(filename, (err) => {
if (err != null) throw err;
entriesProcessed++;
splashScreen.setProgressValue(zipFile.entryCount + entriesProcessed);
zipFile.readEntry();
});
} else {
zipFile.openReadStream(entry, (err: Error, readStream: NodeJS.ReadableStream) => {
if (err) throw err;
mkdirp(path.dirname(filename), (err: Error) => {
if (err) throw err;
readStream.pipe(fs.createWriteStream(filename));
readStream.on("end", () => {
entriesProcessed++;
splashScreen.setProgressValue(zipFile.entryCount + entriesProcessed);
zipFile.readEntry();
});
});
});
}
});
zipFile.on("end", () => {
splashScreen.setProgressVisible(false);
splashScreen.setStatus(i18n.t("startup:status.installingCoreSucceed"));
callback(null);
});
});
});
示例3: mkdirp
res.on("end", () => {
let zipBuffer = Buffer.concat(buffers);
yauzl.fromBuffer(zipBuffer, { lazyEntries: true }, (err: Error, zipFile: any) => {
if (err != null) throw err;
progress = zipFile.entryCount;
progressMax = zipFile.entryCount * 2;
let rootFolderName: string;
zipFile.readEntry();
zipFile.on("entry", (entry: any) => {
if (rootFolderName == null) rootFolderName = entry.fileName;
if (entry.fileName.indexOf(rootFolderName) !== 0) throw new Error(`Found file outside of root folder: ${entry.fileName} (${rootFolderName})`);
const filename = path.join(downloadPath, entry.fileName.replace(rootFolderName, ""));
if (/\/$/.test(entry.fileName)) {
mkdirp(filename, (err) => {
if (err != null) throw err;
progress++;
onProgress(progress / progressMax);
zipFile.readEntry();
});
} else {
zipFile.openReadStream(entry, (err: Error, readStream: NodeJS.ReadableStream) => {
if (err) throw err;
mkdirp(path.dirname(filename), (err: Error) => {
if (err) throw err;
readStream.pipe(fs.createWriteStream(filename));
readStream.on("end", () => {
progress++;
onProgress(progress / progressMax);
zipFile.readEntry();
});
});
});
}
});
zipFile.on("end", () => {
// NOTE: Necessary to allow manipulating files right after download
setTimeout(callback, 100);
});
});
});
示例4: mkdirp
res.on("end", () => {
const zipBuffer = Buffer.concat(buffers);
yauzl.fromBuffer(zipBuffer, { lazyEntries: true }, (err: Error, zipFile: any) => {
if (err != null) throw err;
progress = zipFile.entryCount;
progressMax = zipFile.entryCount * 2;
const rootFolderName = path.parse(downloadURL).name;
zipFile.readEntry();
zipFile.on("entry", (entry: any) => {
if (entry.fileName.indexOf(rootFolderName) !== 0) throw new Error(`Found file outside of root folder: ${entry.fileName} (${rootFolderName})`);
const filename = path.join(downloadPath, entry.fileName.replace(rootFolderName, ""));
if (/\/$/.test(entry.fileName)) {
mkdirp(filename, (err) => {
if (err != null) throw err;
progress++;
onProgress(progress / progressMax);
zipFile.readEntry();
});
} else {
zipFile.openReadStream(entry, (err: Error, readStream: NodeJS.ReadableStream) => {
if (err) throw err;
mkdirp(path.dirname(filename), (err: Error) => {
if (err) throw err;
readStream.pipe(fs.createWriteStream(filename));
readStream.on("end", () => {
progress++;
onProgress(progress / progressMax);
zipFile.readEntry();
});
});
});
}
});
zipFile.on("end", () => {
callback(null);
});
});
});