@loaders.gl/worker-utils 4.0.0-alpha.1 → 4.0.0-alpha.11

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.
Files changed (220) hide show
  1. package/dist/es5/index.js +148 -0
  2. package/dist/es5/index.js.map +1 -0
  3. package/dist/es5/lib/async-queue/async-queue.js +100 -0
  4. package/dist/es5/lib/async-queue/async-queue.js.map +1 -0
  5. package/dist/es5/lib/env-utils/assert.js +12 -0
  6. package/dist/es5/lib/env-utils/assert.js.map +1 -0
  7. package/dist/es5/lib/env-utils/globals.js +32 -0
  8. package/dist/es5/lib/env-utils/globals.js.map +1 -0
  9. package/dist/es5/lib/env-utils/version.js +13 -0
  10. package/dist/es5/lib/env-utils/version.js.map +1 -0
  11. package/dist/es5/lib/library-utils/library-utils.js +154 -0
  12. package/dist/es5/lib/library-utils/library-utils.js.map +1 -0
  13. package/dist/es5/lib/node/require-utils.node.js +71 -0
  14. package/dist/es5/lib/node/require-utils.node.js.map +1 -0
  15. package/dist/es5/lib/node/worker_threads-browser.js +23 -0
  16. package/dist/es5/lib/node/worker_threads-browser.js.map +1 -0
  17. package/dist/es5/lib/node/worker_threads.js +27 -0
  18. package/dist/es5/lib/node/worker_threads.js.map +1 -0
  19. package/dist/es5/lib/process-utils/child-process-proxy.js +195 -0
  20. package/dist/es5/lib/process-utils/child-process-proxy.js.map +1 -0
  21. package/dist/es5/lib/process-utils/process-utils.js +33 -0
  22. package/dist/es5/lib/process-utils/process-utils.js.map +1 -0
  23. package/dist/es5/lib/worker-api/create-worker.js +166 -0
  24. package/dist/es5/lib/worker-api/create-worker.js.map +1 -0
  25. package/dist/es5/lib/worker-api/get-worker-url.js +39 -0
  26. package/dist/es5/lib/worker-api/get-worker-url.js.map +1 -0
  27. package/dist/es5/lib/worker-api/process-on-worker.js +137 -0
  28. package/dist/es5/lib/worker-api/process-on-worker.js.map +1 -0
  29. package/dist/es5/lib/worker-api/validate-worker-version.js +25 -0
  30. package/dist/es5/lib/worker-api/validate-worker-version.js.map +1 -0
  31. package/dist/es5/lib/worker-farm/worker-body.js +109 -0
  32. package/dist/es5/lib/worker-farm/worker-body.js.map +1 -0
  33. package/dist/es5/lib/worker-farm/worker-farm.js +113 -0
  34. package/dist/es5/lib/worker-farm/worker-farm.js.map +1 -0
  35. package/dist/es5/lib/worker-farm/worker-job.js +56 -0
  36. package/dist/es5/lib/worker-farm/worker-job.js.map +1 -0
  37. package/dist/es5/lib/worker-farm/worker-pool.js +211 -0
  38. package/dist/es5/lib/worker-farm/worker-pool.js.map +1 -0
  39. package/dist/es5/lib/worker-farm/worker-thread.js +136 -0
  40. package/dist/es5/lib/worker-farm/worker-thread.js.map +1 -0
  41. package/dist/es5/lib/worker-utils/get-loadable-worker-url.js +41 -0
  42. package/dist/es5/lib/worker-utils/get-loadable-worker-url.js.map +1 -0
  43. package/dist/es5/lib/worker-utils/get-transfer-list.js +59 -0
  44. package/dist/es5/lib/worker-utils/get-transfer-list.js.map +1 -0
  45. package/dist/es5/lib/worker-utils/remove-nontransferable-options.js +25 -0
  46. package/dist/es5/lib/worker-utils/remove-nontransferable-options.js.map +1 -0
  47. package/dist/es5/types.js +2 -0
  48. package/dist/es5/types.js.map +1 -0
  49. package/dist/es5/workers/null-worker.js +23 -0
  50. package/dist/es5/workers/null-worker.js.map +1 -0
  51. package/dist/esm/index.js +26 -0
  52. package/dist/esm/index.js.map +1 -0
  53. package/dist/esm/lib/async-queue/async-queue.js +76 -0
  54. package/dist/esm/lib/async-queue/async-queue.js.map +1 -0
  55. package/dist/esm/lib/env-utils/assert.js +6 -0
  56. package/dist/esm/lib/env-utils/assert.js.map +1 -0
  57. package/dist/esm/lib/env-utils/globals.js +17 -0
  58. package/dist/esm/lib/env-utils/globals.js.map +1 -0
  59. package/dist/esm/lib/env-utils/version.js +6 -0
  60. package/dist/esm/lib/env-utils/version.js.map +1 -0
  61. package/dist/esm/lib/library-utils/library-utils.js +74 -0
  62. package/dist/esm/lib/library-utils/library-utils.js.map +1 -0
  63. package/dist/esm/lib/node/require-utils.node.js +36 -0
  64. package/dist/esm/lib/node/require-utils.node.js.map +1 -0
  65. package/dist/esm/lib/node/worker_threads-browser.js +7 -0
  66. package/dist/esm/lib/node/worker_threads-browser.js.map +1 -0
  67. package/dist/esm/lib/node/worker_threads.js +4 -0
  68. package/dist/esm/lib/node/worker_threads.js.map +1 -0
  69. package/dist/esm/lib/process-utils/child-process-proxy.js +106 -0
  70. package/dist/esm/lib/process-utils/child-process-proxy.js.map +1 -0
  71. package/dist/esm/lib/process-utils/process-utils.js +26 -0
  72. package/dist/esm/lib/process-utils/process-utils.js.map +1 -0
  73. package/dist/esm/lib/worker-api/create-worker.js +84 -0
  74. package/dist/esm/lib/worker-api/create-worker.js.map +1 -0
  75. package/dist/esm/lib/worker-api/get-worker-url.js +32 -0
  76. package/dist/esm/lib/worker-api/get-worker-url.js.map +1 -0
  77. package/dist/esm/lib/worker-api/process-on-worker.js +75 -0
  78. package/dist/esm/lib/worker-api/process-on-worker.js.map +1 -0
  79. package/dist/esm/lib/worker-api/validate-worker-version.js +19 -0
  80. package/dist/esm/lib/worker-api/validate-worker-version.js.map +1 -0
  81. package/dist/esm/lib/worker-farm/worker-body.js +86 -0
  82. package/dist/esm/lib/worker-farm/worker-body.js.map +1 -0
  83. package/dist/esm/lib/worker-farm/worker-farm.js +72 -0
  84. package/dist/esm/lib/worker-farm/worker-farm.js.map +1 -0
  85. package/dist/esm/lib/worker-farm/worker-job.js +36 -0
  86. package/dist/esm/lib/worker-farm/worker-job.js.map +1 -0
  87. package/dist/esm/lib/worker-farm/worker-pool.js +124 -0
  88. package/dist/esm/lib/worker-farm/worker-pool.js.map +1 -0
  89. package/dist/esm/lib/worker-farm/worker-thread.js +105 -0
  90. package/dist/esm/lib/worker-farm/worker-thread.js.map +1 -0
  91. package/dist/esm/lib/worker-utils/get-loadable-worker-url.js +35 -0
  92. package/dist/esm/lib/worker-utils/get-loadable-worker-url.js.map +1 -0
  93. package/dist/esm/lib/worker-utils/get-transfer-list.js +50 -0
  94. package/dist/esm/lib/worker-utils/get-transfer-list.js.map +1 -0
  95. package/dist/esm/lib/worker-utils/remove-nontransferable-options.js +17 -0
  96. package/dist/esm/lib/worker-utils/remove-nontransferable-options.js.map +1 -0
  97. package/dist/esm/types.js +2 -0
  98. package/dist/esm/types.js.map +1 -0
  99. package/dist/esm/workers/null-worker.js +5 -0
  100. package/dist/esm/workers/null-worker.js.map +1 -0
  101. package/dist/index.d.ts +20 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +58 -25
  104. package/dist/lib/async-queue/async-queue.d.ts +32 -0
  105. package/dist/lib/async-queue/async-queue.d.ts.map +1 -0
  106. package/dist/lib/async-queue/async-queue.js +81 -91
  107. package/dist/lib/env-utils/assert.d.ts +3 -0
  108. package/dist/lib/env-utils/assert.d.ts.map +1 -0
  109. package/dist/lib/env-utils/assert.js +12 -5
  110. package/dist/lib/env-utils/globals.d.ts +22 -0
  111. package/dist/lib/env-utils/globals.d.ts.map +1 -0
  112. package/dist/lib/env-utils/globals.js +25 -10
  113. package/dist/lib/env-utils/version.d.ts +2 -0
  114. package/dist/lib/env-utils/version.d.ts.map +1 -0
  115. package/dist/lib/env-utils/version.js +10 -5
  116. package/dist/lib/library-utils/library-utils.d.ts +18 -0
  117. package/dist/lib/library-utils/library-utils.d.ts.map +1 -0
  118. package/dist/lib/library-utils/library-utils.js +161 -75
  119. package/dist/lib/node/require-utils.node.d.ts +6 -0
  120. package/dist/lib/node/require-utils.node.d.ts.map +1 -0
  121. package/dist/lib/node/require-utils.node.js +58 -41
  122. package/dist/lib/node/worker_threads-browser.d.ts +7 -0
  123. package/dist/lib/node/worker_threads-browser.d.ts.map +1 -0
  124. package/dist/lib/node/worker_threads-browser.js +15 -0
  125. package/dist/lib/node/worker_threads.d.ts +6 -0
  126. package/dist/lib/node/worker_threads.d.ts.map +1 -0
  127. package/dist/lib/node/worker_threads.js +33 -0
  128. package/dist/lib/process-utils/child-process-proxy.d.ts +45 -0
  129. package/dist/lib/process-utils/child-process-proxy.d.ts.map +1 -0
  130. package/dist/lib/process-utils/child-process-proxy.js +127 -113
  131. package/dist/lib/process-utils/process-utils.d.ts +2 -0
  132. package/dist/lib/process-utils/process-utils.d.ts.map +1 -0
  133. package/dist/lib/process-utils/process-utils.js +33 -27
  134. package/dist/lib/worker-api/create-worker.d.ts +9 -0
  135. package/dist/lib/worker-api/create-worker.d.ts.map +1 -0
  136. package/dist/lib/worker-api/create-worker.js +84 -92
  137. package/dist/lib/worker-api/get-worker-url.d.ts +14 -0
  138. package/dist/lib/worker-api/get-worker-url.d.ts.map +1 -0
  139. package/dist/lib/worker-api/get-worker-url.js +56 -29
  140. package/dist/lib/worker-api/process-on-worker.d.ts +20 -0
  141. package/dist/lib/worker-api/process-on-worker.d.ts.map +1 -0
  142. package/dist/lib/worker-api/process-on-worker.js +79 -71
  143. package/dist/lib/worker-api/validate-worker-version.d.ts +9 -0
  144. package/dist/lib/worker-api/validate-worker-version.d.ts.map +1 -0
  145. package/dist/lib/worker-api/validate-worker-version.js +32 -18
  146. package/dist/lib/worker-farm/worker-body.d.ts +18 -0
  147. package/dist/lib/worker-farm/worker-body.d.ts.map +1 -0
  148. package/dist/lib/worker-farm/worker-body.js +104 -58
  149. package/dist/lib/worker-farm/worker-farm.d.ts +59 -0
  150. package/dist/lib/worker-farm/worker-farm.d.ts.map +1 -0
  151. package/dist/lib/worker-farm/worker-farm.js +83 -77
  152. package/dist/lib/worker-farm/worker-job.d.ts +29 -0
  153. package/dist/lib/worker-farm/worker-job.d.ts.map +1 -0
  154. package/dist/lib/worker-farm/worker-job.js +46 -53
  155. package/dist/lib/worker-farm/worker-pool.d.ts +77 -0
  156. package/dist/lib/worker-farm/worker-pool.d.ts.map +1 -0
  157. package/dist/lib/worker-farm/worker-pool.js +154 -147
  158. package/dist/lib/worker-farm/worker-thread.d.ts +49 -0
  159. package/dist/lib/worker-farm/worker-thread.d.ts.map +1 -0
  160. package/dist/lib/worker-farm/worker-thread.js +128 -102
  161. package/dist/lib/worker-utils/get-loadable-worker-url.d.ts +14 -0
  162. package/dist/lib/worker-utils/get-loadable-worker-url.d.ts.map +1 -0
  163. package/dist/lib/worker-utils/get-loadable-worker-url.js +63 -33
  164. package/dist/lib/worker-utils/get-transfer-list.d.ts +15 -0
  165. package/dist/lib/worker-utils/get-transfer-list.d.ts.map +1 -0
  166. package/dist/lib/worker-utils/get-transfer-list.js +83 -36
  167. package/dist/lib/worker-utils/remove-nontransferable-options.d.ts +6 -0
  168. package/dist/lib/worker-utils/remove-nontransferable-options.d.ts.map +1 -0
  169. package/dist/lib/worker-utils/remove-nontransferable-options.js +25 -21
  170. package/dist/null-worker-node.js +244 -0
  171. package/dist/null-worker-node.js.map +7 -0
  172. package/dist/null-worker.js +219 -549
  173. package/dist/null-worker.js.map +7 -1
  174. package/dist/types.d.ts +62 -0
  175. package/dist/types.d.ts.map +1 -0
  176. package/dist/types.js +2 -2
  177. package/dist/workers/null-worker.d.ts +2 -0
  178. package/dist/workers/null-worker.d.ts.map +1 -0
  179. package/dist/workers/null-worker.js +6 -4
  180. package/package.json +15 -8
  181. package/src/index.ts +1 -1
  182. package/src/lib/library-utils/library-utils.ts +9 -2
  183. package/src/lib/node/worker_threads-browser.ts +13 -0
  184. package/src/lib/node/worker_threads.ts +6 -0
  185. package/src/lib/process-utils/child-process-proxy.ts +6 -3
  186. package/src/lib/worker-api/create-worker.ts +1 -2
  187. package/src/lib/worker-api/get-worker-url.ts +15 -2
  188. package/src/lib/worker-api/process-on-worker.ts +8 -4
  189. package/src/lib/worker-farm/worker-body.ts +61 -19
  190. package/src/lib/worker-farm/worker-farm.ts +10 -5
  191. package/src/lib/worker-farm/worker-job.ts +3 -6
  192. package/src/lib/worker-farm/worker-pool.ts +15 -2
  193. package/src/lib/worker-farm/worker-thread.ts +45 -7
  194. package/src/lib/worker-utils/get-loadable-worker-url.ts +0 -2
  195. package/src/lib/worker-utils/get-transfer-list.ts +28 -0
  196. package/src/lib/worker-utils/remove-nontransferable-options.ts +17 -25
  197. package/src/types.ts +4 -2
  198. package/dist/index.js.map +0 -1
  199. package/dist/lib/async-queue/async-queue.js.map +0 -1
  200. package/dist/lib/env-utils/assert.js.map +0 -1
  201. package/dist/lib/env-utils/globals.js.map +0 -1
  202. package/dist/lib/env-utils/version.js.map +0 -1
  203. package/dist/lib/library-utils/library-utils.js.map +0 -1
  204. package/dist/lib/node/require-utils.node.js.map +0 -1
  205. package/dist/lib/process-utils/child-process-proxy.js.map +0 -1
  206. package/dist/lib/process-utils/process-utils.js.map +0 -1
  207. package/dist/lib/worker-api/create-worker.js.map +0 -1
  208. package/dist/lib/worker-api/get-worker-url.js.map +0 -1
  209. package/dist/lib/worker-api/process-on-worker.js.map +0 -1
  210. package/dist/lib/worker-api/validate-worker-version.js.map +0 -1
  211. package/dist/lib/worker-farm/worker-body.js.map +0 -1
  212. package/dist/lib/worker-farm/worker-farm.js.map +0 -1
  213. package/dist/lib/worker-farm/worker-job.js.map +0 -1
  214. package/dist/lib/worker-farm/worker-pool.js.map +0 -1
  215. package/dist/lib/worker-farm/worker-thread.js.map +0 -1
  216. package/dist/lib/worker-utils/get-loadable-worker-url.js.map +0 -1
  217. package/dist/lib/worker-utils/get-transfer-list.js.map +0 -1
  218. package/dist/lib/worker-utils/remove-nontransferable-options.js.map +0 -1
  219. package/dist/types.js.map +0 -1
  220. package/dist/workers/null-worker.js.map +0 -1
