@loaders.gl/core 3.1.7 → 3.2.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.min.js +211 -54
- package/dist/es5/index.js +8 -2
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/api/encode.js +75 -50
- package/dist/es5/lib/api/encode.js.map +1 -1
- package/dist/es5/lib/api/loader-options.js +20 -0
- package/dist/es5/lib/api/loader-options.js.map +1 -0
- package/dist/es5/lib/api/select-loader.js.map +1 -1
- package/dist/es5/lib/init.js +1 -1
- 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/loader-utils/option-utils.js +3 -0
- package/dist/es5/lib/loader-utils/option-utils.js.map +1 -1
- package/dist/es5/lib/utils/response-utils.js +2 -2
- package/dist/es5/lib/utils/response-utils.js.map +1 -1
- package/dist/es5/null-loader.js +1 -1
- package/dist/es5/null-loader.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/api/encode.js +12 -0
- package/dist/esm/lib/api/encode.js.map +1 -1
- package/dist/esm/lib/api/loader-options.js +3 -0
- package/dist/esm/lib/api/loader-options.js.map +1 -0
- package/dist/esm/lib/api/select-loader.js.map +1 -1
- package/dist/esm/lib/init.js +1 -1
- 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/loader-utils/option-utils.js +1 -3
- package/dist/esm/lib/loader-utils/option-utils.js.map +1 -1
- package/dist/esm/lib/utils/response-utils.js +2 -2
- package/dist/esm/lib/utils/response-utils.js.map +1 -1
- package/dist/esm/null-loader.js +1 -1
- package/dist/esm/null-loader.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/lib/api/encode.d.ts +1 -1
- package/dist/lib/api/encode.d.ts.map +1 -1
- package/dist/lib/api/encode.js +13 -5
- package/dist/lib/api/loader-options.d.ts +3 -0
- package/dist/lib/api/loader-options.d.ts.map +1 -0
- package/dist/lib/api/loader-options.js +7 -0
- package/dist/lib/api/select-loader.js +1 -0
- 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/loader-utils/option-utils.d.ts +8 -0
- package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
- package/dist/lib/loader-utils/option-utils.js +10 -6
- package/dist/lib/utils/response-utils.js +2 -2
- package/dist/null-worker.js +46 -15
- package/package.json +6 -4
- package/src/index.ts +1 -1
- package/src/lib/api/encode.ts +9 -1
- package/src/lib/api/loader-options.ts +2 -0
- package/src/lib/api/select-loader.ts +1 -0
- package/src/lib/loader-utils/option-defaults.ts +3 -1
- package/src/lib/loader-utils/option-utils.ts +6 -3
- package/src/lib/utils/response-utils.ts +2 -2
- package/dist/es5/lib/api/set-loader-options.js +0 -13
- package/dist/es5/lib/api/set-loader-options.js.map +0 -1
- package/dist/esm/lib/api/set-loader-options.js +0 -5
- package/dist/esm/lib/api/set-loader-options.js.map +0 -1
- package/dist/lib/api/set-loader-options.d.ts +0 -6
- package/dist/lib/api/set-loader-options.d.ts.map +0 -1
- package/dist/lib/api/set-loader-options.js +0 -12
- package/src/lib/api/set-loader-options.ts +0 -9
package/dist/lib/api/encode.js
CHANGED
|
@@ -2,13 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.encodeURLtoURL = exports.encodeInBatches = exports.encodeText = exports.encodeSync = exports.encode = void 0;
|
|
4
4
|
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
5
|
+
const worker_utils_1 = require("@loaders.gl/worker-utils");
|
|
5
6
|
const loader_utils_2 = require("@loaders.gl/loader-utils");
|
|
7
|
+
const loader_utils_3 = require("@loaders.gl/loader-utils");
|
|
6
8
|
const write_file_1 = require("../fetch/write-file");
|
|
7
9
|
const fetch_file_1 = require("../fetch/fetch-file");
|
|
10
|
+
const loader_options_1 = require("./loader-options");
|
|
8
11
|
/**
|
|
9
12
|
* Encode loaded data into a binary ArrayBuffer using the specified Writer.
|
|
10
13
|
*/
|
|
11
14
|
async function encode(data, writer, options) {
|
|
15
|
+
const globalOptions = (0, loader_options_1.getLoaderOptions)();
|
|
16
|
+
options = { ...globalOptions, ...options };
|
|
17
|
+
if ((0, loader_utils_1.canEncodeWithWorker)(writer, options)) {
|
|
18
|
+
return await (0, worker_utils_1.processOnWorker)(writer, data, options);
|
|
19
|
+
}
|
|
12
20
|
// TODO Merge default writer options with options argument like it is done in load module.
|
|
13
21
|
if (writer.encode) {
|
|
14
22
|
return await writer.encode(data, options);
|
|
@@ -29,9 +37,9 @@ async function encode(data, writer, options) {
|
|
|
29
37
|
chunks.push(batch);
|
|
30
38
|
}
|
|
31
39
|
// @ts-ignore
|
|
32
|
-
return (0,
|
|
40
|
+
return (0, loader_utils_2.concatenateArrayBuffers)(...chunks);
|
|
33
41
|
}
|
|
34
|
-
if (!
|
|
42
|
+
if (!loader_utils_3.isBrowser && writer.encodeURLtoURL) {
|
|
35
43
|
// TODO - how to generate filenames with correct extensions?
|
|
36
44
|
const tmpInputFilename = getTemporaryFilename('input');
|
|
37
45
|
await (0, write_file_1.writeFile)(tmpInputFilename, data);
|
|
@@ -87,9 +95,9 @@ exports.encodeInBatches = encodeInBatches;
|
|
|
87
95
|
* @note Node.js only. This function enables using command-line converters as "writers".
|
|
88
96
|
*/
|
|
89
97
|
async function encodeURLtoURL(inputUrl, outputUrl, writer, options) {
|
|
90
|
-
inputUrl = (0,
|
|
91
|
-
outputUrl = (0,
|
|
92
|
-
if (
|
|
98
|
+
inputUrl = (0, loader_utils_2.resolvePath)(inputUrl);
|
|
99
|
+
outputUrl = (0, loader_utils_2.resolvePath)(outputUrl);
|
|
100
|
+
if (loader_utils_3.isBrowser || !writer.encodeURLtoURL) {
|
|
93
101
|
throw new Error();
|
|
94
102
|
}
|
|
95
103
|
const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-options.d.ts","sourceRoot":"","sources":["../../../src/lib/api/loader-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,IAAI,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAC,sBAAsB,IAAI,gBAAgB,EAAC,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLoaderOptions = exports.setLoaderOptions = void 0;
|
|
4
|
+
var option_utils_1 = require("../loader-utils/option-utils");
|
|
5
|
+
Object.defineProperty(exports, "setLoaderOptions", { enumerable: true, get: function () { return option_utils_1.setGlobalOptions; } });
|
|
6
|
+
var option_utils_2 = require("../loader-utils/option-utils");
|
|
7
|
+
Object.defineProperty(exports, "getLoaderOptions", { enumerable: true, get: function () { return option_utils_2.getGlobalLoaderOptions; } });
|
|
@@ -83,6 +83,7 @@ function selectLoaderSync(data, loaders = [], options, context) {
|
|
|
83
83
|
}
|
|
84
84
|
exports.selectLoaderSync = selectLoaderSync;
|
|
85
85
|
/** Implements loaders selection logic */
|
|
86
|
+
// eslint-disable-next-line complexity
|
|
86
87
|
function selectLoaderInternal(data, loaders, options, context) {
|
|
87
88
|
const { url, type } = (0, resource_utils_1.getResourceUrlAndType)(data);
|
|
88
89
|
const testUrl = url || context?.url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-defaults.d.ts","sourceRoot":"","sources":["../../../src/lib/loader-utils/option-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"option-defaults.d.ts","sourceRoot":"","sources":["../../../src/lib/loader-utils/option-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAI5D,eAAO,MAAM,sBAAsB,EAAE,aAqBpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;CAiBlC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.REMOVED_LOADER_OPTIONS = exports.DEFAULT_LOADER_OPTIONS = void 0;
|
|
4
|
+
const loader_utils_1 = require("@loaders.gl/loader-utils");
|
|
4
5
|
const loggers_1 = require("./loggers");
|
|
5
6
|
exports.DEFAULT_LOADER_OPTIONS = {
|
|
6
7
|
// baseUri
|
|
@@ -12,7 +13,8 @@ exports.DEFAULT_LOADER_OPTIONS = {
|
|
|
12
13
|
worker: true,
|
|
13
14
|
maxConcurrency: 3,
|
|
14
15
|
maxMobileConcurrency: 1,
|
|
15
|
-
reuseWorkers:
|
|
16
|
+
reuseWorkers: loader_utils_1.isBrowser,
|
|
17
|
+
_nodeWorkers: false,
|
|
16
18
|
_workerType: '',
|
|
17
19
|
limit: 0,
|
|
18
20
|
_limitMB: 0,
|
|
@@ -13,6 +13,14 @@ declare type GlobalLoaderState = {
|
|
|
13
13
|
* Wraps initialization of global variable in function to defeat overly aggressive tree-shakers
|
|
14
14
|
*/
|
|
15
15
|
export declare function getGlobalLoaderState(): GlobalLoaderState;
|
|
16
|
+
/**
|
|
17
|
+
* Store global loader options on the global object to increase chances of cross loaders-version interoperability
|
|
18
|
+
* NOTE: This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks
|
|
19
|
+
* @returns global loader options merged with default loader options
|
|
20
|
+
*/
|
|
21
|
+
export declare const getGlobalLoaderOptions: () => {
|
|
22
|
+
[key: string]: any;
|
|
23
|
+
};
|
|
16
24
|
/**
|
|
17
25
|
* Set global loader options
|
|
18
26
|
* @param options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"option-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/loader-utils/option-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAKnF;;GAEG;AACH,aAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CASxD;
|
|
1
|
+
{"version":3,"file":"option-utils.d.ts","sourceRoot":"","sources":["../../../src/lib/loader-utils/option-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAKnF;;GAEG;AACH,aAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CASxD;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;CAKlC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAItD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,MAAM,CAMR;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,OAuB/E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFetchFunction = exports.normalizeOptions = exports.setGlobalOptions = exports.getGlobalLoaderState = void 0;
|
|
3
|
+
exports.getFetchFunction = exports.normalizeOptions = exports.setGlobalOptions = exports.getGlobalLoaderOptions = exports.getGlobalLoaderState = void 0;
|
|
4
4
|
const is_type_1 = require("../../javascript-utils/is-type");
|
|
5
5
|
const fetch_file_1 = require("../fetch/fetch-file");
|
|
6
6
|
const loggers_1 = require("./loggers");
|
|
@@ -19,21 +19,25 @@ function getGlobalLoaderState() {
|
|
|
19
19
|
return loaders._state;
|
|
20
20
|
}
|
|
21
21
|
exports.getGlobalLoaderState = getGlobalLoaderState;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Store global loader options on the global object to increase chances of cross loaders-version interoperability
|
|
24
|
+
* NOTE: This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks
|
|
25
|
+
* @returns global loader options merged with default loader options
|
|
26
|
+
*/
|
|
24
27
|
const getGlobalLoaderOptions = () => {
|
|
25
28
|
const state = getGlobalLoaderState();
|
|
26
29
|
// Ensure all default loader options from this library are mentioned
|
|
27
30
|
state.globalOptions = state.globalOptions || { ...option_defaults_1.DEFAULT_LOADER_OPTIONS };
|
|
28
31
|
return state.globalOptions;
|
|
29
32
|
};
|
|
33
|
+
exports.getGlobalLoaderOptions = getGlobalLoaderOptions;
|
|
30
34
|
/**
|
|
31
35
|
* Set global loader options
|
|
32
36
|
* @param options
|
|
33
37
|
*/
|
|
34
38
|
function setGlobalOptions(options) {
|
|
35
39
|
const state = getGlobalLoaderState();
|
|
36
|
-
const globalOptions = getGlobalLoaderOptions();
|
|
40
|
+
const globalOptions = (0, exports.getGlobalLoaderOptions)();
|
|
37
41
|
state.globalOptions = normalizeOptionsInternal(globalOptions, options);
|
|
38
42
|
}
|
|
39
43
|
exports.setGlobalOptions = setGlobalOptions;
|
|
@@ -57,7 +61,7 @@ exports.normalizeOptions = normalizeOptions;
|
|
|
57
61
|
* @param context
|
|
58
62
|
*/
|
|
59
63
|
function getFetchFunction(options, context) {
|
|
60
|
-
const globalOptions = getGlobalLoaderOptions();
|
|
64
|
+
const globalOptions = (0, exports.getGlobalLoaderOptions)();
|
|
61
65
|
const fetchOptions = options || globalOptions;
|
|
62
66
|
// options.fetch can be a function
|
|
63
67
|
if (typeof fetchOptions.fetch === 'function') {
|
|
@@ -141,7 +145,7 @@ function normalizeOptionsInternal(loader, options, url) {
|
|
|
141
145
|
if (mergedOptions.log === null) {
|
|
142
146
|
mergedOptions.log = new loggers_1.NullLog();
|
|
143
147
|
}
|
|
144
|
-
mergeNestedFields(mergedOptions, getGlobalLoaderOptions());
|
|
148
|
+
mergeNestedFields(mergedOptions, (0, exports.getGlobalLoaderOptions)());
|
|
145
149
|
mergeNestedFields(mergedOptions, options);
|
|
146
150
|
return mergedOptions;
|
|
147
151
|
}
|
|
@@ -61,7 +61,7 @@ exports.checkResponse = checkResponse;
|
|
|
61
61
|
function checkResponseSync(response) {
|
|
62
62
|
if (!response.ok) {
|
|
63
63
|
let message = `${response.status} ${response.statusText}`;
|
|
64
|
-
message = message.length > 60 ? `${message.slice(60)}...` : message;
|
|
64
|
+
message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
|
|
65
65
|
throw new Error(message);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -76,7 +76,7 @@ async function getResponseError(response) {
|
|
|
76
76
|
text += ` ${await response.text()}`;
|
|
77
77
|
}
|
|
78
78
|
message += text;
|
|
79
|
-
message = message.length > 60 ? `${message.slice(60)}...` : message;
|
|
79
|
+
message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
|
|
80
80
|
}
|
|
81
81
|
catch (error) {
|
|
82
82
|
// eslint forbids return in a finally statement, so we just catch here
|
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.
|
|
186
|
+
var VERSION = true ? "3.2.0-alpha.2" : "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.
|
|
3
|
+
"version": "3.2.0-alpha.2",
|
|
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,10 +42,10 @@
|
|
|
40
42
|
},
|
|
41
43
|
"dependencies": {
|
|
42
44
|
"@babel/runtime": "^7.3.1",
|
|
43
|
-
"@loaders.gl/loader-utils": "3.
|
|
44
|
-
"@loaders.gl/worker-utils": "3.
|
|
45
|
+
"@loaders.gl/loader-utils": "3.2.0-alpha.2",
|
|
46
|
+
"@loaders.gl/worker-utils": "3.2.0-alpha.2",
|
|
45
47
|
"@probe.gl/log": "^3.5.0",
|
|
46
48
|
"probe.gl": "^3.4.0"
|
|
47
49
|
},
|
|
48
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "52a602739cbfce60fc314f474efc984d199dff78"
|
|
49
51
|
}
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,7 @@ export {readFileSync} from './lib/fetch/read-file';
|
|
|
6
6
|
export {writeFile, writeFileSync} from './lib/fetch/write-file';
|
|
7
7
|
|
|
8
8
|
// CONFIGURATION
|
|
9
|
-
export {setLoaderOptions} from './lib/api/
|
|
9
|
+
export {setLoaderOptions, getLoaderOptions} from './lib/api/loader-options';
|
|
10
10
|
export {registerLoaders} from './lib/api/register-loaders';
|
|
11
11
|
export {selectLoader, selectLoaderSync} from './lib/api/select-loader';
|
|
12
12
|
|
package/src/lib/api/encode.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {Writer, LoaderOptions, canEncodeWithWorker} from '@loaders.gl/loader-utils';
|
|
2
|
+
import {processOnWorker} from '@loaders.gl/worker-utils';
|
|
2
3
|
import {concatenateArrayBuffers, resolvePath} from '@loaders.gl/loader-utils';
|
|
3
4
|
import {isBrowser} from '@loaders.gl/loader-utils';
|
|
4
5
|
import {writeFile} from '../fetch/write-file';
|
|
5
6
|
import {fetchFile} from '../fetch/fetch-file';
|
|
7
|
+
import {getLoaderOptions} from './loader-options';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Encode loaded data into a binary ArrayBuffer using the specified Writer.
|
|
@@ -12,6 +14,12 @@ export async function encode(
|
|
|
12
14
|
writer: Writer,
|
|
13
15
|
options?: LoaderOptions
|
|
14
16
|
): Promise<ArrayBuffer> {
|
|
17
|
+
const globalOptions = getLoaderOptions();
|
|
18
|
+
options = {...globalOptions, ...options};
|
|
19
|
+
if (canEncodeWithWorker(writer, options)) {
|
|
20
|
+
return await processOnWorker(writer, data, options);
|
|
21
|
+
}
|
|
22
|
+
|
|
15
23
|
// TODO Merge default writer options with options argument like it is done in load module.
|
|
16
24
|
if (writer.encode) {
|
|
17
25
|
return await writer.encode(data, options);
|
|
@@ -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,
|
|
@@ -26,9 +26,12 @@ export function getGlobalLoaderState(): GlobalLoaderState {
|
|
|
26
26
|
return loaders._state;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Store global loader options on the global object to increase chances of cross loaders-version interoperability
|
|
31
|
+
* NOTE: This use case is not reliable but can help when testing new versions of loaders.gl with existing frameworks
|
|
32
|
+
* @returns global loader options merged with default loader options
|
|
33
|
+
*/
|
|
34
|
+
export const getGlobalLoaderOptions = () => {
|
|
32
35
|
const state = getGlobalLoaderState();
|
|
33
36
|
// Ensure all default loader options from this library are mentioned
|
|
34
37
|
state.globalOptions = state.globalOptions || {...DEFAULT_LOADER_OPTIONS};
|
|
@@ -65,7 +65,7 @@ export async function checkResponse(response: Response): Promise<void> {
|
|
|
65
65
|
export function checkResponseSync(response: Response): void {
|
|
66
66
|
if (!response.ok) {
|
|
67
67
|
let message = `${response.status} ${response.statusText}`;
|
|
68
|
-
message = message.length > 60 ? `${message.slice(60)}...` : message;
|
|
68
|
+
message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
|
|
69
69
|
throw new Error(message);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -81,7 +81,7 @@ async function getResponseError(response): Promise<string> {
|
|
|
81
81
|
text += ` ${await response.text()}`;
|
|
82
82
|
}
|
|
83
83
|
message += text;
|
|
84
|
-
message = message.length > 60 ? `${message.slice(60)}...` : message;
|
|
84
|
+
message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
|
|
85
85
|
} catch (error) {
|
|
86
86
|
// eslint forbids return in a finally statement, so we just catch here
|
|
87
87
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.setLoaderOptions = setLoaderOptions;
|
|
7
|
-
|
|
8
|
-
var _optionUtils = require("../loader-utils/option-utils");
|
|
9
|
-
|
|
10
|
-
function setLoaderOptions(options) {
|
|
11
|
-
(0, _optionUtils.setGlobalOptions)(options);
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=set-loader-options.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/api/set-loader-options.ts"],"names":["setLoaderOptions","options"],"mappings":";;;;;;;AAAA;;AAMO,SAASA,gBAAT,CAA0BC,OAA1B,EAAiD;AACtD,qCAAiBA,OAAjB;AACD","sourcesContent":["import {setGlobalOptions} from '../loader-utils/option-utils';\n\n/**\n * Set global loader options\n * @param options\n */\nexport function setLoaderOptions(options: object): void {\n setGlobalOptions(options);\n}\n"],"file":"set-loader-options.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/api/set-loader-options.ts"],"names":["setGlobalOptions","setLoaderOptions","options"],"mappings":"AAAA,SAAQA,gBAAR,QAA+B,8BAA/B;AAMA,OAAO,SAASC,gBAAT,CAA0BC,OAA1B,EAAiD;AACtDF,EAAAA,gBAAgB,CAACE,OAAD,CAAhB;AACD","sourcesContent":["import {setGlobalOptions} from '../loader-utils/option-utils';\n\n/**\n * Set global loader options\n * @param options\n */\nexport function setLoaderOptions(options: object): void {\n setGlobalOptions(options);\n}\n"],"file":"set-loader-options.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-loader-options.d.ts","sourceRoot":"","sources":["../../../src/lib/api/set-loader-options.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEtD"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setLoaderOptions = void 0;
|
|
4
|
-
const option_utils_1 = require("../loader-utils/option-utils");
|
|
5
|
-
/**
|
|
6
|
-
* Set global loader options
|
|
7
|
-
* @param options
|
|
8
|
-
*/
|
|
9
|
-
function setLoaderOptions(options) {
|
|
10
|
-
(0, option_utils_1.setGlobalOptions)(options);
|
|
11
|
-
}
|
|
12
|
-
exports.setLoaderOptions = setLoaderOptions;
|