123456789101112131415161718192021222324252627282930313233343536373839 |
- 'use strict';
- var base64 = require('./base64');
- var utf8 = require('./utf8');
- var utils = require('./utils');
- var ZipEntries = require('./zipEntries');
- module.exports = function(data, options) {
- var files, zipEntries, i, input;
- options = utils.extend(options || {}, {
- base64: false,
- checkCRC32: false,
- optimizedBinaryString : false,
- createFolders: false,
- decodeFileName: utf8.utf8decode
- });
- if (options.base64) {
- data = base64.decode(data);
- }
- zipEntries = new ZipEntries(data, options);
- files = zipEntries.files;
- for (i = 0; i < files.length; i++) {
- input = files[i];
- this.file(input.fileNameStr, input.decompressed, {
- binary: true,
- optimizedBinaryString: true,
- date: input.date,
- dir: input.dir,
- comment : input.fileCommentStr.length ? input.fileCommentStr : null,
- unixPermissions : input.unixPermissions,
- dosPermissions : input.dosPermissions,
- createFolders: options.createFolders
- });
- }
- if (zipEntries.zipComment.length) {
- this.comment = zipEntries.zipComment;
- }
- return this;
- };
|