@@ -1,576 +1,246 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // define getter function for harmony exports
37
- /******/ __webpack_require__.d = function(exports, name, getter) {
38
- /******/ if(!__webpack_require__.o(exports, name)) {
39
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
- /******/ }
41
- /******/ };
42
- /******/
43
- /******/ // define __esModule on exports
44
- /******/ __webpack_require__.r = function(exports) {
45
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
- /******/ }
48
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
- /******/ };
50
- /******/
51
- /******/ // create a fake namespace object
52
- /******/ // mode & 1: value is a module id, require it
53
- /******/ // mode & 2: merge all properties of value into the ns
54
- /******/ // mode & 4: return value when already ns object
55
- /******/ // mode & 8|1: behave like require
56
- /******/ __webpack_require__.t = function(value, mode) {
57
- /******/ if(mode & 1) value = __webpack_require__(value);
58
- /******/ if(mode & 8) return value;
59
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
- /******/ var ns = Object.create(null);
61
- /******/ __webpack_require__.r(ns);
62
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
- /******/ return ns;
65
- /******/ };
66
- /******/
67
- /******/ // getDefaultExport function for compatibility with non-harmony modules
68
- /******/ __webpack_require__.n = function(module) {
69
- /******/ var getter = module && module.__esModule ?
70
- /******/ function getDefault() { return module['default']; } :
71
- /******/ function getModuleExports() { return module; };
72
- /******/ __webpack_require__.d(getter, 'a', getter);
73
- /******/ return getter;
74
- /******/ };
75
- /******/
76
- /******/ // Object.prototype.hasOwnProperty.call
77
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
- /******/
79
- /******/ // __webpack_public_path__
80
- /******/ __webpack_require__.p = "";
81
- /******/
82
- /******/
83
- /******/ // Load entry module and return exports
84
- /******/ return __webpack_require__(__webpack_require__.s = "./src/workers/null-worker.ts");
85
- /******/ })
86
- /************************************************************************/
87
- /******/ ({
88
-
89
- /***/ "../../node_modules/@babel/runtime/helpers/defineProperty.js":
90
- /*!**************************************************************************************************!*\
91
- !*** /home/user/apps/loaders.gl_duplicate/node_modules/@babel/runtime/helpers/defineProperty.js ***!
92
- \**************************************************************************************************/
93
- /*! no static exports found */
94
- /***/ (function(module, exports) {
95
-
96
- function _defineProperty(obj, key, value) {
97
- if (key in obj) {
98
- Object.defineProperty(obj, key, {
99
- value: value,
100
- enumerable: true,
101
- configurable: true,
102
- writable: true
103
- });
104
- } else {
105
- obj[key] = value;
106
- }
107
-
108
- return obj;
109
- }
110
-
111
- module.exports = _defineProperty;
112
- module.exports["default"] = module.exports, module.exports.__esModule = true;
113
-
114
- /***/ }),
115
-
116
- /***/ "./src/lib/async-queue/async-queue.ts":
117
- /*!********************************************!*\
118
- !*** ./src/lib/async-queue/async-queue.ts ***!
119
- \********************************************/
120
- /*! exports provided: default */
121
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
122
-
123
- "use strict";
124
- __webpack_require__.r(__webpack_exports__);
125
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return AsyncQueue; });
126
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../../node_modules/@babel/runtime/helpers/defineProperty.js");
127
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
128
-
129
-
130
- let _Symbol$asyncIterator;
131
-
132
- _Symbol$asyncIterator = Symbol.asyncIterator;
133
- // From https://github.com/rauschma/async-iter-demo/tree/master/src under MIT license
134
- // http://2ality.com/2016/10/asynchronous-iteration.html
135
-
136
- /**
137
- * Async Queue
138
- * - AsyncIterable: An async iterator can be
139
- * - Values can be pushed onto the queue
140
- * @example
141
- * const asyncQueue = new AsyncQueue();
142
- * setTimeout(() => asyncQueue.enqueue('tick'), 1000);
143
- * setTimeout(() => asyncQueue.enqueue(new Error('done')), 10000);
144
- * for await (const value of asyncQueue) {
145
- * console.log(value); // tick
146
- * }
147
- */
148
- class AsyncQueue {
149
- constructor() {
150
- _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "_values", void 0);
151
-
152
- _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "_settlers", void 0);
153
-
154
- _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "_closed", void 0);
155
-
156
- this._values = []; // enqueues > dequeues
157
-
158
- this._settlers = []; // dequeues > enqueues
159
-
160
- this._closed = false;
161
- }
162
- /** Return an async iterator for this queue */
163
-
164
-
165
- [_Symbol$asyncIterator]() {
166
- return this;
167
- }
168
- /** Push a new value - the async iterator will yield a promise resolved to this value */
169
-
170
-
171
- push(value) {
172
- return this.enqueue(value);
173
- }
174
- /**
175
- * Push a new value - the async iterator will yield a promise resolved to this value
176
- * Add an error - the async iterator will yield a promise rejected with this value
177
- */
178
-
179
-
180
- enqueue(value) {
181
- if (this._closed) {
182
- throw new Error('Closed');
1
+ (() => {
2
+ // src/lib/async-queue/async-queue.ts
3
+ var AsyncQueue = class {
4
+ constructor() {
5
+ this._values = [];
6
+ this._settlers = [];
7
+ this._closed = false;
183
8
  }
184
-
185
- if (this._settlers.length > 0) {
186
- if (this._values.length > 0) {
187
- throw new Error('Illegal internal state');
9
+ [Symbol.asyncIterator]() {
10
+ return this;
11
+ }
12
+ push(value) {
13
+ return this.enqueue(value);
14
+ }
15
+ enqueue(value) {
16
+ if (this._closed) {
17
+ throw new Error("Closed");
188
18
  }
189
-
190
- const settler = this._settlers.shift();
191
-
192
- if (value instanceof Error) {
193
- settler.reject(value);
19
+ if (this._settlers.length > 0) {
20
+ if (this._values.length > 0) {
21
+ throw new Error("Illegal internal state");
22
+ }
23
+ const settler = this._settlers.shift();
24
+ if (value instanceof Error) {
25
+ settler.reject(value);
26
+ } else {
27
+ settler.resolve({ value });
28
+ }
194
29
  } else {
195
- settler.resolve({
196
- value
197
- });
30
+ this._values.push(value);
198
31
  }
199
- } else {
200
- this._values.push(value);
201
32
  }
202
- }
203
- /** Indicate that we not waiting for more values - The async iterator will be done */
204
-
205
-
206
- close() {
207
- while (this._settlers.length > 0) {
208
- const settler = this._settlers.shift();
209
-
210
- settler.resolve({
211
- done: true
212
- });
33
+ close() {
34
+ while (this._settlers.length > 0) {
35
+ const settler = this._settlers.shift();
36
+ settler.resolve({ done: true });
37
+ }
38
+ this._closed = true;
213
39
  }
214
-
215
- this._closed = true;
216
- } // ITERATOR IMPLEMENTATION
217
-
218
- /** @returns a Promise for an IteratorResult */
219
-
220
-
221
- next() {
222
- // If values in queue, yield the first value
223
- if (this._values.length > 0) {
224
- const value = this._values.shift();
225
-
226
- if (value instanceof Error) {
227
- return Promise.reject(value);
40
+ next() {
41
+ if (this._values.length > 0) {
42
+ const value = this._values.shift();
43
+ if (value instanceof Error) {
44
+ return Promise.reject(value);
45
+ }
46
+ return Promise.resolve({ done: false, value });
228
47
  }
229
-
230
- return Promise.resolve({
231
- done: false,
232
- value
233
- });
234
- } // If queue is closed, the iterator is done
235
-
236
-
237
- if (this._closed) {
238
- if (this._settlers.length > 0) {
239
- throw new Error('Illegal internal state');
48
+ if (this._closed) {
49
+ if (this._settlers.length > 0) {
50
+ throw new Error("Illegal internal state");
51
+ }
52
+ return Promise.resolve({ done: true, value: void 0 });
240
53
  }
241
-
242
- return Promise.resolve({
243
- done: true,
244
- value: undefined
54
+ return new Promise((resolve, reject) => {
55
+ this._settlers.push({ resolve, reject });
245
56
  });
246
- } // Yield a promise that waits for new values to be enqueued
247
-
57
+ }
58
+ };
248
59
 
249
- return new Promise((resolve, reject) => {
250
- this._settlers.push({
251
- resolve,
252
- reject
253
- });
254
- });
60
+ // src/lib/worker-utils/get-transfer-list.ts
61
+ function getTransferList(object, recursive = true, transfers) {
62
+ const transfersSet = transfers || new Set();
63
+ if (!object) {
64
+ } else if (isTransferable(object)) {
65
+ transfersSet.add(object);
66
+ } else if (isTransferable(object.buffer)) {
67
+ transfersSet.add(object.buffer);
68
+ } else if (ArrayBuffer.isView(object)) {
69
+ } else if (recursive && typeof object === "object") {
70
+ for (const key in object) {
71
+ getTransferList(object[key], recursive, transfersSet);
72
+ }
73
+ }
74
+ return transfers === void 0 ? Array.from(transfersSet) : [];
255
75
  }
256
-
257
- }
258
-
259
- /***/ }),
260
-
261
- /***/ "./src/lib/worker-api/create-worker.ts":
262
- /*!*********************************************!*\
263
- !*** ./src/lib/worker-api/create-worker.ts ***!
264
- \*********************************************/
265
- /*! exports provided: createWorker */
266
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
267
-
268
- "use strict";
269
- __webpack_require__.r(__webpack_exports__);
270
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createWorker", function() { return createWorker; });
271
- /* harmony import */ var _async_queue_async_queue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../async-queue/async-queue */ "./src/lib/async-queue/async-queue.ts");
272
- /* harmony import */ var _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../worker-farm/worker-body */ "./src/lib/worker-farm/worker-body.ts");
273
-
274
- // import {validateWorkerVersion} from './validate-worker-version';
275
-
276
- /** Counter for jobs */
277
-
278
- let requestId = 0;
279
- let inputBatches;
280
- let options;
281
-
282
- /**
283
- * Set up a WebWorkerGlobalScope to talk with the main thread
284
- */
285
- function createWorker(process, processInBatches) {
286
- // Check that we are actually in a worker thread
287
- if (typeof self === 'undefined') {
288
- return;
76
+ function isTransferable(object) {
77
+ if (!object) {
78
+ return false;
79
+ }
80
+ if (object instanceof ArrayBuffer) {
81
+ return true;
82
+ }
83
+ if (typeof MessagePort !== "undefined" && object instanceof MessagePort) {
84
+ return true;
85
+ }
86
+ if (typeof ImageBitmap !== "undefined" && object instanceof ImageBitmap) {
87
+ return true;
88
+ }
89
+ if (typeof OffscreenCanvas !== "undefined" && object instanceof OffscreenCanvas) {
90
+ return true;
91
+ }
92
+ return false;
289
93
  }
290
94
 
291
- const context = {
292
- process: processOnMainThread
293
- }; // eslint-disable-next-line complexity
294
-
295
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].onmessage = async (type, payload) => {
95
+ // src/lib/worker-farm/worker-body.ts
96
+ function getParentPort() {
97
+ let parentPort;
296
98
  try {
297
- switch (type) {
298
- case 'process':
299
- if (!process) {
300
- throw new Error('Worker does not support atomic processing');
301
- }
302
-
303
- const result = await process(payload.input, payload.options || {}, context);
304
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].postMessage('done', {
305
- result
306
- });
307
- break;
308
-
309
- case 'process-in-batches':
310
- if (!processInBatches) {
311
- throw new Error('Worker does not support batched processing');
312
- }
313
-
314
- inputBatches = new _async_queue_async_queue__WEBPACK_IMPORTED_MODULE_0__["default"]();
315
- options = payload.options || {};
316
- const resultIterator = processInBatches(inputBatches, options, context);
317
-
318
- for await (const batch of resultIterator) {
319
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].postMessage('output-batch', {
320
- result: batch
321
- });
99
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
100
+ parentPort = globalThis.parentPort;
101
+ } catch {
102
+ }
103
+ return parentPort;
104
+ }
105
+ var onMessageWrapperMap = new Map();
106
+ var WorkerBody = class {
107
+ static inWorkerThread() {
108
+ return typeof self !== "undefined" || Boolean(getParentPort());
109
+ }
110
+ static set onmessage(onMessage) {
111
+ function handleMessage(message) {
112
+ const parentPort3 = getParentPort();
113
+ const { type, payload } = parentPort3 ? message : message.data;
114
+ onMessage(type, payload);
115
+ }
116
+ const parentPort2 = getParentPort();
117
+ if (parentPort2) {
118
+ parentPort2.on("message", handleMessage);
119
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
120
+ } else {
121
+ globalThis.onmessage = handleMessage;
122
+ }
123
+ }
124
+ static addEventListener(onMessage) {
125
+ let onMessageWrapper = onMessageWrapperMap.get(onMessage);
126
+ if (!onMessageWrapper) {
127
+ onMessageWrapper = (message) => {
128
+ if (!isKnownMessage(message)) {
129
+ return;
322
130
  }
323
-
324
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].postMessage('done', {});
325
- break;
326
-
327
- case 'input-batch':
328
- inputBatches.push(payload.input);
329
- break;
330
-
331
- case 'input-done':
332
- inputBatches.close();
333
- break;
334
-
335
- default:
131
+ const parentPort3 = getParentPort();
132
+ const { type, payload } = parentPort3 ? message : message.data;
133
+ onMessage(type, payload);
134
+ };
135
+ }
136
+ const parentPort2 = getParentPort();
137
+ if (parentPort2) {
138
+ console.error("not implemented");
139
+ } else {
140
+ globalThis.addEventListener("message", onMessageWrapper);
336
141
  }
337
- } catch (error) {
338
- const message = error instanceof Error ? error.message : '';
339
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].postMessage('error', {
340
- error: message
341
- });
342
142
  }
343
- };
344
- }
345
-
346
- function processOnMainThread(arrayBuffer, options = {}) {
347
- return new Promise((resolve, reject) => {
348
- const id = requestId++;
349
- /**
350
- */
351
-
352
- const onMessage = (type, payload) => {
353
- if (payload.id !== id) {
354
- // not ours
355
- return;
143
+ static removeEventListener(onMessage) {
144
+ const onMessageWrapper = onMessageWrapperMap.get(onMessage);
145
+ onMessageWrapperMap.delete(onMessage);
146
+ const parentPort2 = getParentPort();
147
+ if (parentPort2) {
148
+ console.error("not implemented");
149
+ } else {
150
+ globalThis.removeEventListener("message", onMessageWrapper);
356
151
  }
357
-
358
- switch (type) {
359
- case 'done':
360
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].removeEventListener(onMessage);
361
- resolve(payload.result);
362
- break;
363
-
364
- case 'error':
365
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].removeEventListener(onMessage);
366
- reject(payload.error);
367
- break;
368
-
369
- default: // ignore
370
-
152
+ }
153
+ static postMessage(type, payload) {
154
+ const data = { source: "loaders.gl", type, payload };
155
+ const transferList = getTransferList(payload);
156
+ const parentPort2 = getParentPort();
157
+ if (parentPort2) {
158
+ parentPort2.postMessage(data, transferList);
159
+ } else {
160
+ globalThis.postMessage(data, transferList);
371
161
  }
372
- };
373
-
374
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].addEventListener(onMessage); // Ask the main thread to decode data
162
+ }
163
+ };
164
+ function isKnownMessage(message) {
165
+ const { type, data } = message;
166
+ return type === "message" && data && typeof data.source === "string" && data.source.startsWith("loaders.gl");
167
+ }
375
168
 
376
- const payload = {
377
- id,
378
- input: arrayBuffer,
379
- options
169
+ // src/lib/worker-api/create-worker.ts
170
+ var requestId = 0;
171
+ var inputBatches;
172
+ var options;
173
+ function createWorker(process, processInBatches) {
174
+ if (!WorkerBody.inWorkerThread()) {
175
+ return;
176
+ }
177
+ const context = {
178
+ process: processOnMainThread
380
179
  };
381
- _worker_farm_worker_body__WEBPACK_IMPORTED_MODULE_1__["default"].postMessage('process', payload);
382
- });
383
- }
384
-
385
- /***/ }),
386
-
387
- /***/ "./src/lib/worker-farm/worker-body.ts":
388
- /*!********************************************!*\
389
- !*** ./src/lib/worker-farm/worker-body.ts ***!
390
- \********************************************/
391
- /*! exports provided: default */
392
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
393
-
394
- "use strict";
395
- __webpack_require__.r(__webpack_exports__);
396
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return WorkerBody; });
397
- /* harmony import */ var _worker_utils_get_transfer_list__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../worker-utils/get-transfer-list */ "./src/lib/worker-utils/get-transfer-list.ts");
398
-
399
- const onMessageWrapperMap = new Map();
400
- /**
401
- * Type safe wrapper for worker code
402
- */
403
-
404
- class WorkerBody {
405
- /*
406
- * (type: WorkerMessageType, payload: WorkerMessagePayload) => any
407
- */
408
- static set onmessage(onMessage) {
409
- // eslint-disable-next-line no-restricted-globals
410
- self.onmessage = message => {
411
- if (!isKnownMessage(message)) {
412
- return;
413
- } // Confusingly the message itself also has a 'type' field which is always set to 'message'
414
-
415
-
416
- const {
417
- type,
418
- payload
419
- } = message.data;
420
- onMessage(type, payload);
180
+ WorkerBody.onmessage = async (type, payload) => {
181
+ try {
182
+ switch (type) {
183
+ case "process":
184
+ if (!process) {
185
+ throw new Error("Worker does not support atomic processing");
186
+ }
187
+ const result = await process(payload.input, payload.options || {}, context);
188
+ WorkerBody.postMessage("done", { result });
189
+ break;
190
+ case "process-in-batches":
191
+ if (!processInBatches) {
192
+ throw new Error("Worker does not support batched processing");
193
+ }
194
+ inputBatches = new AsyncQueue();
195
+ options = payload.options || {};
196
+ const resultIterator = processInBatches(inputBatches, options, context);
197
+ for await (const batch of resultIterator) {
198
+ WorkerBody.postMessage("output-batch", { result: batch });
199
+ }
200
+ WorkerBody.postMessage("done", {});
201
+ break;
202
+ case "input-batch":
203
+ inputBatches.push(payload.input);
204
+ break;
205
+ case "input-done":
206
+ inputBatches.close();
207
+ break;
208
+ default:
209
+ }
210
+ } catch (error) {
211
+ const message = error instanceof Error ? error.message : "";
212
+ WorkerBody.postMessage("error", { error: message });
213
+ }
421
214
  };
422
215
  }
423
-
424
- static addEventListener(onMessage) {
425
- let onMessageWrapper = onMessageWrapperMap.get(onMessage);
426
-
427
- if (!onMessageWrapper) {
428
- onMessageWrapper = message => {
429
- if (!isKnownMessage(message)) {
216
+ function processOnMainThread(arrayBuffer, options2 = {}) {
217
+ return new Promise((resolve, reject) => {
218
+ const id = requestId++;
219
+ const onMessage = (type, payload2) => {
220
+ if (payload2.id !== id) {
430
221
  return;
431
- } // Confusingly the message itself also has a 'type' field which is always set to 'message'
432
-
433
-
434
- const {
435
- type,
436
- payload
437
- } = message.data;
438
- onMessage(type, payload);
222
+ }
223
+ switch (type) {
224
+ case "done":
225
+ WorkerBody.removeEventListener(onMessage);
226
+ resolve(payload2.result);
227
+ break;
228
+ case "error":
229
+ WorkerBody.removeEventListener(onMessage);
230
+ reject(payload2.error);
231
+ break;
232
+ default:
233
+ }
439
234
  };
440
- } // eslint-disable-next-line no-restricted-globals
441
-
442
-
443
- self.addEventListener('message', onMessageWrapper);
444
- }
445
-
446
- static removeEventListener(onMessage) {
447
- const onMessageWrapper = onMessageWrapperMap.get(onMessage);
448
- onMessageWrapperMap.delete(onMessage); // eslint-disable-next-line no-restricted-globals
449
-
450
- self.removeEventListener('message', onMessageWrapper);
451
- }
452
- /**
453
- * Send a message from a worker to creating thread (main thread)
454
- * @param type
455
- * @param payload
456
- */
457
-
458
-
459
- static postMessage(type, payload) {
460
- if (self) {
461
- const data = {
462
- source: 'loaders.gl',
463
- type,
464
- payload
465
- };
466
- const transferList = Object(_worker_utils_get_transfer_list__WEBPACK_IMPORTED_MODULE_0__["getTransferList"])(payload); // eslint-disable-next-line no-restricted-globals
467
- // @ts-ignore
468
-
469
- self.postMessage(data, transferList);
470
- }
471
- }
472
-
473
- } // Filter out noise messages sent to workers
474
-
475
- function isKnownMessage(message) {
476
- const {
477
- type,
478
- data
479
- } = message;
480
- return type === 'message' && data && typeof data.source === 'string' && data.source.startsWith('loaders.gl');
481
- }
482
-
483
- /***/ }),
484
-
485
- /***/ "./src/lib/worker-utils/get-transfer-list.ts":
486
- /*!***************************************************!*\
487
- !*** ./src/lib/worker-utils/get-transfer-list.ts ***!
488
- \***************************************************/
489
- /*! exports provided: getTransferList */
490
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
491
-
492
- "use strict";
493
- __webpack_require__.r(__webpack_exports__);
494
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTransferList", function() { return getTransferList; });
495
- // NOTE - there is a copy of this function is both in core and loader-utils
496
- // core does not need all the utils in loader-utils, just this one.
497
-
498
- /**
499
- * Returns an array of Transferrable objects that can be used with postMessage
500
- * https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage
501
- * @param object data to be sent via postMessage
502
- * @param recursive - not for application use
503
- * @param transfers - not for application use
504
- * @returns a transfer list that can be passed to postMessage
505
- */
506
- function getTransferList(object, recursive = true, transfers) {
507
- // Make sure that items in the transfer list is unique
508
- const transfersSet = transfers || new Set();
509
-
510
- if (!object) {// ignore
511
- } else if (isTransferable(object)) {
512
- transfersSet.add(object);
513
- } else if (isTransferable(object.buffer)) {
514
- // Typed array
515
- transfersSet.add(object.buffer);
516
- } else if (ArrayBuffer.isView(object)) {// object is a TypeArray viewing into a SharedArrayBuffer (not transferable)
517
- // Do not iterate through the content in this case
518
- } else if (recursive && typeof object === 'object') {
519
- for (const key in object) {
520
- // Avoid perf hit - only go one level deep
521
- getTransferList(object[key], recursive, transfersSet);
522
- }
523
- } // If transfers is defined, is internal recursive call
524
- // Otherwise it's called by the user
525
-
526
-
527
- return transfers === undefined ? Array.from(transfersSet) : [];
528
- } // https://developer.mozilla.org/en-US/docs/Web/API/Transferable
529
-
530
- function isTransferable(object) {
531
- if (!object) {
532
- return false;
533
- }
534
-
535
- if (object instanceof ArrayBuffer) {
536
- return true;
537
- }
538
-
539
- if (typeof MessagePort !== 'undefined' && object instanceof MessagePort) {
540
- return true;
541
- }
542
-
543
- if (typeof ImageBitmap !== 'undefined' && object instanceof ImageBitmap) {
544
- return true;
545
- } // @ts-ignore
546
-
547
-
548
- if (typeof OffscreenCanvas !== 'undefined' && object instanceof OffscreenCanvas) {
549
- return true;
235
+ WorkerBody.addEventListener(onMessage);
236
+ const payload = { id, input: arrayBuffer, options: options2 };
237
+ WorkerBody.postMessage("process", payload);
238
+ });
550
239
  }
551
240
 
552
- return false;
553
- }
554
-
555
- /***/ }),
556
-
557
- /***/ "./src/workers/null-worker.ts":
558
- /*!************************************!*\
559
- !*** ./src/workers/null-worker.ts ***!
560
- \************************************/
561
- /*! no exports provided */
562
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
563
-
564
- "use strict";
565
- __webpack_require__.r(__webpack_exports__);
566
- /* harmony import */ var _lib_worker_api_create_worker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/worker-api/create-worker */ "./src/lib/worker-api/create-worker.ts");
567
-
568
- Object(_lib_worker_api_create_worker__WEBPACK_IMPORTED_MODULE_0__["createWorker"])(async data => {
569
- // @ts-ignore
570
- return data;
571
- });
572
-
573
- /***/ })
574
-
575
- /******/ });
576
- //# sourceMappingURL=null-worker.js.map
241
+ // src/workers/null-worker.ts
242
+ createWorker(async (data) => {
243
+ return data;
244
+ });
245
+ })();
246
+ //# sourceMappingURL=null-worker.js.map