@loaders.gl/loader-utils 4.2.0-alpha.5 → 4.2.0-beta.1
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/index.cjs +79 -15
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/json-loader.d.ts +18 -2
- package/dist/json-loader.d.ts.map +1 -1
- package/dist/json-loader.js +3 -1
- package/dist/lib/file-provider/data-view-file.js +2 -0
- package/dist/lib/file-provider/file-handle-file.js +2 -0
- package/dist/lib/files/blob-file.js +4 -0
- package/dist/lib/files/http-file.js +4 -2
- package/dist/lib/files/node-file-facade.js +4 -3
- package/dist/lib/filesystems/node-filesystem-facade.js +4 -4
- package/dist/lib/log-utils/log.d.ts +4 -0
- package/dist/lib/log-utils/log.d.ts.map +1 -0
- package/dist/lib/log-utils/log.js +6 -0
- package/dist/lib/module-utils/js-module-utils.d.ts +18 -0
- package/dist/lib/module-utils/js-module-utils.d.ts.map +1 -0
- package/dist/lib/module-utils/js-module-utils.js +39 -0
- package/dist/lib/request-utils/request-scheduler.js +7 -5
- package/dist/lib/sources/data-source.js +6 -1
- package/dist/lib/sources/image-source.js +2 -2
- package/dist/lib/sources/tile-source-adapter.d.ts +1 -1
- package/dist/lib/sources/tile-source-adapter.d.ts.map +1 -1
- package/dist/lib/sources/tile-source-adapter.js +1 -0
- package/dist/loader-types.d.ts +6 -4
- package/dist/loader-types.d.ts.map +1 -1
- package/dist/writer-types.d.ts +2 -0
- package/dist/writer-types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +5 -0
- package/src/json-loader.ts +4 -2
- package/src/lib/log-utils/log.ts +8 -0
- package/src/lib/module-utils/js-module-utils.ts +44 -0
- package/src/lib/sources/tile-source-adapter.ts +1 -1
- package/src/loader-types.ts +9 -4
- package/src/writer-types.ts +6 -0
|
@@ -12,10 +12,6 @@ const NOT_IMPLEMENTED = new Error('Not implemented');
|
|
|
12
12
|
export class NodeFileSystemFacade {
|
|
13
13
|
// implements FileSystem
|
|
14
14
|
constructor(options) {
|
|
15
|
-
// DUMMY IMPLEMENTATION, not used (constructor returns a real NodeFileSystem instance)
|
|
16
|
-
// implements RandomAccessReadFileSystem
|
|
17
|
-
this.readable = true;
|
|
18
|
-
this.writable = true;
|
|
19
15
|
if (globalThis.loaders?.NodeFileSystem) {
|
|
20
16
|
return new globalThis.loaders.NodeFileSystem(options);
|
|
21
17
|
}
|
|
@@ -24,6 +20,10 @@ export class NodeFileSystemFacade {
|
|
|
24
20
|
}
|
|
25
21
|
throw new Error('Can\'t instantiate NodeFileSystem. Make sure to import @loaders.gl/polyfills first.');
|
|
26
22
|
}
|
|
23
|
+
// DUMMY IMPLEMENTATION, not used (constructor returns a real NodeFileSystem instance)
|
|
24
|
+
// implements RandomAccessReadFileSystem
|
|
25
|
+
readable = true;
|
|
26
|
+
writable = true;
|
|
27
27
|
async openReadableFile(path, flags) {
|
|
28
28
|
throw NOT_IMPLEMENTED;
|
|
29
29
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/lib/log-utils/log.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,GAAG,EAAC,MAAM,eAAe,CAAC;AAElC,0BAA0B;AAC1B,eAAO,MAAM,GAAG,EAAE,GAAiC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Register application-imported modules
|
|
3
|
+
* These modules are typically to big to bundle, or may have issues on some bundlers/environments
|
|
4
|
+
*/
|
|
5
|
+
export declare function registerJSModules(modules?: Record<string, any>): void;
|
|
6
|
+
/**
|
|
7
|
+
* Get a pre-registered application-imported module, warn if not present
|
|
8
|
+
*/
|
|
9
|
+
export declare function checkJSModule(name: string, caller: string): void;
|
|
10
|
+
/**
|
|
11
|
+
* Get a pre-registered application-imported module, throw if not present
|
|
12
|
+
*/
|
|
13
|
+
export declare function getJSModule<ModuleT = any>(name: string, caller: string): ModuleT;
|
|
14
|
+
/**
|
|
15
|
+
* Get a pre-registered application-imported module, return null if not present
|
|
16
|
+
*/
|
|
17
|
+
export declare function getJSModuleOrNull<ModuleT = any>(name: string): ModuleT | null;
|
|
18
|
+
//# sourceMappingURL=js-module-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-module-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/module-utils/js-module-utils.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAIrE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMhF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAG7E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { log } from "../log-utils/log.js";
|
|
5
|
+
/**
|
|
6
|
+
* Register application-imported modules
|
|
7
|
+
* These modules are typically to big to bundle, or may have issues on some bundlers/environments
|
|
8
|
+
*/
|
|
9
|
+
export function registerJSModules(modules) {
|
|
10
|
+
globalThis.loaders ||= {};
|
|
11
|
+
globalThis.loaders.modules ||= {};
|
|
12
|
+
Object.assign(globalThis.loaders.modules, modules);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get a pre-registered application-imported module, warn if not present
|
|
16
|
+
*/
|
|
17
|
+
export function checkJSModule(name, caller) {
|
|
18
|
+
const module = globalThis.loaders?.modules?.[name];
|
|
19
|
+
if (!module) {
|
|
20
|
+
log.warn(`${caller}: ${name} library not installed`)();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get a pre-registered application-imported module, throw if not present
|
|
25
|
+
*/
|
|
26
|
+
export function getJSModule(name, caller) {
|
|
27
|
+
const module = globalThis.loaders?.modules?.[name];
|
|
28
|
+
if (!module) {
|
|
29
|
+
throw new Error(`${caller}: ${name} library not installed`);
|
|
30
|
+
}
|
|
31
|
+
return module;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get a pre-registered application-imported module, return null if not present
|
|
35
|
+
*/
|
|
36
|
+
export function getJSModuleOrNull(name) {
|
|
37
|
+
const module = globalThis.loaders?.modules?.[name];
|
|
38
|
+
return module || null;
|
|
39
|
+
}
|
|
@@ -21,12 +21,14 @@ const DEFAULT_PROPS = {
|
|
|
21
21
|
* @todo - Track requests globally, across multiple servers
|
|
22
22
|
*/
|
|
23
23
|
export default class RequestScheduler {
|
|
24
|
+
props;
|
|
25
|
+
stats;
|
|
26
|
+
activeRequestCount = 0;
|
|
27
|
+
/** Tracks the number of active requests and prioritizes/cancels queued requests. */
|
|
28
|
+
requestQueue = [];
|
|
29
|
+
requestMap = new Map();
|
|
30
|
+
updateTimer = null;
|
|
24
31
|
constructor(props = {}) {
|
|
25
|
-
this.activeRequestCount = 0;
|
|
26
|
-
/** Tracks the number of active requests and prioritizes/cancels queued requests. */
|
|
27
|
-
this.requestQueue = [];
|
|
28
|
-
this.requestMap = new Map();
|
|
29
|
-
this.updateTimer = null;
|
|
30
32
|
this.props = { ...DEFAULT_PROPS, ...props };
|
|
31
33
|
// Returns the statistics used by the request scheduler.
|
|
32
34
|
this.stats = new Stats({ id: this.props.id });
|
|
@@ -3,8 +3,13 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
/** base class of all data sources */
|
|
5
5
|
export class DataSource {
|
|
6
|
+
/** A resolved fetch function extracted from loadOptions prop */
|
|
7
|
+
fetch;
|
|
8
|
+
/** The actual load options, if calling a loaders.gl loader */
|
|
9
|
+
loadOptions;
|
|
10
|
+
_needsRefresh = true;
|
|
11
|
+
props;
|
|
6
12
|
constructor(props) {
|
|
7
|
-
this._needsRefresh = true;
|
|
8
13
|
this.props = { ...props };
|
|
9
14
|
this.loadOptions = { ...props.loadOptions };
|
|
10
15
|
this.fetch = getFetchFunction(this.loadOptions);
|
|
@@ -8,6 +8,6 @@ import { DataSource } from "./data-source.js";
|
|
|
8
8
|
* - If geospatial, bounding box is expected to be in web mercator coordinates
|
|
9
9
|
*/
|
|
10
10
|
export class ImageSource extends DataSource {
|
|
11
|
+
static type = 'template';
|
|
12
|
+
static testURL = (url) => false;
|
|
11
13
|
}
|
|
12
|
-
ImageSource.type = 'template';
|
|
13
|
-
ImageSource.testURL = (url) => false;
|
|
@@ -5,7 +5,7 @@ import { ImageSource, ImageSourceMetadata } from "./image-source.js";
|
|
|
5
5
|
* @note
|
|
6
6
|
* - If geospatial, bounding box is expected to be in web mercator coordinates
|
|
7
7
|
*/
|
|
8
|
-
export declare class TileSourceAdapter
|
|
8
|
+
export declare class TileSourceAdapter implements TileSource<ImageSourceMetadata> {
|
|
9
9
|
readonly viewportSource: ImageSource;
|
|
10
10
|
constructor(source: ImageSource);
|
|
11
11
|
getMetadata(): Promise<ImageSourceMetadata>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile-source-adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/sources/tile-source-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAC,yBAAsB;AAC5D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,0BAAuB;AAEhE;;;;GAIG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"tile-source-adapter.d.ts","sourceRoot":"","sources":["../../../src/lib/sources/tile-source-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAC,yBAAsB;AAC5D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,0BAAuB;AAEhE;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,UAAU,CAAC,mBAAmB,CAAC;IACvE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;gBACzB,MAAM,EAAE,WAAW;IAGzB,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAGjD,sBAAsB;IACtB,OAAO,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAOxD,+BAA+B;IAK/B,gEAAgE;IAChE,SAAS,CAAC,kBAAkB,CAC1B,UAAU,EAAE,iBAAiB,GAC5B,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAc7D,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAO7E"}
|
package/dist/loader-types.d.ts
CHANGED
|
@@ -16,8 +16,6 @@ export type LoaderOptions = {
|
|
|
16
16
|
ignoreRegisteredLoaders?: boolean;
|
|
17
17
|
/** Experimental: Supply a logger to the parser */
|
|
18
18
|
log?: any;
|
|
19
|
-
/** Force to load WASM libraries from local file system in NodeJS or from loaders.gl CDN in a web browser */
|
|
20
|
-
useLocalLibraries?: boolean;
|
|
21
19
|
/** Size of each batch. `auto` matches batches to size of incoming chunks */
|
|
22
20
|
batchSize?: number | 'auto';
|
|
23
21
|
/** Minimal amount of time between batches */
|
|
@@ -30,6 +28,10 @@ export type LoaderOptions = {
|
|
|
30
28
|
metadata?: boolean;
|
|
31
29
|
/** Transforms to run on incoming batches */
|
|
32
30
|
transforms?: TransformBatches[];
|
|
31
|
+
/** Any additional JS libraries */
|
|
32
|
+
modules?: Record<string, any>;
|
|
33
|
+
/** Force to load WASM libraries from local file system in NodeJS or from loaders.gl CDN in a web browser */
|
|
34
|
+
useLocalLibraries?: boolean;
|
|
33
35
|
/** CDN load workers from */
|
|
34
36
|
CDN?: string | null;
|
|
35
37
|
/** Set to `false` to disable workers */
|
|
@@ -86,9 +88,9 @@ type PreloadOptions = {
|
|
|
86
88
|
*/
|
|
87
89
|
export type Loader<DataT = any, BatchT = any, LoaderOptionsT = LoaderOptions> = {
|
|
88
90
|
/** The result type of this loader */
|
|
89
|
-
dataType
|
|
91
|
+
dataType: DataT;
|
|
90
92
|
/** The batched result type of this loader */
|
|
91
|
-
batchType
|
|
93
|
+
batchType: BatchT;
|
|
92
94
|
/** Default Options */
|
|
93
95
|
options: LoaderOptionsT;
|
|
94
96
|
/** Deprecated Options */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-types.d.ts","sourceRoot":"","sources":["../src/loader-types.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,SAAS,EACT,gBAAgB,EACjB,mBAAgB;AACjB,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAI9C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC;IACtD,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAGlC,kDAAkD;IAClD,GAAG,CAAC,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"loader-types.d.ts","sourceRoot":"","sources":["../src/loader-types.ts"],"names":[],"mappings":"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"}
|
package/dist/writer-types.d.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export type WriterOptions = {
|
|
3
3
|
/** worker source. If is set will be used instead of loading worker from the Internet */
|
|
4
4
|
source?: string | null;
|
|
5
|
+
/** Any additional JS libraries */
|
|
6
|
+
modules?: Record<string, any>;
|
|
5
7
|
/** Force to load WASM libraries from local file system in NodeJS or from loaders.gl CDN in a web browser */
|
|
6
8
|
useLocalLibraries?: boolean;
|
|
7
9
|
/** writer-specific options */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer-types.d.ts","sourceRoot":"","sources":["../src/writer-types.ts"],"names":[],"mappings":"AAMA,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GAAG;IAC1B,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"writer-types.d.ts","sourceRoot":"","sources":["../src/writer-types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/loader-utils",
|
|
3
|
-
"version": "4.2.0-
|
|
3
|
+
"version": "4.2.0-beta.1",
|
|
4
4
|
"description": "Framework-independent loaders for 3D graphics formats",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -35,22 +35,22 @@
|
|
|
35
35
|
"README.md"
|
|
36
36
|
],
|
|
37
37
|
"browser": {
|
|
38
|
-
"./src/lib/node/buffer.ts": "./src/lib/node/buffer.browser.ts",
|
|
39
38
|
"./dist/lib/node/buffer.js": "./dist/lib/node/buffer.browser.js",
|
|
40
|
-
"./src/lib/node/fs.ts": "./src/lib/node/fs.browser.ts",
|
|
41
39
|
"./dist/lib/node/fs.js": "./dist/lib/node/fs.browser.js",
|
|
42
|
-
"./src/lib/node/stream.ts": "./src/lib/node/stream.browser.ts",
|
|
43
40
|
"./dist/lib/node/stream.js": "./dist/lib/node/stream.browser.js",
|
|
41
|
+
"./src/lib/node/buffer.ts": "./src/lib/node/buffer.browser.ts",
|
|
42
|
+
"./src/lib/node/fs.ts": "./src/lib/node/fs.browser.ts",
|
|
43
|
+
"./src/lib/node/stream.ts": "./src/lib/node/stream.browser.ts",
|
|
44
44
|
"fs": false,
|
|
45
45
|
"stream": false
|
|
46
46
|
},
|
|
47
|
-
"scripts": {},
|
|
48
47
|
"dependencies": {
|
|
49
|
-
"@loaders.gl/
|
|
48
|
+
"@loaders.gl/schema": "4.2.0-beta.1",
|
|
49
|
+
"@loaders.gl/worker-utils": "4.2.0-beta.1",
|
|
50
50
|
"@probe.gl/stats": "^4.0.2"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"@loaders.gl/core": "^4.0.0"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "c386a9196516fe3ff24847b40e6c77be039cf905"
|
|
56
56
|
}
|
package/src/index.ts
CHANGED
|
@@ -50,7 +50,12 @@ export {
|
|
|
50
50
|
document
|
|
51
51
|
} from './lib/env-utils/globals';
|
|
52
52
|
|
|
53
|
+
export {log} from './lib/log-utils/log';
|
|
54
|
+
|
|
55
|
+
// Options and modules
|
|
53
56
|
export {mergeLoaderOptions} from './lib/option-utils/merge-loader-options';
|
|
57
|
+
export {registerJSModules} from './lib/module-utils/js-module-utils';
|
|
58
|
+
export {checkJSModule, getJSModule, getJSModuleOrNull} from './lib/module-utils/js-module-utils';
|
|
54
59
|
|
|
55
60
|
// LOADERS.GL-SPECIFIC WORKER UTILS
|
|
56
61
|
export {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';
|
package/src/json-loader.ts
CHANGED
|
@@ -11,7 +11,9 @@ export type JSONLoaderOptions = LoaderOptions;
|
|
|
11
11
|
* A JSON Micro loader (minimal bundle size)
|
|
12
12
|
* Alternative to `@loaders.gl/json`
|
|
13
13
|
*/
|
|
14
|
-
export const JSONLoader
|
|
14
|
+
export const JSONLoader = {
|
|
15
|
+
dataType: null as unknown as Table,
|
|
16
|
+
batchType: null as unknown as TableBatch,
|
|
15
17
|
name: 'JSON',
|
|
16
18
|
id: 'json',
|
|
17
19
|
module: 'json',
|
|
@@ -23,7 +25,7 @@ export const JSONLoader: LoaderWithParser<Table, TableBatch, JSONLoaderOptions>
|
|
|
23
25
|
parseTextSync,
|
|
24
26
|
parse: async (arrayBuffer) => parseTextSync(new TextDecoder().decode(arrayBuffer)),
|
|
25
27
|
options: {}
|
|
26
|
-
}
|
|
28
|
+
} as const satisfies LoaderWithParser<Table, TableBatch, JSONLoaderOptions>;
|
|
27
29
|
|
|
28
30
|
// TODO - Better error handling!
|
|
29
31
|
function parseTextSync(text) {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {log} from '../log-utils/log';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Register application-imported modules
|
|
9
|
+
* These modules are typically to big to bundle, or may have issues on some bundlers/environments
|
|
10
|
+
*/
|
|
11
|
+
export function registerJSModules(modules?: Record<string, any>): void {
|
|
12
|
+
globalThis.loaders ||= {};
|
|
13
|
+
globalThis.loaders.modules ||= {};
|
|
14
|
+
Object.assign(globalThis.loaders.modules, modules);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Get a pre-registered application-imported module, warn if not present
|
|
19
|
+
*/
|
|
20
|
+
export function checkJSModule(name: string, caller: string): void {
|
|
21
|
+
const module = globalThis.loaders?.modules?.[name];
|
|
22
|
+
if (!module) {
|
|
23
|
+
log.warn(`${caller}: ${name} library not installed`)();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Get a pre-registered application-imported module, throw if not present
|
|
29
|
+
*/
|
|
30
|
+
export function getJSModule<ModuleT = any>(name: string, caller: string): ModuleT {
|
|
31
|
+
const module = globalThis.loaders?.modules?.[name];
|
|
32
|
+
if (!module) {
|
|
33
|
+
throw new Error(`${caller}: ${name} library not installed`);
|
|
34
|
+
}
|
|
35
|
+
return module;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Get a pre-registered application-imported module, return null if not present
|
|
40
|
+
*/
|
|
41
|
+
export function getJSModuleOrNull<ModuleT = any>(name: string): ModuleT | null {
|
|
42
|
+
const module = globalThis.loaders?.modules?.[name];
|
|
43
|
+
return module || null;
|
|
44
|
+
}
|
|
@@ -9,7 +9,7 @@ import {ImageSource, ImageSourceMetadata} from './image-source';
|
|
|
9
9
|
* @note
|
|
10
10
|
* - If geospatial, bounding box is expected to be in web mercator coordinates
|
|
11
11
|
*/
|
|
12
|
-
export class TileSourceAdapter
|
|
12
|
+
export class TileSourceAdapter implements TileSource<ImageSourceMetadata> {
|
|
13
13
|
readonly viewportSource: ImageSource;
|
|
14
14
|
constructor(source: ImageSource) {
|
|
15
15
|
this.viewportSource = source;
|
package/src/loader-types.ts
CHANGED
|
@@ -29,8 +29,6 @@ export type LoaderOptions = {
|
|
|
29
29
|
// general
|
|
30
30
|
/** Experimental: Supply a logger to the parser */
|
|
31
31
|
log?: any;
|
|
32
|
-
/** Force to load WASM libraries from local file system in NodeJS or from loaders.gl CDN in a web browser */
|
|
33
|
-
useLocalLibraries?: boolean;
|
|
34
32
|
|
|
35
33
|
// batched parsing
|
|
36
34
|
|
|
@@ -47,6 +45,13 @@ export type LoaderOptions = {
|
|
|
47
45
|
/** Transforms to run on incoming batches */
|
|
48
46
|
transforms?: TransformBatches[];
|
|
49
47
|
|
|
48
|
+
// module loading
|
|
49
|
+
|
|
50
|
+
/** Any additional JS libraries */
|
|
51
|
+
modules?: Record<string, any>;
|
|
52
|
+
/** Force to load WASM libraries from local file system in NodeJS or from loaders.gl CDN in a web browser */
|
|
53
|
+
useLocalLibraries?: boolean;
|
|
54
|
+
|
|
50
55
|
// workers
|
|
51
56
|
|
|
52
57
|
/** CDN load workers from */
|
|
@@ -110,9 +115,9 @@ type PreloadOptions = {
|
|
|
110
115
|
*/
|
|
111
116
|
export type Loader<DataT = any, BatchT = any, LoaderOptionsT = LoaderOptions> = {
|
|
112
117
|
/** The result type of this loader */
|
|
113
|
-
dataType
|
|
118
|
+
dataType: DataT;
|
|
114
119
|
/** The batched result type of this loader */
|
|
115
|
-
batchType
|
|
120
|
+
batchType: BatchT;
|
|
116
121
|
|
|
117
122
|
/** Default Options */
|
|
118
123
|
options: LoaderOptionsT;
|
package/src/writer-types.ts
CHANGED
|
@@ -8,8 +8,14 @@
|
|
|
8
8
|
export type WriterOptions = {
|
|
9
9
|
/** worker source. If is set will be used instead of loading worker from the Internet */
|
|
10
10
|
source?: string | null;
|
|
11
|
+
|
|
12
|
+
// module loading
|
|
13
|
+
|
|
14
|
+
/** Any additional JS libraries */
|
|
15
|
+
modules?: Record<string, any>;
|
|
11
16
|
/** Force to load WASM libraries from local file system in NodeJS or from loaders.gl CDN in a web browser */
|
|
12
17
|
useLocalLibraries?: boolean;
|
|
18
|
+
|
|
13
19
|
/** writer-specific options */
|
|
14
20
|
[writerId: string]: any;
|
|
15
21
|
};
|