[SignalingServer] Optimize dependent modules
[platform/framework/web/wrtjs.git] / signaling_server / service / node_modules / pngjs / lib / packer-sync.js
1 'use strict';
2
3 var hasSyncZlib = true;
4 var zlib = require('zlib');
5 if (!zlib.deflateSync) {
6   hasSyncZlib = false;
7 }
8 var constants = require('./constants');
9 var Packer = require('./packer');
10
11 module.exports = function(metaData, opt) {
12
13   if (!hasSyncZlib) {
14     throw new Error('To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0');
15   }
16
17   var options = opt || {};
18
19   var packer = new Packer(options);
20
21   var chunks = [];
22
23   // Signature
24   chunks.push(new Buffer(constants.PNG_SIGNATURE));
25
26   // Header
27   chunks.push(packer.packIHDR(metaData.width, metaData.height));
28
29   if (metaData.gamma) {
30     chunks.push(packer.packGAMA(metaData.gamma));
31   }
32
33   var filteredData = packer.filterData(metaData.data, metaData.width, metaData.height);
34
35   // compress it
36   var compressedData = zlib.deflateSync(filteredData, packer.getDeflateOptions());
37   filteredData = null;
38
39   if (!compressedData || !compressedData.length) {
40     throw new Error('bad png - invalid compressed data response');
41   }
42   chunks.push(packer.packIDAT(compressedData));
43
44   // End
45   chunks.push(packer.packIEND());
46
47   return Buffer.concat(chunks);
48 };