tileblaster 0.4.8 → 0.4.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/tileblaster.js +16 -6
  2. package/package.json +2 -2
@@ -505,13 +505,13 @@ tileblaster.prototype.fetchtile = function(tileurl, mapid, fn){
505
505
  phin({
506
506
  url: tileurl,
507
507
  headers: {
508
+ "accept-encoding": "br, gzip, deflate",
508
509
  'user-agent': self.config.useragent, // be nice and tell who we are
509
510
  ...(self.config.maps[mapid].headers||{}), // extra headers from config
510
511
  },
511
512
  parse: "none",
512
513
  stream: true,
513
514
  followRedirects: true,
514
- compression: true,
515
515
  timeout: 10000,
516
516
  core: { agent: self.agents[proto] },
517
517
  }).then(function(resp){
@@ -530,6 +530,14 @@ tileblaster.prototype.fetchtile = function(tileurl, mapid, fn){
530
530
  if (!resp.headers['content-type']||(!!self.maps[mapid].mime&&self.maps[mapid].mime.indexOf(resp.headers['content-type'])<0)) return resp.stream.destroy(), fn(new Error("invalid content type "+resp.headers['content-type']), resp.statusCode);
531
531
  if (!!resp.headers['content-length']&&parseInt(resp.headers['content-length'],10)===0) return resp.stream.destroy(), fn(new Error("no content"), resp.statusCode);
532
532
 
533
+ // decompress stream
534
+ switch (resp.headers["content-encoding"]) {
535
+ case 'br': resp.stream = resp.pipe(zlib.createBrotliDecompress()); break;
536
+ case 'gzip': resp.stream = resp.pipe(zlib.createGunzip()); break;
537
+ case 'deflate': resp.stream = resp.pipe(zlib.createInflate()); break;
538
+ default: resp.stream = resp; break;
539
+ };
540
+
533
541
  // signal queue when read stream has finished
534
542
  resp.stream.once('end', function(){ (!d++)&&done(); });
535
543
 
@@ -556,10 +564,13 @@ tileblaster.prototype.versatile = function(tileurl, mapid, z, x, y, fn) {
556
564
  if (!self.maps[mapid].c) self.maps[mapid].c = versatiles(tileurl, { tms: !!self.maps[mapid].tms });
557
565
  self.maps[mapid].c.getTile(z,x,y, function(err, buf){
558
566
  if (err) return fn(err);
559
- var strm = new stream.PassThrough;
560
- strm.write(buf);
561
- strm.end();
562
- return fn(null, strm);
567
+ self.maps[mapid].c.decompress(self.maps[mapid].c.header.tile_precompression, buf, function(err, buf){
568
+ if (err) return fn(err);
569
+ var strm = new stream.PassThrough;
570
+ strm.write(buf);
571
+ strm.end();
572
+ return fn(null, strm);
573
+ });
563
574
  });
564
575
  return self;
565
576
  };
@@ -740,7 +751,6 @@ tileblaster.prototype._tileurl = function(mapid, z, x, y, r, e){
740
751
 
741
752
  // transform parameters to filename
742
753
  tileblaster.prototype._tilefile = function(mapid, z, x, y, r, e){
743
- var self = this;
744
754
  return (mapid+"/"+z.toFixed(0)+"/"+x.toFixed(0)+"/"+y.toFixed(0)+((!!r)?r:"")+"."+((e) ? e : ""));
745
755
  };
746
756
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tileblaster",
3
- "version": "0.4.8",
3
+ "version": "0.4.11",
4
4
  "description": "pretty fast optimizing & compressing tile caching proxy",
5
5
  "main": "lib/tileblaster.js",
6
6
  "bin": {
@@ -30,7 +30,7 @@
30
30
  "node-zopfli": "^2.1.4",
31
31
  "nsa": "^0.2",
32
32
  "pnck": "^1.0.1",
33
- "versatiles": "^0.3.0"
33
+ "versatiles": "^0.3.1"
34
34
  },
35
35
  "engines": {
36
36
  "node": ">= 10"