ol 6.9.1-dev.1637438726573 → 6.9.1-dev.1637596194857

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/functions.d.ts CHANGED
@@ -24,4 +24,10 @@ export function VOID(): void;
24
24
  * @template ReturnType
25
25
  */
26
26
  export function memoizeOne<ReturnType_1>(fn: (...arg0: any[]) => ReturnType_1): (...arg0: any[]) => ReturnType_1;
27
+ /**
28
+ * @template T
29
+ * @param {function(): (T | Promise<T>)} getter A function that returns a value or a promise for a value.
30
+ * @return {Promise<T>} A promise for the value.
31
+ */
32
+ export function toPromise<T>(getter: () => T | Promise<T>): Promise<T>;
27
33
  //# sourceMappingURL=functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["src/functions.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,gCAEC;AAED;;;GAGG;AACH,iCAEC;AAED;;;;GAIG;AACH,6BAAyB;AAEzB;;;;;;;;GAQG;AACH,iHAqBC"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["src/functions.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,gCAEC;AAED;;;GAGG;AACH,iCAEC;AAED;;;;GAIG;AACH,6BAAyB;AAEzB;;;;;;;;GAQG;AACH,iHAqBC;AAED;;;;GAIG;AACH,uEAcC"}
package/functions.js CHANGED
@@ -49,4 +49,25 @@ export function memoizeOne(fn) {
49
49
  return lastResult;
50
50
  };
51
51
  }
52
+ /**
53
+ * @template T
54
+ * @param {function(): (T | Promise<T>)} getter A function that returns a value or a promise for a value.
55
+ * @return {Promise<T>} A promise for the value.
56
+ */
57
+ export function toPromise(getter) {
58
+ function promiseGetter() {
59
+ var value;
60
+ try {
61
+ value = getter();
62
+ }
63
+ catch (err) {
64
+ return Promise.reject(err);
65
+ }
66
+ if (value instanceof Promise) {
67
+ return value;
68
+ }
69
+ return Promise.resolve(value);
70
+ }
71
+ return promiseGetter();
72
+ }
52
73
  //# sourceMappingURL=functions.js.map
