@loaders.gl/loader-utils 4.1.0-alpha.3 → 4.1.0-alpha.5

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 CHANGED
@@ -129,13 +129,17 @@ var nodeVersion = matches && parseFloat(matches[1]) || 0;
129
129
  function mergeLoaderOptions(baseOptions, newOptions) {
130
130
  return mergeOptionsRecursively(baseOptions || {}, newOptions);
131
131
  }
132
- function mergeOptionsRecursively(baseOptions, newOptions) {
132
+ function mergeOptionsRecursively(baseOptions, newOptions, level = 0) {
133
+ if (level > 3) {
134
+ return newOptions;
135
+ }
133
136
  const options = { ...baseOptions };
134
137
  for (const [key, newValue] of Object.entries(newOptions)) {
135
138
  if (newValue && typeof newValue === "object" && !Array.isArray(newValue)) {
136
139
  options[key] = mergeOptionsRecursively(
137
140
  options[key] || {},
138
- newOptions[key]
141
+ newOptions[key],
142
+ level + 1
139
143
  );
140
144
  } else {
141
145
  options[key] = newOptions[key];
@@ -1,4 +1,4 @@
1
- const VERSION = typeof "4.1.0-alpha.3" !== 'undefined' ? "4.1.0-alpha.3" : 'latest';
1
+ const VERSION = typeof "4.1.0-alpha.5" !== 'undefined' ? "4.1.0-alpha.5" : 'latest';
2
2
  export const JSONLoader = {
3
3
  name: 'JSON',
4
4
  id: 'json',
@@ -2,12 +2,16 @@ export function mergeLoaderOptions(baseOptions, newOptions) {
2
2
  return mergeOptionsRecursively(baseOptions || {}, newOptions);
3
3
  }
4
4
  function mergeOptionsRecursively(baseOptions, newOptions) {
5
+ let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
6
+ if (level > 3) {
7
+ return newOptions;
8
+ }
5
9
  const options = {
6
10
  ...baseOptions
7
11
  };
8
12
  for (const [key, newValue] of Object.entries(newOptions)) {
9
13
  if (newValue && typeof newValue === 'object' && !Array.isArray(newValue)) {
10
- options[key] = mergeOptionsRecursively(options[key] || {}, newOptions[key]);
14
+ options[key] = mergeOptionsRecursively(options[key] || {}, newOptions[key], level + 1);
11
15
  } else {
12
16
  options[key] = newOptions[key];
13
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"merge-loader-options.js","names":["mergeLoaderOptions","baseOptions","newOptions","mergeOptionsRecursively","options","key","newValue","Object","entries","Array","isArray"],"sources":["../../../src/lib/option-utils/merge-loader-options.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {LoaderOptions} from '../../loader-types';\n\n/**\n *\n * @param baseOptions Can be undefined, in which case a fresh options object will be minted\n * @param newOptions\n * @returns\n */\nexport function mergeLoaderOptions<Options extends LoaderOptions>(\n baseOptions: Options | undefined,\n newOptions: Options\n): Options {\n return mergeOptionsRecursively(baseOptions || {}, newOptions) as Options;\n}\n\nfunction mergeOptionsRecursively(\n baseOptions: Record<string, unknown>,\n newOptions: Record<string, unknown>\n): Record<string, unknown> {\n const options = {...baseOptions};\n for (const [key, newValue] of Object.entries(newOptions)) {\n if (newValue && typeof newValue === 'object' && !Array.isArray(newValue)) {\n options[key] = mergeOptionsRecursively(\n (options[key] as Record<string, unknown>) || {},\n newOptions[key] as Record<string, unknown>\n );\n // Object.assign(options[key] as object, newOptions[key]);\n } else {\n options[key] = newOptions[key];\n }\n }\n return options as Record<string, unknown>;\n}\n"],"mappings":"AAYA,OAAO,SAASA,kBAAkBA,CAChCC,WAAgC,EAChCC,UAAmB,EACV;EACT,OAAOC,uBAAuB,CAACF,WAAW,IAAI,CAAC,CAAC,EAAEC,UAAU,CAAC;AAC/D;AAEA,SAASC,uBAAuBA,CAC9BF,WAAoC,EACpCC,UAAmC,EACV;EACzB,MAAME,OAAO,GAAG;IAAC,GAAGH;EAAW,CAAC;EAChC,KAAK,MAAM,CAACI,GAAG,EAAEC,QAAQ,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,UAAU,CAAC,EAAE;IACxD,IAAII,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAI,CAACG,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,EAAE;MACxEF,OAAO,CAACC,GAAG,CAAC,GAAGF,uBAAuB,CACnCC,OAAO,CAACC,GAAG,CAAC,IAAgC,CAAC,CAAC,EAC/CH,UAAU,CAACG,GAAG,CAChB,CAAC;IAEH,CAAC,MAAM;MACLD,OAAO,CAACC,GAAG,CAAC,GAAGH,UAAU,CAACG,GAAG,CAAC;IAChC;EACF;EACA,OAAOD,OAAO;AAChB"}
1
+ {"version":3,"file":"merge-loader-options.js","names":["mergeLoaderOptions","baseOptions","newOptions","mergeOptionsRecursively","level","arguments","length","undefined","options","key","newValue","Object","entries","Array","isArray"],"sources":["../../../src/lib/option-utils/merge-loader-options.ts"],"sourcesContent":["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {LoaderOptions} from '../../loader-types';\n\n/**\n *\n * @param baseOptions Can be undefined, in which case a fresh options object will be minted\n * @param newOptions\n * @returns\n */\nexport function mergeLoaderOptions<Options extends LoaderOptions>(\n baseOptions: Options | undefined,\n newOptions: Options\n): Options {\n return mergeOptionsRecursively(baseOptions || {}, newOptions) as Options;\n}\n\nfunction mergeOptionsRecursively(\n baseOptions: Record<string, unknown>,\n newOptions: Record<string, unknown>,\n level = 0\n): Record<string, unknown> {\n // Sanity check (jest test runner overwrites the console object which can lead to infinite recursion)\n if (level > 3) {\n return newOptions;\n }\n\n const options = {...baseOptions};\n for (const [key, newValue] of Object.entries(newOptions)) {\n if (newValue && typeof newValue === 'object' && !Array.isArray(newValue)) {\n options[key] = mergeOptionsRecursively(\n (options[key] as Record<string, unknown>) || {},\n newOptions[key] as Record<string, unknown>,\n level + 1\n );\n // Object.assign(options[key] as object, newOptions[key]);\n } else {\n options[key] = newOptions[key];\n }\n }\n return options as Record<string, unknown>;\n}\n"],"mappings":"AAYA,OAAO,SAASA,kBAAkBA,CAChCC,WAAgC,EAChCC,UAAmB,EACV;EACT,OAAOC,uBAAuB,CAACF,WAAW,IAAI,CAAC,CAAC,EAAEC,UAAU,CAAC;AAC/D;AAEA,SAASC,uBAAuBA,CAC9BF,WAAoC,EACpCC,UAAmC,EAEV;EAAA,IADzBE,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAGT,IAAID,KAAK,GAAG,CAAC,EAAE;IACb,OAAOF,UAAU;EACnB;EAEA,MAAMM,OAAO,GAAG;IAAC,GAAGP;EAAW,CAAC;EAChC,KAAK,MAAM,CAACQ,GAAG,EAAEC,QAAQ,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACV,UAAU,CAAC,EAAE;IACxD,IAAIQ,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAI,CAACG,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,EAAE;MACxEF,OAAO,CAACC,GAAG,CAAC,GAAGN,uBAAuB,CACnCK,OAAO,CAACC,GAAG,CAAC,IAAgC,CAAC,CAAC,EAC/CP,UAAU,CAACO,GAAG,CAAC,EACfL,KAAK,GAAG,CACV,CAAC;IAEH,CAAC,MAAM;MACLI,OAAO,CAACC,GAAG,CAAC,GAAGP,UAAU,CAACO,GAAG,CAAC;IAChC;EACF;EACA,OAAOD,OAAO;AAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/loader-utils",
3
- "version": "4.1.0-alpha.3",
3
+ "version": "4.1.0-alpha.5",
4
4
  "description": "Framework-independent loaders for 3D graphics formats",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -47,8 +47,8 @@
47
47
  "scripts": {},
48
48
  "dependencies": {
49
49
  "@babel/runtime": "^7.3.1",
50
- "@loaders.gl/worker-utils": "4.1.0-alpha.3",
50
+ "@loaders.gl/worker-utils": "4.1.0-alpha.5",
51
51
  "@probe.gl/stats": "^4.0.2"
52
52
  },
53
- "gitHead": "b78075a7cb8d4ecd4aac84805ce74b8ceb400cf7"
53
+ "gitHead": "3250842d8cc0fc8b76a575168c1fd57e5a66b6ba"
54
54
  }
@@ -19,14 +19,21 @@ export function mergeLoaderOptions<Options extends LoaderOptions>(
19
19
 
20
20
  function mergeOptionsRecursively(
21
21
  baseOptions: Record<string, unknown>,
22
- newOptions: Record<string, unknown>
22
+ newOptions: Record<string, unknown>,
23
+ level = 0
23
24
  ): Record<string, unknown> {
25
+ // Sanity check (jest test runner overwrites the console object which can lead to infinite recursion)
26
+ if (level > 3) {
27
+ return newOptions;
28
+ }
29
+
24
30
  const options = {...baseOptions};
25
31
  for (const [key, newValue] of Object.entries(newOptions)) {
26
32
  if (newValue && typeof newValue === 'object' && !Array.isArray(newValue)) {
27
33
  options[key] = mergeOptionsRecursively(
28
34
  (options[key] as Record<string, unknown>) || {},
29
- newOptions[key] as Record<string, unknown>
35
+ newOptions[key] as Record<string, unknown>,
36
+ level + 1
30
37
  );
31
38
  // Object.assign(options[key] as object, newOptions[key]);
32
39
  } else {