@loaders.gl/core 3.1.6 → 3.2.0-alpha.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/dist.min.js +720 -29
- package/dist/es5/lib/api/select-loader.js +15 -0
- package/dist/es5/lib/api/select-loader.js.map +1 -1
- package/dist/es5/lib/init.js +14 -4
- package/dist/es5/lib/init.js.map +1 -1
- package/dist/es5/lib/loader-utils/option-defaults.js +4 -1
- package/dist/es5/lib/loader-utils/option-defaults.js.map +1 -1
- package/dist/es5/lib/utils/log.js +14 -0
- package/dist/es5/lib/utils/log.js.map +1 -0
- package/dist/es5/null-loader.js +1 -1
- package/dist/es5/null-loader.js.map +1 -1
- package/dist/esm/lib/api/select-loader.js +14 -0
- package/dist/esm/lib/api/select-loader.js.map +1 -1
- package/dist/esm/lib/init.js +11 -4
- package/dist/esm/lib/init.js.map +1 -1
- package/dist/esm/lib/loader-utils/option-defaults.js +3 -1
- package/dist/esm/lib/loader-utils/option-defaults.js.map +1 -1
- package/dist/esm/lib/utils/log.js +5 -0
- package/dist/esm/lib/utils/log.js.map +1 -0
- package/dist/esm/null-loader.js +1 -1
- package/dist/esm/null-loader.js.map +1 -1
- package/dist/lib/api/select-loader.d.ts.map +1 -1
- package/dist/lib/api/select-loader.js +11 -0
- package/dist/lib/init.d.ts.map +1 -1
- package/dist/lib/init.js +9 -3
- package/dist/lib/loader-utils/option-defaults.d.ts.map +1 -1
- package/dist/lib/loader-utils/option-defaults.js +3 -1
- package/dist/lib/utils/log.d.ts +3 -0
- package/dist/lib/utils/log.d.ts.map +1 -0
- package/dist/lib/utils/log.js +6 -0
- package/dist/null-worker.js +46 -15
- package/package.json +7 -4
- package/src/lib/api/select-loader.ts +16 -0
- package/src/lib/init.ts +10 -3
- package/src/lib/loader-utils/option-defaults.ts +3 -1
- package/src/lib/utils/log.ts +4 -0
package/dist/null-worker.js
CHANGED
|
@@ -35,16 +35,33 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
// ../worker-utils/src/lib/worker-farm/worker-body.ts
|
|
38
|
+
function getParentPort() {
|
|
39
|
+
let parentPort;
|
|
40
|
+
try {
|
|
41
|
+
eval("globalThis.parentPort = require('worker_threads').parentPort");
|
|
42
|
+
parentPort = globalThis.parentPort;
|
|
43
|
+
} catch {
|
|
44
|
+
}
|
|
45
|
+
return parentPort;
|
|
46
|
+
}
|
|
38
47
|
var onMessageWrapperMap = new Map();
|
|
39
48
|
var WorkerBody = class {
|
|
49
|
+
static inWorkerThread() {
|
|
50
|
+
return typeof self !== "undefined" || Boolean(getParentPort());
|
|
51
|
+
}
|
|
40
52
|
static set onmessage(onMessage) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
const { type, payload } = message.data;
|
|
53
|
+
function handleMessage(message) {
|
|
54
|
+
const parentPort3 = getParentPort();
|
|
55
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
46
56
|
onMessage(type, payload);
|
|
47
|
-
}
|
|
57
|
+
}
|
|
58
|
+
const parentPort2 = getParentPort();
|
|
59
|
+
if (parentPort2) {
|
|
60
|
+
parentPort2.on("message", handleMessage);
|
|
61
|
+
parentPort2.on("exit", () => console.debug("Node worker closing"));
|
|
62
|
+
} else {
|
|
63
|
+
globalThis.onmessage = handleMessage;
|
|
64
|
+
}
|
|
48
65
|
}
|
|
49
66
|
static addEventListener(onMessage) {
|
|
50
67
|
let onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
@@ -53,22 +70,36 @@
|
|
|
53
70
|
if (!isKnownMessage(message)) {
|
|
54
71
|
return;
|
|
55
72
|
}
|
|
56
|
-
const
|
|
73
|
+
const parentPort3 = getParentPort();
|
|
74
|
+
const { type, payload } = parentPort3 ? message : message.data;
|
|
57
75
|
onMessage(type, payload);
|
|
58
76
|
};
|
|
59
77
|
}
|
|
60
|
-
|
|
78
|
+
const parentPort2 = getParentPort();
|
|
79
|
+
if (parentPort2) {
|
|
80
|
+
console.error("not implemented");
|
|
81
|
+
} else {
|
|
82
|
+
globalThis.addEventListener("message", onMessageWrapper);
|
|
83
|
+
}
|
|
61
84
|
}
|
|
62
85
|
static removeEventListener(onMessage) {
|
|
63
86
|
const onMessageWrapper = onMessageWrapperMap.get(onMessage);
|
|
64
87
|
onMessageWrapperMap.delete(onMessage);
|
|
65
|
-
|
|
88
|
+
const parentPort2 = getParentPort();
|
|
89
|
+
if (parentPort2) {
|
|
90
|
+
console.error("not implemented");
|
|
91
|
+
} else {
|
|
92
|
+
globalThis.removeEventListener("message", onMessageWrapper);
|
|
93
|
+
}
|
|
66
94
|
}
|
|
67
95
|
static postMessage(type, payload) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
96
|
+
const data = { source: "loaders.gl", type, payload };
|
|
97
|
+
const transferList = getTransferList(payload);
|
|
98
|
+
const parentPort2 = getParentPort();
|
|
99
|
+
if (parentPort2) {
|
|
100
|
+
parentPort2.postMessage(data, transferList);
|
|
101
|
+
} else {
|
|
102
|
+
globalThis.postMessage(data, transferList);
|
|
72
103
|
}
|
|
73
104
|
}
|
|
74
105
|
};
|
|
@@ -80,7 +111,7 @@
|
|
|
80
111
|
// ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
|
|
81
112
|
var requestId = 0;
|
|
82
113
|
function createLoaderWorker(loader) {
|
|
83
|
-
if (
|
|
114
|
+
if (!WorkerBody.inWorkerThread()) {
|
|
84
115
|
return;
|
|
85
116
|
}
|
|
86
117
|
WorkerBody.onmessage = async (type, payload) => {
|
|
@@ -152,7 +183,7 @@
|
|
|
152
183
|
}
|
|
153
184
|
|
|
154
185
|
// src/null-loader.ts
|
|
155
|
-
var VERSION = true ? "3.1
|
|
186
|
+
var VERSION = true ? "3.2.0-alpha.1" : "latest";
|
|
156
187
|
var NullLoader = {
|
|
157
188
|
name: "Null loader",
|
|
158
189
|
id: "null",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/core",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.0-alpha.1",
|
|
4
4
|
"description": "Framework-independent loaders for 3D graphics formats",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
"fs": false,
|
|
26
26
|
"stream": false,
|
|
27
27
|
"./src/iterators/make-stream/make-node-stream.ts": "./src/iterators/make-stream/make-dom-stream.ts",
|
|
28
|
+
"./src/iterators/make-stream/make-node-stream.js": "./src/iterators/make-stream/make-dom-stream.js",
|
|
29
|
+
"./dist/iterators/make-stream/make-node-stream.js": "./dist/iterators/make-stream/make-dom-stream.js",
|
|
28
30
|
"./dist/es5/iterators/make-stream/make-node-stream.js": "./dist/es5/iterators/make-stream/make-dom-stream.js",
|
|
29
31
|
"./dist/esm/iterators/make-stream/make-node-stream.js": "./dist/esm/iterators/make-stream/make-dom-stream.js"
|
|
30
32
|
},
|
|
@@ -40,9 +42,10 @@
|
|
|
40
42
|
},
|
|
41
43
|
"dependencies": {
|
|
42
44
|
"@babel/runtime": "^7.3.1",
|
|
43
|
-
"@loaders.gl/loader-utils": "3.1
|
|
44
|
-
"@loaders.gl/worker-utils": "3.1
|
|
45
|
+
"@loaders.gl/loader-utils": "3.2.0-alpha.1",
|
|
46
|
+
"@loaders.gl/worker-utils": "3.2.0-alpha.1",
|
|
47
|
+
"@probe.gl/log": "^3.5.0",
|
|
45
48
|
"probe.gl": "^3.4.0"
|
|
46
49
|
},
|
|
47
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "423a2815092b08dcf93ad5b7dc2940b167305afe"
|
|
48
51
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type {LoaderContext, LoaderOptions, Loader} from '@loaders.gl/loader-utils';
|
|
2
2
|
import {compareArrayBuffers, path} from '@loaders.gl/loader-utils';
|
|
3
3
|
import {normalizeLoader} from '../loader-utils/normalize-loader';
|
|
4
|
+
import {log} from '../utils/log';
|
|
4
5
|
import {getResourceUrlAndType} from '../utils/resource-utils';
|
|
5
6
|
import {getRegisteredLoaders} from './register-loaders';
|
|
6
7
|
import {isBlob} from '../../javascript-utils/is-type';
|
|
@@ -103,6 +104,7 @@ export function selectLoaderSync(
|
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
/** Implements loaders selection logic */
|
|
107
|
+
// eslint-disable-next-line complexity
|
|
106
108
|
function selectLoaderInternal(
|
|
107
109
|
data: Response | Blob | ArrayBuffer | string,
|
|
108
110
|
loaders: Loader[],
|
|
@@ -114,19 +116,33 @@ function selectLoaderInternal(
|
|
|
114
116
|
const testUrl = url || context?.url;
|
|
115
117
|
|
|
116
118
|
let loader: Loader | null = null;
|
|
119
|
+
let reason: string = '';
|
|
117
120
|
|
|
118
121
|
// if options.mimeType is supplied, it takes precedence
|
|
119
122
|
if (options?.mimeType) {
|
|
120
123
|
loader = findLoaderByMIMEType(loaders, options?.mimeType);
|
|
124
|
+
reason = `match forced by supplied MIME type ${options?.mimeType}`;
|
|
121
125
|
}
|
|
126
|
+
|
|
122
127
|
// Look up loader by url
|
|
123
128
|
loader = loader || findLoaderByUrl(loaders, testUrl);
|
|
129
|
+
reason = reason || (loader ? `matched url ${testUrl}` : '');
|
|
130
|
+
|
|
124
131
|
// Look up loader by mime type
|
|
125
132
|
loader = loader || findLoaderByMIMEType(loaders, type);
|
|
133
|
+
reason = reason || (loader ? `matched MIME type ${type}` : '');
|
|
134
|
+
|
|
126
135
|
// Look for loader via initial bytes (Note: not always accessible (e.g. Response, stream, async iterator)
|
|
127
136
|
loader = loader || findLoaderByInitialBytes(loaders, data);
|
|
137
|
+
reason = reason || (loader ? `matched initial data ${getFirstCharacters(data)}` : '');
|
|
138
|
+
|
|
128
139
|
// Look up loader by fallback mime type
|
|
129
140
|
loader = loader || findLoaderByMIMEType(loaders, options?.fallbackMimeType);
|
|
141
|
+
reason = reason || (loader ? `matched fallback MIME type ${type}` : '');
|
|
142
|
+
|
|
143
|
+
if (reason) {
|
|
144
|
+
log.log(1, `selectLoader selected ${loader?.name}: ${reason}.`);
|
|
145
|
+
}
|
|
130
146
|
|
|
131
147
|
return loader;
|
|
132
148
|
}
|
package/src/lib/init.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
import {log} from './utils/log';
|
|
3
|
+
|
|
1
4
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
2
5
|
const version = typeof __VERSION__ !== 'undefined' ? __VERSION__ : '';
|
|
3
6
|
|
|
4
7
|
// @ts-ignore
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
8
|
+
if (!globalThis.loaders) {
|
|
9
|
+
log.log(1, `loaders.gl ${version}`)();
|
|
8
10
|
|
|
11
|
+
globalThis.loaders = Object.assign(globalThis.loaders || {}, {
|
|
12
|
+
VERSION: version,
|
|
13
|
+
log
|
|
14
|
+
});
|
|
15
|
+
}
|
|
9
16
|
// @ts-ignore
|
|
10
17
|
export default globalThis.loaders;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {LoaderOptions} from '@loaders.gl/loader-utils';
|
|
2
|
+
import {isBrowser} from '@loaders.gl/loader-utils';
|
|
2
3
|
import {ConsoleLog} from './loggers';
|
|
3
4
|
|
|
4
5
|
export const DEFAULT_LOADER_OPTIONS: LoaderOptions = {
|
|
@@ -12,7 +13,8 @@ export const DEFAULT_LOADER_OPTIONS: LoaderOptions = {
|
|
|
12
13
|
worker: true, // By default, use worker if provided by loader.
|
|
13
14
|
maxConcurrency: 3, // How many worker instances should be created for each loader.
|
|
14
15
|
maxMobileConcurrency: 1, // How many worker instances should be created for each loader on mobile devices.
|
|
15
|
-
reuseWorkers:
|
|
16
|
+
reuseWorkers: isBrowser, // By default reuse workers in browser (Node.js refuses to terminate if browsers are running)
|
|
17
|
+
_nodeWorkers: false, // By default do not support node workers
|
|
16
18
|
_workerType: '', // 'test' to use locally generated workers
|
|
17
19
|
|
|
18
20
|
limit: 0,
|