package/functions.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["src/functions.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,MAAM,IAAI,WAAW,EAAC,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,KAAI,CAAC;AAEzB;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,yBAAyB;IACzB,IAAI,UAAU,CAAC;IAEf,yBAAyB;IACzB,IAAI,QAAQ,CAAC;IAEb,IAAI,QAAQ,CAAC;IAEb,OAAO;QACL,IAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACpE,MAAM,GAAG,IAAI,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,QAAQ,CAAC;YACpB,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACxC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["src/functions.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,MAAM,IAAI,WAAW,EAAC,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,KAAI,CAAC;AAEzB;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,yBAAyB;IACzB,IAAI,UAAU,CAAC;IAEf,yBAAyB;IACzB,IAAI,QAAQ,CAAC;IAEb,IAAI,QAAQ,CAAC;IAEb,OAAO;QACL,IAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACpE,MAAM,GAAG,IAAI,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,QAAQ,CAAC;YACpB,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACxC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,MAAM;IAC9B,SAAS,aAAa;QACpB,IAAI,KAAK,CAAC;QACV,IAAI;YACF,KAAK,GAAG,MAAM,EAAE,CAAC;SAClB;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,KAAK,YAAY,OAAO,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ol",
3
- "version": "6.9.1-dev.1637438726573",
3
+ "version": "6.9.1-dev.1637596194857",
4
4
  "description": "OpenLayers mapping library",
5
5
  "keywords": [
6
6
  "map",
@@ -1,10 +1,15 @@
1
1
  export default DataTileSource;
2
+ /**
3
+ * Data tile loading function. The function is called with z, x, and y tile coordinates and
4
+ * returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
5
+ */
6
+ export type Loader = (arg0: number, arg1: number, arg2: number) => DataView | Uint8Array | Uint8ClampedArray | Float32Array | Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>;
2
7
  export type Options = {
3
8
  /**
4
9
  * Data loader. Called with z, x, and y tile coordinates.
5
- * Returns a promise that resolves to a {@link import("../DataTile.js").Data}.
10
+ * Returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
6
11
  */
7
- loader?: (arg0: number, arg1: number, arg2: number) => Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>;
12
+ loader?: (arg0: number, arg1: number, arg2: number) => DataView | Uint8Array | Uint8ClampedArray | Float32Array | Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>;
8
13
  /**
9
14
  * Optional max zoom level. Not used if `tileGrid` is provided.
10
15
  */
@@ -54,10 +59,15 @@ export type Options = {
54
59
  */
55
60
  bandCount?: number;
56
61
  };
62
+ /**
63
+ * Data tile loading function. The function is called with z, x, and y tile coordinates and
64
+ * returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
65
+ * @typedef {function(number, number, number) : (import("../DataTile.js").Data|Promise<import("../DataTile.js").Data>)} Loader
66
+ */
57
67
  /**
58
68
  * @typedef {Object} Options
59
- * @property {function(number, number, number) : Promise<import("../DataTile.js").Data>} [loader] Data loader. Called with z, x, and y tile coordinates.
60
- * Returns a promise that resolves to a {@link import("../DataTile.js").Data}.
69
+ * @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.
70
+ * Returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
61
71
  * @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.
62
72
  * @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.
63
73
  * @property {number|import("../size.js").Size} [tileSize=[256, 256]] The pixel width and height of the tiles.
@@ -73,7 +83,7 @@ export type Options = {
73
83
  */
74
84
  /**
75
85
  * @classdesc
76
- * Base class for sources providing tiles divided into a tile grid.
86
+ * A source for typed array data tiles.
77
87
  *
78
88
  * @fires import("./Tile.js").TileSourceEvent
79
89
  * @api
@@ -102,10 +112,10 @@ declare class DataTileSource extends TileSource {
102
112
  */
103
113
  bandCount: number;
104
114
  /**
105
- * @param {function(number, number, number) : Promise<import("../DataTile.js").Data>} loader The data loader.
115
+ * @param {Loader} loader The data loader.
106
116
  * @protected
107
117
  */
108
- protected setLoader(loader: (arg0: number, arg1: number, arg2: number) => Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>): void;
118
+ protected setLoader(loader: (arg0: number, arg1: number, arg2: number) => DataView | Uint8Array | Uint8ClampedArray | Float32Array | Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>): void;
109
119
  /**
110
120
  * @abstract
111
121
  * @param {number} z Tile coordinate z.
@@ -1 +1 @@
1
- {"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["../src/source/DataTile.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH;IACE;;OAEG;IACH,8BA2CC;IAjBC;;;OAGG;IACH,yBAA0B;IAE1B;;OAEG;IACH,gBAA6B;IAgD/B;;;OAGG;IACH,qEAoBC;IApEC;;OAEG;IACH,WAFU,MAAM,CAEwD;IAG1E;;;OAGG;IACH,mJAEC;IAED;;;;;;;;OAQG;IACH,4HAmBC;CA2BF"}
1
+ {"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["../src/source/DataTile.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH;IACE;;OAEG;IACH,8BA2CC;IAjBC;;;OAGG;IACH,yBAA0B;IAE1B;;OAEG;IACH,gBAA6B;IAmD/B;;;OAGG;IACH,qEAoBC;IAvEC;;OAEG;IACH,WAFU,MAAM,CAEwD;IAG1E;;;OAGG;IACH,8MAEC;IAED;;;;;;;;OAQG;IACH,4HAsBC;CA2BF"}
@@ -25,10 +25,16 @@ import { assign } from '../obj.js';
25
25
  import { createXYZ, extentFromProjection } from '../tilegrid.js';
26
26
  import { getKeyZXY } from '../tilecoord.js';
27
27
  import { getUid } from '../util.js';
28
+ import { toPromise } from '../functions.js';
29
+ /**
30
+ * Data tile loading function. The function is called with z, x, and y tile coordinates and
31
+ * returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
32
+ * @typedef {function(number, number, number) : (import("../DataTile.js").Data|Promise<import("../DataTile.js").Data>)} Loader
33
+ */
28
34
  /**
29
35
  * @typedef {Object} Options
30
- * @property {function(number, number, number) : Promise<import("../DataTile.js").Data>} [loader] Data loader. Called with z, x, and y tile coordinates.
31
- * Returns a promise that resolves to a {@link import("../DataTile.js").Data}.
36
+ * @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.
37
+ * Returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
32
38
  * @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.
33
39
  * @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.
34
40
  * @property {number|import("../size.js").Size} [tileSize=[256, 256]] The pixel width and height of the tiles.
@@ -44,7 +50,7 @@ import { getUid } from '../util.js';
44
50
  */
45
51
  /**
46
52
  * @classdesc
47
- * Base class for sources providing tiles divided into a tile grid.
53
+ * A source for typed array data tiles.
48
54
  *
49
55
  * @fires import("./Tile.js").TileSourceEvent
50
56
  * @api
@@ -94,7 +100,7 @@ var DataTileSource = /** @class */ (function (_super) {
94
100
  return _this;
95
101
  }
96
102
  /**
97
- * @param {function(number, number, number) : Promise<import("../DataTile.js").Data>} loader The data loader.
103
+ * @param {Loader} loader The data loader.
98
104
  * @protected
99
105
  */
100
106
  DataTileSource.prototype.setLoader = function (loader) {
@@ -116,7 +122,9 @@ var DataTileSource = /** @class */ (function (_super) {
116
122
  }
117
123
  var sourceLoader = this.loader_;
118
124
  function loader() {
119
- return sourceLoader(z, x, y);
125
+ return toPromise(function () {
126
+ return sourceLoader(z, x, y);
127
+ });
120
128
  }
121
129
  var tile = new DataTile(assign({ tileCoord: [z, x, y], loader: loader }, this.tileOptions));
122
130
  tile.key = this.getKey();
@@ -1 +1 @@
1
- {"version":3,"file":"DataTile.js","sourceRoot":"","sources":["../src/source/DataTile.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTile.js","sourceRoot":"","sources":["../src/source/DataTile.js"],"names":[],"mappings":"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"}
package/src/functions.js CHANGED
@@ -58,3 +58,24 @@ export function memoizeOne(fn) {
58
58
  return lastResult;
59
59
  };
60
60
  }
61
+
62
+ /**
63
+ * @template T
64
+ * @param {function(): (T | Promise<T>)} getter A function that returns a value or a promise for a value.
65
+ * @return {Promise<T>} A promise for the value.
66
+ */
67
+ export function toPromise(getter) {
68
+ function promiseGetter() {
69
+ let value;
70
+ try {
71
+ value = getter();
72
+ } catch (err) {
73
+ return Promise.reject(err);
74
+ }
75
+ if (value instanceof Promise) {
76
+ return value;
77
+ }
78
+ return Promise.resolve(value);
79
+ }
80
+ return promiseGetter();
81
+ }
@@ -10,11 +10,18 @@ import {assign} from '../obj.js';
10
10
  import {createXYZ, extentFromProjection} from '../tilegrid.js';
11
11
  import {getKeyZXY} from '../tilecoord.js';
12
12
  import {getUid} from '../util.js';
13
+ import {toPromise} from '../functions.js';
14
+
15
+ /**
16
+ * Data tile loading function. The function is called with z, x, and y tile coordinates and
17
+ * returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
18
+ * @typedef {function(number, number, number) : (import("../DataTile.js").Data|Promise<import("../DataTile.js").Data>)} Loader
19
+ */
13
20
 
14
21
  /**
15
22
  * @typedef {Object} Options
16
- * @property {function(number, number, number) : Promise<import("../DataTile.js").Data>} [loader] Data loader. Called with z, x, and y tile coordinates.
17
- * Returns a promise that resolves to a {@link import("../DataTile.js").Data}.
23
+ * @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.
24
+ * Returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
18
25
  * @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.
19
26
  * @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.
20
27
  * @property {number|import("../size.js").Size} [tileSize=[256, 256]] The pixel width and height of the tiles.
@@ -31,7 +38,7 @@ import {getUid} from '../util.js';
31
38
 
32
39
  /**
33
40
  * @classdesc
34
- * Base class for sources providing tiles divided into a tile grid.
41
+ * A source for typed array data tiles.
35
42
  *
36
43
  * @fires import("./Tile.js").TileSourceEvent
37
44
  * @api
@@ -86,7 +93,7 @@ class DataTileSource extends TileSource {
86
93
  }
87
94
 
88
95
  /**
89
- * @param {function(number, number, number) : Promise<import("../DataTile.js").Data>} loader The data loader.
96
+ * @param {Loader} loader The data loader.
90
97
  * @protected
91
98
  */
92
99
  setLoader(loader) {
@@ -109,8 +116,11 @@ class DataTileSource extends TileSource {
109
116
  }
110
117
 
111
118
  const sourceLoader = this.loader_;
119
+
112
120
  function loader() {
113
- return sourceLoader(z, x, y);
121
+ return toPromise(function () {
122
+ return sourceLoader(z, x, y);
123
+ });
114
124
  }
115
125
 
116
126
  const tile = new DataTile(
package/util.js CHANGED
@@ -31,5 +31,5 @@ export function getUid(obj) {
31
31
  * OpenLayers version.
32
32
  * @type {string}
33
33
  */
34
- export var VERSION = '6.9.1-dev.1637438726573';
34
+ export var VERSION = '6.9.1-dev.1637596194857';
35
35
  //# sourceMappingURL=util.js.map