summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Paul <info@jaller.de>2020-09-09 00:36:37 +0200
committerGitHub <noreply@github.com>2020-09-09 00:36:37 +0200
commit247122f684fff3a936b79ad69c38de2f9ca46f83 (patch)
treee58c98f2698a0edcce86594afd2ff90f3048e7ec
parenta7e76217053a145e51961b47c01e1efade1988be (diff)
Remove bluebird (#94)
-rw-r--r--README.md1
-rw-r--r--package-lock.json5
-rw-r--r--package.json1
-rw-r--r--src/Renderer.js37
4 files changed, 16 insertions, 28 deletions
diff --git a/README.md b/README.md
index a78d6c6..eb777cf 100644
--- a/README.md
+++ b/README.md
@@ -91,7 +91,6 @@ If your terminal supports mouse events you can drag the map and use your scroll
* [`simplify-js`](https://github.com/mourner/simplify-js) for polyline simplifications
#### Handling the flow
-* [`bluebird`](https://github.com/petkaantonov/bluebird) for all the asynchronous [Promise](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise) magic
* [`node-fetch`](https://github.com/bitinn/node-fetch) for HTTP requests
* [`env-paths`](https://github.com/sindresorhus/env-paths) to determine where to persist downloaded tiles
diff --git a/package-lock.json b/package-lock.json
index 990e9ac..cb490aa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1107,11 +1107,6 @@
"tweetnacl": "^0.14.3"
}
},
- "bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
diff --git a/package.json b/package.json
index 08855d2..1b81311 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,6 @@
"license": "MIT",
"dependencies": {
"@mapbox/vector-tile": "^1.3.1",
- "bluebird": "^3.7.2",
"bresenham": "0.0.4",
"earcut": "^2.2.2",
"env-paths": "^2.2.0",
diff --git a/src/Renderer.js b/src/Renderer.js
index 2747bef..1d8d1c9 100644
--- a/src/Renderer.js
+++ b/src/Renderer.js
@@ -5,7 +5,6 @@
The Console Vector Tile renderer - bäm!
*/
'use strict';
-const Promise = require('bluebird');
const x256 = require('x256');
const simplify = require('simplify-js');
@@ -30,7 +29,7 @@ class Renderer {
this.canvas = new Canvas(width, height);
}
- draw(center, zoom) {
+ async draw(center, zoom) {
if (this.isDrawing) return Promise.reject();
this.isDrawing = true;
@@ -49,21 +48,20 @@ class Renderer {
this.canvas.clear();
- return Promise.resolve(this._visibleTiles(center, zoom)).map((tile) => {
- return this._getTile(tile);
- }).map((tile) => {
- return this._getTileFeatures(tile, zoom);
- }).then((tiles) => {
- this._renderTiles(tiles);
- }).then(() => {
+ try {
+ let tiles = this._visibleTiles(center, zoom);
+ await Promise.all(tiles.map(async(tile) => {
+ await this._getTile(tile);
+ this._getTileFeatures(tile, zoom);
+ }));
+ await this._renderTiles(tiles);
return this._getFrame();
- }).catch((e) => {
- return console.log(e);
- }).finally((frame) => {
+ } catch(e) {
+ console.error(e);
+ } finally {
this.isDrawing = false;
this.lastDrawAt = Date.now();
- return frame;
- });
+ }
}
_visibleTiles(center, zoom) {
@@ -104,13 +102,9 @@ class Renderer {
return tiles;
}
- _getTile(tile) {
- return this.tileSource
- .getTile(tile.xyz.z, tile.xyz.x, tile.xyz.y)
- .then((data) => {
- tile.data = data;
- return tile;
- });
+ async _getTile(tile) {
+ tile.data = await this.tileSource.getTile(tile.xyz.z, tile.xyz.x, tile.xyz.y);
+ return tile;
}
_getTileFeatures(tile, zoom) {
@@ -140,6 +134,7 @@ class Renderer {
_renderTiles(tiles) {
const labels = [];
+ if (tiles.length === 0) return;
const drawOrder = this._generateDrawOrder(tiles[0].xyz.z);
for (const layerId of drawOrder) {