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.
- package/lib/tileblaster.js +16 -6
- package/package.json +2 -2
package/lib/tileblaster.js
CHANGED
|
@@ -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
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
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.
|
|
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.
|
|
33
|
+
"versatiles": "^0.3.1"
|
|
34
34
|
},
|
|
35
35
|
"engines": {
|
|
36
36
|
"node": ">= 10"
|