@deck.gl/carto 8.7.0-alpha.1 → 8.7.0-alpha.2
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/dist/dist.dev.js +52 -91
- package/dist/es5/api/index.js +9 -9
- package/dist/es5/api/layer-map.js +72 -83
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-api-common.js +9 -13
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/maps-client.js +98 -157
- package/dist/es5/api/maps-client.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +312 -521
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/api/parseMap.js +94 -95
- package/dist/es5/api/parseMap.js.map +1 -1
- package/dist/es5/basemap.js +1 -1
- package/dist/es5/basemap.js.map +1 -1
- package/dist/es5/config.js +23 -39
- package/dist/es5/config.js.map +1 -1
- package/dist/es5/index.js +17 -17
- package/dist/es5/layers/carto-bqtiler-layer.js +6 -39
- package/dist/es5/layers/carto-bqtiler-layer.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +130 -211
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/carto-sql-layer.js +6 -39
- package/dist/es5/layers/carto-sql-layer.js.map +1 -1
- package/dist/es5/style/color-bins-style.js +14 -13
- package/dist/es5/style/color-bins-style.js.map +1 -1
- package/dist/es5/style/color-categories-style.js +16 -39
- package/dist/es5/style/color-categories-style.js.map +1 -1
- package/dist/es5/style/color-continuous-style.js +14 -13
- package/dist/es5/style/color-continuous-style.js.map +1 -1
- package/dist/es5/style/palette.js +15 -21
- package/dist/es5/style/palette.js.map +1 -1
- package/dist/es5/style/utils.js +6 -13
- package/dist/es5/style/utils.js.map +1 -1
- package/dist/esm/api/layer-map.js +2 -2
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-client.js +1 -1
- package/dist/esm/api/maps-client.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +16 -6
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +2 -10
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/config.js +11 -26
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +7 -9
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/style/color-bins-style.js.map +1 -1
- package/dist/esm/style/color-continuous-style.js.map +1 -1
- package/dist.min.js +3 -3
- package/package.json +2 -2
- package/src/api/layer-map.js +2 -2
- package/src/api/maps-client.js +3 -7
- package/src/api/maps-v3-client.js +18 -7
- package/src/api/parseMap.js +16 -26
- package/src/config.js +8 -39
- package/src/layers/carto-layer.js +3 -5
- package/src/style/color-bins-style.js +1 -3
- package/src/style/color-continuous-style.js +1 -3
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -10,12 +8,6 @@ exports.fetchLayerData = fetchLayerData;
|
|
|
10
8
|
exports.getData = getData;
|
|
11
9
|
exports.fetchMap = fetchMap;
|
|
12
10
|
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
|
|
15
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
16
|
-
|
|
17
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
18
|
-
|
|
19
11
|
var _config = require("../config");
|
|
20
12
|
|
|
21
13
|
var _mapsApiCommon = require("./maps-api-common");
|
|
@@ -24,92 +16,58 @@ var _parseMap = require("./parseMap");
|
|
|
24
16
|
|
|
25
17
|
var _core = require("@deck.gl/core");
|
|
26
18
|
|
|
27
|
-
|
|
19
|
+
const MAX_GET_LENGTH = 2048;
|
|
20
|
+
|
|
21
|
+
async function request({
|
|
22
|
+
method,
|
|
23
|
+
url,
|
|
24
|
+
format,
|
|
25
|
+
accessToken,
|
|
26
|
+
body
|
|
27
|
+
}) {
|
|
28
|
+
let response;
|
|
29
|
+
const headers = {
|
|
30
|
+
Accept: 'application/json'
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
if (accessToken) {
|
|
34
|
+
headers.Authorization = "Bearer ".concat(accessToken);
|
|
35
|
+
}
|
|
28
36
|
|
|
29
|
-
|
|
37
|
+
if (method === 'POST') {
|
|
38
|
+
headers['Content-Type'] = 'application/json';
|
|
39
|
+
}
|
|
30
40
|
|
|
31
|
-
|
|
41
|
+
try {
|
|
42
|
+
response = await fetch(url, {
|
|
43
|
+
method,
|
|
44
|
+
headers,
|
|
45
|
+
body
|
|
46
|
+
});
|
|
47
|
+
} catch (error) {
|
|
48
|
+
throw new Error("Failed to connect to Maps API: ".concat(error));
|
|
49
|
+
}
|
|
32
50
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
51
|
+
if (format === _mapsApiCommon.FORMATS.NDJSON) {
|
|
52
|
+
return response;
|
|
53
|
+
}
|
|
36
54
|
|
|
37
|
-
|
|
38
|
-
_request = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref) {
|
|
39
|
-
var method, url, format, accessToken, body, response, headers, json;
|
|
40
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
41
|
-
while (1) {
|
|
42
|
-
switch (_context.prev = _context.next) {
|
|
43
|
-
case 0:
|
|
44
|
-
method = _ref.method, url = _ref.url, format = _ref.format, accessToken = _ref.accessToken, body = _ref.body;
|
|
45
|
-
headers = {
|
|
46
|
-
Accept: 'application/json'
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
if (accessToken) {
|
|
50
|
-
headers.Authorization = "Bearer ".concat(accessToken);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (method === 'POST') {
|
|
54
|
-
headers['Content-Type'] = 'application/json';
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
_context.prev = 4;
|
|
58
|
-
_context.next = 7;
|
|
59
|
-
return fetch(url, {
|
|
60
|
-
method: method,
|
|
61
|
-
headers: headers,
|
|
62
|
-
body: body
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
case 7:
|
|
66
|
-
response = _context.sent;
|
|
67
|
-
_context.next = 13;
|
|
68
|
-
break;
|
|
69
|
-
|
|
70
|
-
case 10:
|
|
71
|
-
_context.prev = 10;
|
|
72
|
-
_context.t0 = _context["catch"](4);
|
|
73
|
-
throw new Error("Failed to connect to Maps API: ".concat(_context.t0));
|
|
74
|
-
|
|
75
|
-
case 13:
|
|
76
|
-
if (!(format === _mapsApiCommon.FORMATS.NDJSON)) {
|
|
77
|
-
_context.next = 15;
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return _context.abrupt("return", response);
|
|
82
|
-
|
|
83
|
-
case 15:
|
|
84
|
-
_context.next = 17;
|
|
85
|
-
return response.json();
|
|
86
|
-
|
|
87
|
-
case 17:
|
|
88
|
-
json = _context.sent;
|
|
89
|
-
|
|
90
|
-
if (!response.ok) {
|
|
91
|
-
dealWithError({
|
|
92
|
-
response: response,
|
|
93
|
-
error: json.error
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return _context.abrupt("return", json.rows ? json.rows : json);
|
|
98
|
-
|
|
99
|
-
case 20:
|
|
100
|
-
case "end":
|
|
101
|
-
return _context.stop();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}, _callee, null, [[4, 10]]);
|
|
105
|
-
}));
|
|
106
|
-
return _request.apply(this, arguments);
|
|
107
|
-
}
|
|
55
|
+
const json = await response.json();
|
|
108
56
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
57
|
+
if (!response.ok) {
|
|
58
|
+
dealWithError({
|
|
59
|
+
response,
|
|
60
|
+
error: json.error
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return json.rows ? json.rows : json;
|
|
65
|
+
}
|
|
112
66
|
|
|
67
|
+
function dealWithError({
|
|
68
|
+
response,
|
|
69
|
+
error
|
|
70
|
+
}) {
|
|
113
71
|
switch (response.status) {
|
|
114
72
|
case 400:
|
|
115
73
|
throw new Error("Bad request. ".concat(error));
|
|
@@ -123,19 +81,20 @@ function dealWithError(_ref2) {
|
|
|
123
81
|
}
|
|
124
82
|
}
|
|
125
83
|
|
|
126
|
-
function getParameters(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
84
|
+
function getParameters({
|
|
85
|
+
type,
|
|
86
|
+
source,
|
|
87
|
+
geoColumn,
|
|
88
|
+
columns,
|
|
89
|
+
schema
|
|
90
|
+
}) {
|
|
91
|
+
const parameters = [(0, _mapsApiCommon.encodeParameter)('client', 'deck-gl-carto')];
|
|
133
92
|
|
|
134
93
|
if (schema) {
|
|
135
94
|
parameters.push((0, _mapsApiCommon.encodeParameter)('schema', true));
|
|
136
95
|
}
|
|
137
96
|
|
|
138
|
-
|
|
97
|
+
const sourceName = type === _mapsApiCommon.MAP_TYPES.QUERY ? 'q' : 'name';
|
|
139
98
|
parameters.push((0, _mapsApiCommon.encodeParameter)(sourceName, source));
|
|
140
99
|
|
|
141
100
|
if (type === _mapsApiCommon.MAP_TYPES.TABLE) {
|
|
@@ -151,73 +110,51 @@ function getParameters(_ref3) {
|
|
|
151
110
|
return parameters.join('&');
|
|
152
111
|
}
|
|
153
112
|
|
|
154
|
-
function mapInstantiation(
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
geoColumn: geoColumn,
|
|
171
|
-
columns: columns,
|
|
172
|
-
schema: schema
|
|
173
|
-
}));
|
|
174
|
-
accessToken = credentials.accessToken;
|
|
175
|
-
format = 'json';
|
|
176
|
-
|
|
177
|
-
if (!(url.length > MAX_GET_LENGTH && type === _mapsApiCommon.MAP_TYPES.QUERY)) {
|
|
178
|
-
_context2.next = 10;
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
body = JSON.stringify({
|
|
183
|
-
q: source,
|
|
184
|
-
client: 'deck-gl-carto'
|
|
185
|
-
});
|
|
186
|
-
_context2.next = 9;
|
|
187
|
-
return request({
|
|
188
|
-
method: 'POST',
|
|
189
|
-
url: baseUrl,
|
|
190
|
-
format: format,
|
|
191
|
-
accessToken: accessToken,
|
|
192
|
-
body: body
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
case 9:
|
|
196
|
-
return _context2.abrupt("return", _context2.sent);
|
|
197
|
-
|
|
198
|
-
case 10:
|
|
199
|
-
_context2.next = 12;
|
|
200
|
-
return request({
|
|
201
|
-
url: url,
|
|
202
|
-
format: format,
|
|
203
|
-
accessToken: accessToken
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
case 12:
|
|
207
|
-
return _context2.abrupt("return", _context2.sent);
|
|
208
|
-
|
|
209
|
-
case 13:
|
|
210
|
-
case "end":
|
|
211
|
-
return _context2.stop();
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}, _callee2);
|
|
113
|
+
async function mapInstantiation({
|
|
114
|
+
type,
|
|
115
|
+
source,
|
|
116
|
+
connection,
|
|
117
|
+
credentials,
|
|
118
|
+
geoColumn,
|
|
119
|
+
columns,
|
|
120
|
+
schema
|
|
121
|
+
}) {
|
|
122
|
+
const baseUrl = "".concat(credentials.mapsUrl, "/").concat(connection, "/").concat(type);
|
|
123
|
+
const url = "".concat(baseUrl, "?").concat(getParameters({
|
|
124
|
+
type,
|
|
125
|
+
source,
|
|
126
|
+
geoColumn,
|
|
127
|
+
columns,
|
|
128
|
+
schema
|
|
215
129
|
}));
|
|
216
|
-
|
|
130
|
+
const {
|
|
131
|
+
accessToken
|
|
132
|
+
} = credentials;
|
|
133
|
+
const format = 'json';
|
|
134
|
+
|
|
135
|
+
if (url.length > MAX_GET_LENGTH && type === _mapsApiCommon.MAP_TYPES.QUERY) {
|
|
136
|
+
const body = JSON.stringify({
|
|
137
|
+
q: source,
|
|
138
|
+
client: 'deck-gl-carto'
|
|
139
|
+
});
|
|
140
|
+
return await request({
|
|
141
|
+
method: 'POST',
|
|
142
|
+
url: baseUrl,
|
|
143
|
+
format,
|
|
144
|
+
accessToken,
|
|
145
|
+
body
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return await request({
|
|
150
|
+
url,
|
|
151
|
+
format,
|
|
152
|
+
accessToken
|
|
153
|
+
});
|
|
217
154
|
}
|
|
218
155
|
|
|
219
156
|
function getUrlFromMetadata(metadata, format) {
|
|
220
|
-
|
|
157
|
+
const m = metadata[format];
|
|
221
158
|
|
|
222
159
|
if (m && !m.error && m.url) {
|
|
223
160
|
return m.url[0];
|
|
@@ -226,12 +163,12 @@ function getUrlFromMetadata(metadata, format) {
|
|
|
226
163
|
return null;
|
|
227
164
|
}
|
|
228
165
|
|
|
229
|
-
function checkFetchLayerDataParameters(
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
166
|
+
function checkFetchLayerDataParameters({
|
|
167
|
+
type,
|
|
168
|
+
source,
|
|
169
|
+
connection,
|
|
170
|
+
localCreds
|
|
171
|
+
}) {
|
|
235
172
|
_core.log.assert(connection, 'Must define connection');
|
|
236
173
|
|
|
237
174
|
_core.log.assert(type, 'Must define a type');
|
|
@@ -245,379 +182,233 @@ function checkFetchLayerDataParameters(_ref5) {
|
|
|
245
182
|
_core.log.assert(localCreds.accessToken, 'Must define an accessToken');
|
|
246
183
|
}
|
|
247
184
|
|
|
248
|
-
function fetchLayerData(
|
|
249
|
-
|
|
250
|
-
|
|
185
|
+
async function fetchLayerData({
|
|
186
|
+
type,
|
|
187
|
+
source,
|
|
188
|
+
connection,
|
|
189
|
+
credentials,
|
|
190
|
+
geoColumn,
|
|
191
|
+
columns,
|
|
192
|
+
format,
|
|
193
|
+
schema
|
|
194
|
+
}) {
|
|
195
|
+
const {
|
|
196
|
+
url,
|
|
197
|
+
accessToken,
|
|
198
|
+
mapFormat,
|
|
199
|
+
metadata
|
|
200
|
+
} = await _fetchDataUrl({
|
|
201
|
+
type,
|
|
202
|
+
source,
|
|
203
|
+
connection,
|
|
204
|
+
credentials,
|
|
205
|
+
geoColumn,
|
|
206
|
+
columns,
|
|
207
|
+
format,
|
|
208
|
+
schema
|
|
209
|
+
});
|
|
210
|
+
const data = await request({
|
|
211
|
+
url,
|
|
212
|
+
format: mapFormat,
|
|
213
|
+
accessToken
|
|
214
|
+
});
|
|
215
|
+
const result = {
|
|
216
|
+
data,
|
|
217
|
+
format: mapFormat
|
|
218
|
+
};
|
|
251
219
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
257
|
-
while (1) {
|
|
258
|
-
switch (_context3.prev = _context3.next) {
|
|
259
|
-
case 0:
|
|
260
|
-
type = _ref6.type, source = _ref6.source, connection = _ref6.connection, credentials = _ref6.credentials, geoColumn = _ref6.geoColumn, columns = _ref6.columns, format = _ref6.format, schema = _ref6.schema;
|
|
261
|
-
_context3.next = 3;
|
|
262
|
-
return _fetchDataUrl({
|
|
263
|
-
type: type,
|
|
264
|
-
source: source,
|
|
265
|
-
connection: connection,
|
|
266
|
-
credentials: credentials,
|
|
267
|
-
geoColumn: geoColumn,
|
|
268
|
-
columns: columns,
|
|
269
|
-
format: format,
|
|
270
|
-
schema: schema
|
|
271
|
-
});
|
|
272
|
-
|
|
273
|
-
case 3:
|
|
274
|
-
_yield$_fetchDataUrl = _context3.sent;
|
|
275
|
-
url = _yield$_fetchDataUrl.url;
|
|
276
|
-
accessToken = _yield$_fetchDataUrl.accessToken;
|
|
277
|
-
mapFormat = _yield$_fetchDataUrl.mapFormat;
|
|
278
|
-
metadata = _yield$_fetchDataUrl.metadata;
|
|
279
|
-
_context3.next = 10;
|
|
280
|
-
return request({
|
|
281
|
-
url: url,
|
|
282
|
-
format: mapFormat,
|
|
283
|
-
accessToken: accessToken
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
case 10:
|
|
287
|
-
data = _context3.sent;
|
|
288
|
-
result = {
|
|
289
|
-
data: data,
|
|
290
|
-
format: mapFormat
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
if (schema) {
|
|
294
|
-
result.schema = metadata.schema;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
return _context3.abrupt("return", result);
|
|
298
|
-
|
|
299
|
-
case 14:
|
|
300
|
-
case "end":
|
|
301
|
-
return _context3.stop();
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}, _callee3);
|
|
305
|
-
}));
|
|
306
|
-
return _fetchLayerData.apply(this, arguments);
|
|
307
|
-
}
|
|
220
|
+
if (schema) {
|
|
221
|
+
result.schema = metadata.schema;
|
|
222
|
+
}
|
|
308
223
|
|
|
309
|
-
|
|
310
|
-
return _fetchDataUrl2.apply(this, arguments);
|
|
224
|
+
return result;
|
|
311
225
|
}
|
|
312
226
|
|
|
313
|
-
function
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
_i = 0, _prioritizedFormats = prioritizedFormats;
|
|
365
|
-
|
|
366
|
-
case 16:
|
|
367
|
-
if (!(_i < _prioritizedFormats.length)) {
|
|
368
|
-
_context4.next = 25;
|
|
369
|
-
break;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
f = _prioritizedFormats[_i];
|
|
373
|
-
url = getUrlFromMetadata(metadata, f);
|
|
374
|
-
|
|
375
|
-
if (!url) {
|
|
376
|
-
_context4.next = 22;
|
|
377
|
-
break;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
mapFormat = f;
|
|
381
|
-
return _context4.abrupt("break", 25);
|
|
382
|
-
|
|
383
|
-
case 22:
|
|
384
|
-
_i++;
|
|
385
|
-
_context4.next = 16;
|
|
386
|
-
break;
|
|
387
|
-
|
|
388
|
-
case 25:
|
|
389
|
-
accessToken = localCreds.accessToken;
|
|
390
|
-
return _context4.abrupt("return", {
|
|
391
|
-
url: url,
|
|
392
|
-
accessToken: accessToken,
|
|
393
|
-
mapFormat: mapFormat,
|
|
394
|
-
metadata: metadata
|
|
395
|
-
});
|
|
396
|
-
|
|
397
|
-
case 27:
|
|
398
|
-
case "end":
|
|
399
|
-
return _context4.stop();
|
|
400
|
-
}
|
|
227
|
+
async function _fetchDataUrl({
|
|
228
|
+
type,
|
|
229
|
+
source,
|
|
230
|
+
connection,
|
|
231
|
+
credentials,
|
|
232
|
+
geoColumn,
|
|
233
|
+
columns,
|
|
234
|
+
format,
|
|
235
|
+
schema
|
|
236
|
+
}) {
|
|
237
|
+
const defaultCredentials = (0, _config.getDefaultCredentials)();
|
|
238
|
+
const localCreds = { ...(defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials),
|
|
239
|
+
...credentials
|
|
240
|
+
};
|
|
241
|
+
checkFetchLayerDataParameters({
|
|
242
|
+
type,
|
|
243
|
+
source,
|
|
244
|
+
connection,
|
|
245
|
+
localCreds
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
if (!localCreds.mapsUrl) {
|
|
249
|
+
localCreds.mapsUrl = (0, _config.buildMapsUrlFromBase)(localCreds.apiBaseUrl);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
const metadata = await mapInstantiation({
|
|
253
|
+
type,
|
|
254
|
+
source,
|
|
255
|
+
connection,
|
|
256
|
+
credentials: localCreds,
|
|
257
|
+
geoColumn,
|
|
258
|
+
columns,
|
|
259
|
+
schema
|
|
260
|
+
});
|
|
261
|
+
let url;
|
|
262
|
+
let mapFormat;
|
|
263
|
+
|
|
264
|
+
if (format) {
|
|
265
|
+
mapFormat = format;
|
|
266
|
+
url = getUrlFromMetadata(metadata, format);
|
|
267
|
+
|
|
268
|
+
_core.log.assert(url, "Format ".concat(format, " not available"));
|
|
269
|
+
} else {
|
|
270
|
+
const prioritizedFormats = [_mapsApiCommon.FORMATS.GEOJSON, _mapsApiCommon.FORMATS.JSON, _mapsApiCommon.FORMATS.NDJSON, _mapsApiCommon.FORMATS.TILEJSON];
|
|
271
|
+
|
|
272
|
+
for (const f of prioritizedFormats) {
|
|
273
|
+
url = getUrlFromMetadata(metadata, f);
|
|
274
|
+
|
|
275
|
+
if (url) {
|
|
276
|
+
mapFormat = f;
|
|
277
|
+
break;
|
|
401
278
|
}
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
return _fetchDataUrl2.apply(this, arguments);
|
|
405
|
-
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
406
281
|
|
|
407
|
-
|
|
408
|
-
|
|
282
|
+
const {
|
|
283
|
+
accessToken
|
|
284
|
+
} = localCreds;
|
|
285
|
+
return {
|
|
286
|
+
url,
|
|
287
|
+
accessToken,
|
|
288
|
+
mapFormat,
|
|
289
|
+
metadata
|
|
290
|
+
};
|
|
409
291
|
}
|
|
410
292
|
|
|
411
|
-
function
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
case 4:
|
|
435
|
-
layerData = _context5.sent;
|
|
436
|
-
return _context5.abrupt("return", layerData.data);
|
|
437
|
-
|
|
438
|
-
case 6:
|
|
439
|
-
case "end":
|
|
440
|
-
return _context5.stop();
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
}, _callee5);
|
|
444
|
-
}));
|
|
445
|
-
return _getData.apply(this, arguments);
|
|
293
|
+
async function getData({
|
|
294
|
+
type,
|
|
295
|
+
source,
|
|
296
|
+
connection,
|
|
297
|
+
credentials,
|
|
298
|
+
geoColumn,
|
|
299
|
+
columns,
|
|
300
|
+
format
|
|
301
|
+
}) {
|
|
302
|
+
_core.log.deprecated('getData', 'fetchLayerData')();
|
|
303
|
+
|
|
304
|
+
const layerData = await fetchLayerData({
|
|
305
|
+
type,
|
|
306
|
+
source,
|
|
307
|
+
connection,
|
|
308
|
+
credentials,
|
|
309
|
+
geoColumn,
|
|
310
|
+
columns,
|
|
311
|
+
format,
|
|
312
|
+
schema: false
|
|
313
|
+
});
|
|
314
|
+
return layerData.data;
|
|
446
315
|
}
|
|
447
316
|
|
|
448
|
-
function _fetchMapDataset(
|
|
449
|
-
|
|
450
|
-
|
|
317
|
+
async function _fetchMapDataset(dataset, accessToken) {
|
|
318
|
+
const {
|
|
319
|
+
connectionName: connection,
|
|
320
|
+
source,
|
|
321
|
+
type
|
|
322
|
+
} = dataset;
|
|
323
|
+
const {
|
|
324
|
+
url,
|
|
325
|
+
mapFormat
|
|
326
|
+
} = await _fetchDataUrl({
|
|
327
|
+
credentials: {
|
|
328
|
+
accessToken
|
|
329
|
+
},
|
|
330
|
+
connection,
|
|
331
|
+
source,
|
|
332
|
+
type
|
|
333
|
+
});
|
|
334
|
+
const cache = parseInt(new URLSearchParams(url).get('cache'), 10);
|
|
335
|
+
|
|
336
|
+
if (cache && dataset.cache === cache) {
|
|
337
|
+
return false;
|
|
338
|
+
}
|
|
451
339
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
connection = dataset.connectionName, source = dataset.source, type = dataset.type;
|
|
461
|
-
_context6.next = 3;
|
|
462
|
-
return _fetchDataUrl({
|
|
463
|
-
credentials: {
|
|
464
|
-
accessToken: accessToken
|
|
465
|
-
},
|
|
466
|
-
connection: connection,
|
|
467
|
-
source: source,
|
|
468
|
-
type: type
|
|
469
|
-
});
|
|
470
|
-
|
|
471
|
-
case 3:
|
|
472
|
-
_yield$_fetchDataUrl2 = _context6.sent;
|
|
473
|
-
url = _yield$_fetchDataUrl2.url;
|
|
474
|
-
mapFormat = _yield$_fetchDataUrl2.mapFormat;
|
|
475
|
-
cache = parseInt(new URLSearchParams(url).get('cache'), 10);
|
|
476
|
-
|
|
477
|
-
if (!(cache && dataset.cache === cache)) {
|
|
478
|
-
_context6.next = 9;
|
|
479
|
-
break;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
return _context6.abrupt("return", false);
|
|
483
|
-
|
|
484
|
-
case 9:
|
|
485
|
-
dataset.cache = cache;
|
|
486
|
-
_context6.next = 12;
|
|
487
|
-
return request({
|
|
488
|
-
url: url,
|
|
489
|
-
format: mapFormat,
|
|
490
|
-
accessToken: accessToken
|
|
491
|
-
});
|
|
492
|
-
|
|
493
|
-
case 12:
|
|
494
|
-
data = _context6.sent;
|
|
495
|
-
dataset.data = data;
|
|
496
|
-
return _context6.abrupt("return", true);
|
|
497
|
-
|
|
498
|
-
case 15:
|
|
499
|
-
case "end":
|
|
500
|
-
return _context6.stop();
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
}, _callee6);
|
|
504
|
-
}));
|
|
505
|
-
return _fetchMapDataset2.apply(this, arguments);
|
|
340
|
+
dataset.cache = cache;
|
|
341
|
+
const data = await request({
|
|
342
|
+
url,
|
|
343
|
+
format: mapFormat,
|
|
344
|
+
accessToken
|
|
345
|
+
});
|
|
346
|
+
dataset.data = data;
|
|
347
|
+
return true;
|
|
506
348
|
}
|
|
507
349
|
|
|
508
|
-
function fillInMapDatasets(
|
|
509
|
-
|
|
350
|
+
async function fillInMapDatasets({
|
|
351
|
+
datasets,
|
|
352
|
+
publicToken
|
|
353
|
+
}) {
|
|
354
|
+
const promises = datasets.map(dataset => _fetchMapDataset(dataset, publicToken));
|
|
355
|
+
return await Promise.all(promises);
|
|
510
356
|
}
|
|
511
357
|
|
|
512
|
-
function
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
});
|
|
523
|
-
_context7.next = 4;
|
|
524
|
-
return Promise.all(promises);
|
|
525
|
-
|
|
526
|
-
case 4:
|
|
527
|
-
return _context7.abrupt("return", _context7.sent);
|
|
528
|
-
|
|
529
|
-
case 5:
|
|
530
|
-
case "end":
|
|
531
|
-
return _context7.stop();
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
}, _callee7);
|
|
535
|
-
}));
|
|
536
|
-
return _fillInMapDatasets.apply(this, arguments);
|
|
537
|
-
}
|
|
358
|
+
async function fetchMap({
|
|
359
|
+
cartoMapId,
|
|
360
|
+
credentials,
|
|
361
|
+
autoRefresh,
|
|
362
|
+
onNewData
|
|
363
|
+
}) {
|
|
364
|
+
const defaultCredentials = (0, _config.getDefaultCredentials)();
|
|
365
|
+
const localCreds = { ...(defaultCredentials.apiVersion === _mapsApiCommon.API_VERSIONS.V3 && defaultCredentials),
|
|
366
|
+
...credentials
|
|
367
|
+
};
|
|
538
368
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
369
|
+
_core.log.assert(cartoMapId, "Must define CARTO map id: fetchMap({cartoMapId: 'XXXX-XXXX-XXXX'})");
|
|
370
|
+
|
|
371
|
+
_core.log.assert(localCreds.apiVersion === _mapsApiCommon.API_VERSIONS.V3, 'Method only available for v3');
|
|
542
372
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
url = "".concat(localCreds.mapsUrl, "/public/").concat(mapId);
|
|
572
|
-
_context9.next = 10;
|
|
573
|
-
return request({
|
|
574
|
-
url: url
|
|
575
|
-
});
|
|
576
|
-
|
|
577
|
-
case 10:
|
|
578
|
-
map = _context9.sent;
|
|
579
|
-
|
|
580
|
-
if (autoRefresh) {
|
|
581
|
-
setInterval((0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee8() {
|
|
582
|
-
var changed;
|
|
583
|
-
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
584
|
-
while (1) {
|
|
585
|
-
switch (_context8.prev = _context8.next) {
|
|
586
|
-
case 0:
|
|
587
|
-
_context8.next = 2;
|
|
588
|
-
return fillInMapDatasets(map);
|
|
589
|
-
|
|
590
|
-
case 2:
|
|
591
|
-
changed = _context8.sent;
|
|
592
|
-
|
|
593
|
-
if (changed.some(function (v) {
|
|
594
|
-
return v === true;
|
|
595
|
-
})) {
|
|
596
|
-
onNewData((0, _parseMap.parseMap)(map));
|
|
597
|
-
}
|
|
598
|
-
|
|
599
|
-
case 4:
|
|
600
|
-
case "end":
|
|
601
|
-
return _context8.stop();
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
}, _callee8);
|
|
605
|
-
})), autoRefresh * 1000);
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
_context9.next = 14;
|
|
609
|
-
return fillInMapDatasets(map);
|
|
610
|
-
|
|
611
|
-
case 14:
|
|
612
|
-
return _context9.abrupt("return", (0, _parseMap.parseMap)(map));
|
|
613
|
-
|
|
614
|
-
case 15:
|
|
615
|
-
case "end":
|
|
616
|
-
return _context9.stop();
|
|
617
|
-
}
|
|
373
|
+
_core.log.assert(localCreds.apiBaseUrl, 'Must define apiBaseUrl');
|
|
374
|
+
|
|
375
|
+
if (!localCreds.mapsUrl) {
|
|
376
|
+
localCreds.mapsUrl = (0, _config.buildMapsUrlFromBase)(localCreds.apiBaseUrl);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
if (autoRefresh || onNewData) {
|
|
380
|
+
_core.log.assert(onNewData, 'Must define `onNewData` when using autoRefresh');
|
|
381
|
+
|
|
382
|
+
_core.log.assert(typeof onNewData === 'function', '`onNewData` must be a function');
|
|
383
|
+
|
|
384
|
+
_core.log.assert(autoRefresh > 0, '`autoRefresh` must be a positive number');
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
const url = "".concat(localCreds.mapsUrl, "/public/").concat(cartoMapId);
|
|
388
|
+
const map = await request({
|
|
389
|
+
url
|
|
390
|
+
});
|
|
391
|
+
let stopAutoRefresh;
|
|
392
|
+
|
|
393
|
+
if (autoRefresh) {
|
|
394
|
+
const intervalId = setInterval(async () => {
|
|
395
|
+
const changed = await fillInMapDatasets(map);
|
|
396
|
+
|
|
397
|
+
if (changed.some(v => v === true)) {
|
|
398
|
+
onNewData((0, _parseMap.parseMap)(map));
|
|
618
399
|
}
|
|
619
|
-
},
|
|
620
|
-
|
|
621
|
-
|
|
400
|
+
}, autoRefresh * 1000);
|
|
401
|
+
|
|
402
|
+
stopAutoRefresh = () => {
|
|
403
|
+
clearInterval(intervalId);
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
await fillInMapDatasets(map);
|
|
408
|
+
return { ...(0, _parseMap.parseMap)(map),
|
|
409
|
+
...{
|
|
410
|
+
stopAutoRefresh
|
|
411
|
+
}
|
|
412
|
+
};
|
|
622
413
|
}
|
|
623
414
|
//# sourceMappingURL=maps-v3-client.js.map
|