@deck.gl/carto 9.0.13 → 9.0.14
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/api/request-with-parameters.d.ts +1 -1
- package/dist/api/request-with-parameters.d.ts.map +1 -1
- package/dist/api/request-with-parameters.js +6 -3
- package/dist/cartoRasterTile-worker.js +1 -1
- package/dist/cartoSpatialTile-worker.js +1 -1
- package/dist/cartoVectorTile-worker.js +1 -1
- package/dist/dist.dev.js +17 -14
- package/dist/index.cjs +19 -16
- package/dist/index.cjs.map +3 -3
- package/dist/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/sources/base-source.d.ts +1 -1
- package/dist/sources/base-source.d.ts.map +1 -1
- package/dist/sources/boundary-query-source.js +2 -2
- package/dist/sources/boundary-table-source.js +1 -1
- package/dist/sources/h3-query-source.js +1 -1
- package/dist/sources/quadbin-query-source.js +1 -1
- package/dist/sources/vector-query-source.js +2 -2
- package/dist/sources/vector-table-source.js +1 -1
- package/dist.min.js +9 -9
- package/package.json +2 -2
- package/src/api/request-with-parameters.ts +12 -9
- package/src/sources/base-source.ts +1 -1
- package/src/sources/boundary-query-source.ts +4 -4
- package/src/sources/boundary-table-source.ts +2 -2
- package/src/sources/h3-query-source.ts +2 -2
- package/src/sources/quadbin-query-source.ts +2 -2
- package/src/sources/vector-query-source.ts +4 -4
- package/src/sources/vector-table-source.ts +2 -2
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "CARTO official integration with Deck.gl. Build geospatial applications using CARTO and Deck.gl.",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"version": "9.0.
|
|
6
|
+
"version": "9.0.14",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"@deck.gl/layers": "^9.0.0",
|
|
74
74
|
"@loaders.gl/core": "^4.2.0"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "c04824ba260eab253cf0fd5d743ce8c3dada0762"
|
|
77
77
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import {isPureObject} from '@loaders.gl/core';
|
|
1
2
|
import {CartoAPIError} from './carto-api-error';
|
|
2
3
|
import {DEFAULT_HEADERS, DEFAULT_PARAMETERS, MAX_GET_LENGTH} from './common';
|
|
3
4
|
import type {APIErrorContext} from './types';
|
|
@@ -5,8 +6,11 @@ import type {APIErrorContext} from './types';
|
|
|
5
6
|
/**
|
|
6
7
|
* Simple encode parameter
|
|
7
8
|
*/
|
|
8
|
-
function encodeParameter(name: string, value:
|
|
9
|
-
|
|
9
|
+
function encodeParameter(name: string, value: unknown): string {
|
|
10
|
+
if (isPureObject(value) || Array.isArray(value)) {
|
|
11
|
+
return `${name}=${encodeURIComponent(JSON.stringify(value))}`;
|
|
12
|
+
}
|
|
13
|
+
return `${name}=${encodeURIComponent(value as string | boolean | number)}`;
|
|
10
14
|
}
|
|
11
15
|
|
|
12
16
|
const REQUEST_CACHE = new Map<string, Promise<unknown>>();
|
|
@@ -17,10 +21,11 @@ export async function requestWithParameters<T = any>({
|
|
|
17
21
|
errorContext
|
|
18
22
|
}: {
|
|
19
23
|
baseUrl: string;
|
|
20
|
-
parameters?: Record<string,
|
|
24
|
+
parameters?: Record<string, unknown>;
|
|
21
25
|
headers: Record<string, string>;
|
|
22
26
|
errorContext: APIErrorContext;
|
|
23
27
|
}): Promise<T> {
|
|
28
|
+
parameters = {...DEFAULT_PARAMETERS, ...parameters};
|
|
24
29
|
const key = createCacheKey(baseUrl, parameters || {}, customHeaders || {});
|
|
25
30
|
if (REQUEST_CACHE.has(key)) {
|
|
26
31
|
return REQUEST_CACHE.get(key) as Promise<T>;
|
|
@@ -58,7 +63,7 @@ export async function requestWithParameters<T = any>({
|
|
|
58
63
|
|
|
59
64
|
function createCacheKey(
|
|
60
65
|
baseUrl: string,
|
|
61
|
-
parameters: Record<string,
|
|
66
|
+
parameters: Record<string, unknown>,
|
|
62
67
|
headers: Record<string, string>
|
|
63
68
|
): string {
|
|
64
69
|
const parameterEntries = Object.entries(parameters).sort(([a], [b]) => (a > b ? 1 : -1));
|
|
@@ -66,11 +71,9 @@ function createCacheKey(
|
|
|
66
71
|
return JSON.stringify({baseUrl, parameters: parameterEntries, headers: headerEntries});
|
|
67
72
|
}
|
|
68
73
|
|
|
69
|
-
function createURLWithParameters(baseUrl: string, parameters: Record<string,
|
|
70
|
-
const encodedParameters = Object.entries(
|
|
71
|
-
(
|
|
72
|
-
return encodeParameter(key, value);
|
|
73
|
-
}
|
|
74
|
+
function createURLWithParameters(baseUrl: string, parameters: Record<string, unknown>): string {
|
|
75
|
+
const encodedParameters = Object.entries(parameters).map(([key, value]) =>
|
|
76
|
+
encodeParameter(key, value)
|
|
74
77
|
);
|
|
75
78
|
return `${baseUrl}?${encodedParameters.join('&')}`;
|
|
76
79
|
}
|
|
@@ -19,7 +19,7 @@ export const SOURCE_DEFAULTS: SourceOptionalOptions = {
|
|
|
19
19
|
headers: {}
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
export async function baseSource<UrlParameters extends Record<string,
|
|
22
|
+
export async function baseSource<UrlParameters extends Record<string, unknown>>(
|
|
23
23
|
endpoint: MapType,
|
|
24
24
|
options: Partial<SourceOptionalOptions> & SourceRequiredOptions,
|
|
25
25
|
urlParameters: UrlParameters
|
|
@@ -12,11 +12,11 @@ export type BoundaryQuerySourceOptions = SourceOptions &
|
|
|
12
12
|
};
|
|
13
13
|
type UrlParameters = {
|
|
14
14
|
columns?: string;
|
|
15
|
-
filters?: string
|
|
15
|
+
filters?: Record<string, unknown>;
|
|
16
16
|
tilesetTableName: string;
|
|
17
17
|
matchingColumn: string;
|
|
18
18
|
propertiesSqlQuery: string;
|
|
19
|
-
queryParameters?: string;
|
|
19
|
+
queryParameters?: Record<string, unknown> | unknown[];
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
export const boundaryQuerySource = async function (
|
|
@@ -40,10 +40,10 @@ export const boundaryQuerySource = async function (
|
|
|
40
40
|
urlParameters.columns = columns.join(',');
|
|
41
41
|
}
|
|
42
42
|
if (filters) {
|
|
43
|
-
urlParameters.filters =
|
|
43
|
+
urlParameters.filters = filters;
|
|
44
44
|
}
|
|
45
45
|
if (queryParameters) {
|
|
46
|
-
urlParameters.queryParameters =
|
|
46
|
+
urlParameters.queryParameters = queryParameters;
|
|
47
47
|
}
|
|
48
48
|
return baseSource<UrlParameters>('boundary', options, urlParameters) as Promise<TilejsonResult>;
|
|
49
49
|
};
|
|
@@ -9,7 +9,7 @@ export type BoundaryTableSourceOptions = SourceOptions &
|
|
|
9
9
|
propertiesTableName: string;
|
|
10
10
|
};
|
|
11
11
|
type UrlParameters = {
|
|
12
|
-
filters?: string
|
|
12
|
+
filters?: Record<string, unknown>;
|
|
13
13
|
tilesetTableName: string;
|
|
14
14
|
columns?: string;
|
|
15
15
|
matchingColumn: string;
|
|
@@ -30,7 +30,7 @@ export const boundaryTableSource = async function (
|
|
|
30
30
|
urlParameters.columns = columns.join(',');
|
|
31
31
|
}
|
|
32
32
|
if (filters) {
|
|
33
|
-
urlParameters.filters =
|
|
33
|
+
urlParameters.filters = filters;
|
|
34
34
|
}
|
|
35
35
|
return baseSource<UrlParameters>('boundary', options, urlParameters) as Promise<TilejsonResult>;
|
|
36
36
|
};
|
|
@@ -16,7 +16,7 @@ type UrlParameters = {
|
|
|
16
16
|
spatialDataType: SpatialDataType;
|
|
17
17
|
spatialDataColumn?: string;
|
|
18
18
|
q: string;
|
|
19
|
-
queryParameters?: string;
|
|
19
|
+
queryParameters?: Record<string, unknown> | unknown[];
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
export const h3QuerySource = async function (
|
|
@@ -40,7 +40,7 @@ export const h3QuerySource = async function (
|
|
|
40
40
|
urlParameters.aggregationResLevel = String(aggregationResLevel);
|
|
41
41
|
}
|
|
42
42
|
if (queryParameters) {
|
|
43
|
-
urlParameters.queryParameters =
|
|
43
|
+
urlParameters.queryParameters = queryParameters;
|
|
44
44
|
}
|
|
45
45
|
return baseSource<UrlParameters>('query', options, urlParameters) as Promise<TilejsonResult>;
|
|
46
46
|
};
|
|
@@ -17,7 +17,7 @@ type UrlParameters = {
|
|
|
17
17
|
spatialDataType: SpatialDataType;
|
|
18
18
|
spatialDataColumn?: string;
|
|
19
19
|
q: string;
|
|
20
|
-
queryParameters?: string;
|
|
20
|
+
queryParameters?: Record<string, unknown> | unknown[];
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
export const quadbinQuerySource = async function (
|
|
@@ -41,7 +41,7 @@ export const quadbinQuerySource = async function (
|
|
|
41
41
|
urlParameters.aggregationResLevel = String(aggregationResLevel);
|
|
42
42
|
}
|
|
43
43
|
if (queryParameters) {
|
|
44
|
-
urlParameters.queryParameters =
|
|
44
|
+
urlParameters.queryParameters = queryParameters;
|
|
45
45
|
}
|
|
46
46
|
return baseSource<UrlParameters>('query', options, urlParameters) as Promise<TilejsonResult>;
|
|
47
47
|
};
|
|
@@ -17,12 +17,12 @@ export type VectorQuerySourceOptions = SourceOptions &
|
|
|
17
17
|
|
|
18
18
|
type UrlParameters = {
|
|
19
19
|
columns?: string;
|
|
20
|
-
filters?: string
|
|
20
|
+
filters?: Record<string, unknown>;
|
|
21
21
|
spatialDataType: SpatialDataType;
|
|
22
22
|
spatialDataColumn?: string;
|
|
23
23
|
tileResolution?: string;
|
|
24
24
|
q: string;
|
|
25
|
-
queryParameters?: string;
|
|
25
|
+
queryParameters?: Record<string, unknown> | unknown[];
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
export const vectorQuerySource = async function (
|
|
@@ -48,10 +48,10 @@ export const vectorQuerySource = async function (
|
|
|
48
48
|
urlParameters.columns = columns.join(',');
|
|
49
49
|
}
|
|
50
50
|
if (filters) {
|
|
51
|
-
urlParameters.filters =
|
|
51
|
+
urlParameters.filters = filters;
|
|
52
52
|
}
|
|
53
53
|
if (queryParameters) {
|
|
54
|
-
urlParameters.queryParameters =
|
|
54
|
+
urlParameters.queryParameters = queryParameters;
|
|
55
55
|
}
|
|
56
56
|
return baseSource<UrlParameters>('query', options, urlParameters) as Promise<TilejsonResult>;
|
|
57
57
|
};
|
|
@@ -16,7 +16,7 @@ export type VectorTableSourceOptions = SourceOptions &
|
|
|
16
16
|
ColumnsOption;
|
|
17
17
|
type UrlParameters = {
|
|
18
18
|
columns?: string;
|
|
19
|
-
filters?: string
|
|
19
|
+
filters?: Record<string, unknown>;
|
|
20
20
|
spatialDataType: SpatialDataType;
|
|
21
21
|
spatialDataColumn?: string;
|
|
22
22
|
tileResolution?: string;
|
|
@@ -45,7 +45,7 @@ export const vectorTableSource = async function (
|
|
|
45
45
|
urlParameters.columns = columns.join(',');
|
|
46
46
|
}
|
|
47
47
|
if (filters) {
|
|
48
|
-
urlParameters.filters =
|
|
48
|
+
urlParameters.filters = filters;
|
|
49
49
|
}
|
|
50
50
|
return baseSource<UrlParameters>('table', options, urlParameters) as Promise<TilejsonResult>;
|
|
51
51
|
};
|