當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript yauzl.fromBuffer函數代碼示例

本文整理匯總了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));
            });
        });
    });
開發者ID:gregg-miskelly,項目名稱:omnisharp-vscode,代碼行數:58,代碼來源:ZipInstaller.ts

示例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);
          });
        });
      });
開發者ID:nitpum,項目名稱:superpowers-app,代碼行數:48,代碼來源:updateManager.ts

示例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);
        });
      });
    });
開發者ID:mk-pmb,項目名稱:superpowers-core,代碼行數:48,代碼來源:utils.ts

示例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);
        });
      });
    });
開發者ID:fulopm,項目名稱:superpowers-core,代碼行數:45,代碼來源:utils.ts


注:本文中的yauzl.fromBuffer函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。