@loaders.gl/loader-utils 3.3.0-alpha.10 → 3.3.0-alpha.12

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/es5/index.js CHANGED
@@ -229,10 +229,16 @@ Object.defineProperty(exports, "parseWithWorker", {
229
229
  }
230
230
  });
231
231
  exports.path = void 0;
232
- Object.defineProperty(exports, "promisify", {
232
+ Object.defineProperty(exports, "promisify1", {
233
233
  enumerable: true,
234
234
  get: function get() {
235
- return util.promisify;
235
+ return _util.promisify1;
236
+ }
237
+ });
238
+ Object.defineProperty(exports, "promisify2", {
239
+ enumerable: true,
240
+ get: function get() {
241
+ return _util.promisify2;
236
242
  }
237
243
  });
238
244
  Object.defineProperty(exports, "resolvePath", {
@@ -271,7 +277,6 @@ Object.defineProperty(exports, "toBuffer", {
271
277
  return _bufferUtils.toBuffer;
272
278
  }
273
279
  });
274
- exports.util = void 0;
275
280
  Object.defineProperty(exports, "window", {
276
281
  enumerable: true,
277
282
  get: function get() {
@@ -297,8 +302,7 @@ var _jsonLoader = require("./json-loader");
297
302
  var path = _interopRequireWildcard(require("./lib/path-utils/path"));
298
303
  exports.path = path;
299
304
  var _bufferUtils = require("./lib/binary-utils/buffer-utils");
300
- var util = _interopRequireWildcard(require("./lib/node/util"));
301
- exports.util = util;
305
+ var _util = require("./lib/node/util");
302
306
  var fs = _interopRequireWildcard(require("./lib/node/fs"));
303
307
  exports.fs = fs;
304
308
  var _nodeFilesystem = _interopRequireDefault(require("./lib/filesystems/node-filesystem"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\nexport {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n toArrayBuffer,\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/binary-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from './lib/binary-utils/encode-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util'\nimport * as util from './lib/node/util';\nexport {util};\n// TODO - remove\nexport {promisify} from './lib/node/util';\n\n// Use instead of importing 'fs';`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// EXPERIMENTAL\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;AACA;AAWA;AACA;AACA;AAGA;AAGA;AAOA;AACA;AAIA;AAKA;AAGA;AAMA;AAGA;AAGA;AAIA;AAOA;AAA8C;AAI9C;AAKA;AAAwC;AAMxC;AAAoC;AAIpC;AAA6E;AAAA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\nexport {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n toArrayBuffer,\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/binary-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from './lib/binary-utils/encode-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util' to avoid node dependencies\nexport {promisify1, promisify2} from './lib/node/util';\n\n// Use instead of importing 'fs' to avoid node dependencies`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// EXPERIMENTAL\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;AACA;AAWA;AACA;AACA;AAGA;AAGA;AAOA;AACA;AAIA;AAKA;AAGA;AAMA;AAGA;AAGA;AAIA;AAOA;AAA8C;AAI9C;AAKA;AAGA;AAAoC;AAIpC;AAA6E;AAAA"}
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports._typecheckJSONLoader = exports.JSONLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var VERSION = typeof "3.3.0-alpha.10" !== 'undefined' ? "3.3.0-alpha.10" : 'latest';
10
+ var VERSION = typeof "3.3.0-alpha.12" !== 'undefined' ? "3.3.0-alpha.12" : 'latest';
11
11
 
12
12
  var JSONLoader = {
13
13
  name: 'JSON',
@@ -40,18 +40,18 @@ var isSupported = Boolean(_fs.default);
40
40
  exports.isSupported = isSupported;
41
41
 
42
42
  try {
43
- exports.readdir = readdir = (0, _util.promisify)(_fs.default.readdir);
44
- exports.stat = stat = (0, _util.promisify)(_fs.default.stat);
43
+ exports.readdir = readdir = (0, _util.promisify1)(_fs.default.readdir);
44
+ exports.stat = stat = (0, _util.promisify1)(_fs.default.stat);
45
45
 
46
- exports.readFile = readFile = (0, _util.promisify)(_fs.default.readFile);
46
+ exports.readFile = readFile = (0, _util.promisify1)(_fs.default.readFile);
47
47
  exports.readFileSync = readFileSync = _fs.default.readFileSync;
48
- exports.writeFile = writeFile = (0, _util.promisify)(_fs.default.writeFile);
48
+ exports.writeFile = writeFile = (0, _util.promisify2)(_fs.default.writeFile);
49
49
  exports.writeFileSync = writeFileSync = _fs.default.writeFileSync;
50
50
 
51
- exports.open = open = (0, _util.promisify)(_fs.default.open);
52
- exports.close = close = (0, _util.promisify)(_fs.default.close);
53
- exports.read = read = (0, _util.promisify)(_fs.default.read);
54
- exports.fstat = fstat = (0, _util.promisify)(_fs.default.fstat);
51
+ exports.open = open = (0, _util.promisify1)(_fs.default.open);
52
+ exports.close = close = (0, _util.promisify1)(_fs.default.close);
53
+ exports.read = read = (0, _util.promisify1)(_fs.default.read);
54
+ exports.fstat = fstat = (0, _util.promisify1)(_fs.default.fstat);
55
55
  exports.isSupported = isSupported = Boolean(_fs.default);
56
56
  } catch (_unused) {
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","names":["readdir","stat","readFile","readFileSync","writeFile","writeFileSync","open","close","read","fstat","isSupported","Boolean","fs","promisify","_readToArrayBuffer","fd","start","length","buffer","Buffer","alloc","bytesRead","Error","toArrayBuffer"],"sources":["../../../../src/lib/node/fs.ts"],"sourcesContent":["// fs wrapper (promisified fs + avoids bundling fs in browsers)\nimport fs from 'fs';\nimport {toArrayBuffer} from './buffer';\nimport {promisify} from './util';\n\nexport type {Stats} from 'fs';\n\nexport let readdir;\n/** Wrapper for Node.js fs method */\nexport let stat;\n\n/** Wrapper for Node.js fs method */\nexport let readFile;\n/** Wrapper for Node.js fs method */\nexport let readFileSync;\n/** Wrapper for Node.js fs method */\nexport let writeFile;\n/** Wrapper for Node.js fs method */\nexport let writeFileSync;\n\n// file descriptors\n\n/** Wrapper for Node.js fs method */\nexport let open;\n/** Wrapper for Node.js fs method */\nexport let close;\n/** Wrapper for Node.js fs method */\nexport let read;\n/** Wrapper for Node.js fs method */\nexport let fstat;\n\nexport let isSupported = Boolean(fs);\n\n// paths\n\ntry {\n /** Wrapper for Node.js fs method */\n readdir = promisify(fs.readdir);\n /** Wrapper for Node.js fs method */\n stat = promisify(fs.stat);\n\n /** Wrapper for Node.js fs method */\n readFile = promisify(fs.readFile);\n /** Wrapper for Node.js fs method */\n readFileSync = fs.readFileSync;\n /** Wrapper for Node.js fs method */\n writeFile = promisify(fs.writeFile);\n /** Wrapper for Node.js fs method */\n writeFileSync = fs.writeFileSync;\n\n // file descriptors\n\n /** Wrapper for Node.js fs method */\n open = promisify(fs.open);\n /** Wrapper for Node.js fs method */\n close = promisify(fs.close);\n /** Wrapper for Node.js fs method */\n read = promisify(fs.read);\n /** Wrapper for Node.js fs method */\n fstat = promisify(fs.fstat);\n\n isSupported = Boolean(fs);\n} catch {\n // ignore\n}\n\nexport async function _readToArrayBuffer(fd: number, start: number, length: number) {\n const buffer = Buffer.alloc(length);\n const {bytesRead} = await read(fd, buffer, 0, length, start);\n if (bytesRead !== length) {\n throw new Error('fs.read failed');\n }\n return toArrayBuffer(buffer);\n}\n"],"mappings":";;;;;;;;;;AACA;AACA;AACA;;AAIO,IAAIA,OAAO;AAAC;AAEZ,IAAIC,IAAI;;AAAC;AAGT,IAAIC,QAAQ;AAAC;AAEb,IAAIC,YAAY;AAAC;AAEjB,IAAIC,SAAS;AAAC;AAEd,IAAIC,aAAa;;AAAC;;AAKlB,IAAIC,IAAI;AAAC;AAET,IAAIC,KAAK;AAAC;AAEV,IAAIC,IAAI;AAAC;AAET,IAAIC,KAAK;AAAC;AAEV,IAAIC,WAAW,GAAGC,OAAO,CAACC,WAAE,CAAC;;AAAC;;AAIrC,IAAI;EAEF,kBAAAZ,OAAO,GAAG,IAAAa,eAAS,EAACD,WAAE,CAACZ,OAAO,CAAC;EAE/B,eAAAC,IAAI,GAAG,IAAAY,eAAS,EAACD,WAAE,CAACX,IAAI,CAAC;;EAGzB,mBAAAC,QAAQ,GAAG,IAAAW,eAAS,EAACD,WAAE,CAACV,QAAQ,CAAC;EAEjC,uBAAAC,YAAY,GAAGS,WAAE,CAACT,YAAY;EAE9B,oBAAAC,SAAS,GAAG,IAAAS,eAAS,EAACD,WAAE,CAACR,SAAS,CAAC;EAEnC,wBAAAC,aAAa,GAAGO,WAAE,CAACP,aAAa;;EAKhC,eAAAC,IAAI,GAAG,IAAAO,eAAS,EAACD,WAAE,CAACN,IAAI,CAAC;EAEzB,gBAAAC,KAAK,GAAG,IAAAM,eAAS,EAACD,WAAE,CAACL,KAAK,CAAC;EAE3B,eAAAC,IAAI,GAAG,IAAAK,eAAS,EAACD,WAAE,CAACJ,IAAI,CAAC;EAEzB,gBAAAC,KAAK,GAAG,IAAAI,eAAS,EAACD,WAAE,CAACH,KAAK,CAAC;EAE3B,sBAAAC,WAAW,GAAGC,OAAO,CAACC,WAAE,CAAC;AAC3B,CAAC,CAAC,gBAAM;AAER;AAAC,SAEqBE,kBAAkB;EAAA;AAAA;AAAA;EAAA,gFAAjC,iBAAkCC,EAAU,EAAEC,KAAa,EAAEC,MAAc;IAAA;IAAA;MAAA;QAAA;UAAA;YAC1EC,MAAM,GAAGC,MAAM,CAACC,KAAK,CAACH,MAAM,CAAC;YAAA;YAAA,OACTT,IAAI,CAACO,EAAE,EAAEG,MAAM,EAAE,CAAC,EAAED,MAAM,EAAED,KAAK,CAAC;UAAA;YAAA;YAArDK,SAAS,eAATA,SAAS;YAAA,MACZA,SAAS,KAAKJ,MAAM;cAAA;cAAA;YAAA;YAAA,MAChB,IAAIK,KAAK,CAAC,gBAAgB,CAAC;UAAA;YAAA,iCAE5B,IAAAC,qBAAa,EAACL,MAAM,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAC7B;EAAA;AAAA"}
1
+ {"version":3,"file":"fs.js","names":["readdir","stat","readFile","readFileSync","writeFile","writeFileSync","open","close","read","fstat","isSupported","Boolean","fs","promisify1","promisify2","_readToArrayBuffer","fd","start","length","buffer","Buffer","alloc","bytesRead","Error","toArrayBuffer"],"sources":["../../../../src/lib/node/fs.ts"],"sourcesContent":["// fs wrapper (promisified fs + avoids bundling fs in browsers)\nimport fs from 'fs';\nimport {toArrayBuffer} from './buffer';\nimport {promisify1, promisify2} from './util';\n\nexport type {Stats} from 'fs';\n\nexport let readdir;\n/** Wrapper for Node.js fs method */\nexport let stat;\n\n/** Wrapper for Node.js fs method */\nexport let readFile;\n/** Wrapper for Node.js fs method */\nexport let readFileSync;\n/** Wrapper for Node.js fs method */\nexport let writeFile;\n/** Wrapper for Node.js fs method */\nexport let writeFileSync;\n\n// file descriptors\n\n/** Wrapper for Node.js fs method */\nexport let open;\n/** Wrapper for Node.js fs method */\nexport let close;\n/** Wrapper for Node.js fs method */\nexport let read;\n/** Wrapper for Node.js fs method */\nexport let fstat;\n\nexport let isSupported = Boolean(fs);\n\n// paths\n\ntry {\n /** Wrapper for Node.js fs method */\n readdir = promisify1(fs.readdir);\n /** Wrapper for Node.js fs method */\n stat = promisify1(fs.stat);\n\n /** Wrapper for Node.js fs method */\n readFile = promisify1(fs.readFile);\n /** Wrapper for Node.js fs method */\n readFileSync = fs.readFileSync;\n /** Wrapper for Node.js fs method */\n writeFile = promisify2(fs.writeFile);\n /** Wrapper for Node.js fs method */\n writeFileSync = fs.writeFileSync;\n\n // file descriptors\n\n /** Wrapper for Node.js fs method */\n open = promisify1(fs.open);\n /** Wrapper for Node.js fs method */\n close = promisify1(fs.close);\n /** Wrapper for Node.js fs method */\n read = promisify1(fs.read);\n /** Wrapper for Node.js fs method */\n fstat = promisify1(fs.fstat);\n\n isSupported = Boolean(fs);\n} catch {\n // ignore\n}\n\nexport async function _readToArrayBuffer(fd: number, start: number, length: number) {\n const buffer = Buffer.alloc(length);\n const {bytesRead} = await read(fd, buffer, 0, length, start);\n if (bytesRead !== length) {\n throw new Error('fs.read failed');\n }\n return toArrayBuffer(buffer);\n}\n"],"mappings":";;;;;;;;;;AACA;AACA;AACA;;AAIO,IAAIA,OAAO;AAAC;AAEZ,IAAIC,IAAI;;AAAC;AAGT,IAAIC,QAAQ;AAAC;AAEb,IAAIC,YAAY;AAAC;AAEjB,IAAIC,SAAS;AAAC;AAEd,IAAIC,aAAa;;AAAC;;AAKlB,IAAIC,IAAI;AAAC;AAET,IAAIC,KAAK;AAAC;AAEV,IAAIC,IAAI;AAAC;AAET,IAAIC,KAAK;AAAC;AAEV,IAAIC,WAAW,GAAGC,OAAO,CAACC,WAAE,CAAC;;AAAC;;AAIrC,IAAI;EAEF,kBAAAZ,OAAO,GAAG,IAAAa,gBAAU,EAACD,WAAE,CAACZ,OAAO,CAAC;EAEhC,eAAAC,IAAI,GAAG,IAAAY,gBAAU,EAACD,WAAE,CAACX,IAAI,CAAC;;EAG1B,mBAAAC,QAAQ,GAAG,IAAAW,gBAAU,EAACD,WAAE,CAACV,QAAQ,CAAC;EAElC,uBAAAC,YAAY,GAAGS,WAAE,CAACT,YAAY;EAE9B,oBAAAC,SAAS,GAAG,IAAAU,gBAAU,EAACF,WAAE,CAACR,SAAS,CAAC;EAEpC,wBAAAC,aAAa,GAAGO,WAAE,CAACP,aAAa;;EAKhC,eAAAC,IAAI,GAAG,IAAAO,gBAAU,EAACD,WAAE,CAACN,IAAI,CAAC;EAE1B,gBAAAC,KAAK,GAAG,IAAAM,gBAAU,EAACD,WAAE,CAACL,KAAK,CAAC;EAE5B,eAAAC,IAAI,GAAG,IAAAK,gBAAU,EAACD,WAAE,CAACJ,IAAI,CAAC;EAE1B,gBAAAC,KAAK,GAAG,IAAAI,gBAAU,EAACD,WAAE,CAACH,KAAK,CAAC;EAE5B,sBAAAC,WAAW,GAAGC,OAAO,CAACC,WAAE,CAAC;AAC3B,CAAC,CAAC,gBAAM;AAER;AAAC,SAEqBG,kBAAkB;EAAA;AAAA;AAAA;EAAA,gFAAjC,iBAAkCC,EAAU,EAAEC,KAAa,EAAEC,MAAc;IAAA;IAAA;MAAA;QAAA;UAAA;YAC1EC,MAAM,GAAGC,MAAM,CAACC,KAAK,CAACH,MAAM,CAAC;YAAA;YAAA,OACTV,IAAI,CAACQ,EAAE,EAAEG,MAAM,EAAE,CAAC,EAAED,MAAM,EAAED,KAAK,CAAC;UAAA;YAAA;YAArDK,SAAS,eAATA,SAAS;YAAA,MACZA,SAAS,KAAKJ,MAAM;cAAA;cAAA;YAAA;YAAA,MAChB,IAAIK,KAAK,CAAC,gBAAgB,CAAC;UAAA;YAAA,iCAE5B,IAAAC,qBAAa,EAACL,MAAM,CAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAC7B;EAAA;AAAA"}
@@ -1,13 +1,27 @@
1
1
  "use strict";
2
2
 
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.promisify = void 0;
8
- var util = _interopRequireWildcard(require("util"));
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
- var promisify = util.promisify;
12
- exports.promisify = promisify;
6
+ exports.promisify1 = promisify1;
7
+ exports.promisify2 = promisify2;
8
+
9
+ function promisify1(fn) {
10
+ return function (args) {
11
+ return new Promise(function (resolve) {
12
+ fn(args, function (callbackArgs) {
13
+ resolve(callbackArgs);
14
+ });
15
+ });
16
+ };
17
+ }
18
+ function promisify2(fn) {
19
+ return function (arg1, arg2) {
20
+ return new Promise(function (resolve) {
21
+ fn(arg1, arg2, function (callbackArgs) {
22
+ resolve(callbackArgs);
23
+ });
24
+ });
25
+ };
26
+ }
13
27
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","names":["promisify","util"],"sources":["../../../../src/lib/node/util.ts"],"sourcesContent":["import * as util from 'util';\n\n/** Wrapper for Node.js promisify */\nexport const promisify = util.promisify;\n"],"mappings":";;;;;;;AAAA;AAA6B;AAAA;AAGtB,IAAMA,SAAS,GAAGC,IAAI,CAACD,SAAS;AAAC"}
1
+ {"version":3,"file":"util.js","names":["promisify1","fn","args","Promise","resolve","callbackArgs","promisify2","arg1","arg2"],"sources":["../../../../src/lib/node/util.ts"],"sourcesContent":["// @loaders.gl, MIT license\n\n/** Wrapper for Node.js promisify */\ntype Callback<A> = (args: A) => void;\n\n/**\n * Typesafe promisify implementation\n * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34\n * @param fn\n * @returns\n */\nexport function promisify1<T, A>(fn: (args: T, cb: Callback<A>) => void): (args: T) => Promise<A> {\n return (args: T) =>\n new Promise((resolve) => {\n fn(args, (callbackArgs) => {\n resolve(callbackArgs);\n });\n });\n}\n\nexport function promisify2<T1, T2, A>(\n fn: (arg1: T1, arg2: T2, cb: Callback<A>) => void\n): (arg1: T1, arg2: T2) => Promise<A> {\n return (arg1: T1, arg2: T2) =>\n new Promise((resolve) => {\n fn(arg1, arg2, (callbackArgs) => {\n resolve(callbackArgs);\n });\n });\n}\n"],"mappings":";;;;;;;;AAWO,SAASA,UAAU,CAAOC,EAAsC,EAA2B;EAChG,OAAO,UAACC,IAAO;IAAA,OACb,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;MACvBH,EAAE,CAACC,IAAI,EAAE,UAACG,YAAY,EAAK;QACzBD,OAAO,CAACC,YAAY,CAAC;MACvB,CAAC,CAAC;IACJ,CAAC,CAAC;EAAA;AACN;AAEO,SAASC,UAAU,CACxBL,EAAiD,EACb;EACpC,OAAO,UAACM,IAAQ,EAAEC,IAAQ;IAAA,OACxB,IAAIL,OAAO,CAAC,UAACC,OAAO,EAAK;MACvBH,EAAE,CAACM,IAAI,EAAEC,IAAI,EAAE,UAACH,YAAY,EAAK;QAC/BD,OAAO,CAACC,YAAY,CAAC;MACvB,CAAC,CAAC;IACJ,CAAC,CAAC;EAAA;AACN"}
package/dist/esm/index.js CHANGED
@@ -30,9 +30,7 @@ export { path };
30
30
 
31
31
  export { isBuffer, toBuffer, bufferToArrayBuffer } from './lib/binary-utils/buffer-utils';
32
32
 
33
- import * as util from './lib/node/util';
34
- export { util };
35
- export { promisify } from './lib/node/util';
33
+ export { promisify1, promisify2 } from './lib/node/util';
36
34
 
37
35
  import * as fs from './lib/node/fs';
38
36
  export { fs };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["assert","isBrowser","isWorker","nodeVersion","self","window","global","document","createLoaderWorker","parseWithWorker","canParseWithWorker","canEncodeWithWorker","parseJSON","toArrayBuffer","sliceArrayBuffer","concatenateArrayBuffers","concatenateTypedArrays","compareArrayBuffers","padToNBytes","copyToArray","copyArrayBuffer","copyPaddedArrayBufferToDataView","copyPaddedStringToDataView","padStringToByteAlignment","copyStringToDataView","copyBinaryToDataView","getFirstCharacters","getMagicString","makeTextEncoderIterator","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","forEach","concatenateArrayBuffersAsync","default","RequestScheduler","setPathPrefix","getPathPrefix","resolvePath","addAliases","_addAliases","JSONLoader","path","isBuffer","toBuffer","bufferToArrayBuffer","util","promisify","fs","_NodeFileSystem"],"sources":["../../src/index.ts"],"sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\nexport {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n toArrayBuffer,\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/binary-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from './lib/binary-utils/encode-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util'\nimport * as util from './lib/node/util';\nexport {util};\n// TODO - remove\nexport {promisify} from './lib/node/util';\n\n// Use instead of importing 'fs';`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// EXPERIMENTAL\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"mappings":";;AAgBA,SAAQA,MAAM,QAAO,wBAAwB;AAC7C,SACEC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,QACH,yBAAyB;;AAGhC,SAAQC,kBAAkB,QAAO,gDAAgD;AACjF,SAAQC,eAAe,EAAEC,kBAAkB,QAAO,6CAA6C;AAC/F,SAAQC,mBAAmB,QAAO,8CAA8C;;AAGhF,SAAQC,SAAS,QAAO,+BAA+B;;AAGvD,SACEC,aAAa,EACbC,gBAAgB,EAChBC,uBAAuB,EACvBC,sBAAsB,EACtBC,mBAAmB,QACd,uCAAuC;AAC9C,SAAQC,WAAW,EAAEC,WAAW,EAAEC,eAAe,QAAO,sCAAsC;AAC9F,SACEC,+BAA+B,EAC/BC,0BAA0B,QACrB,sCAAsC;AAC7C,SACEC,wBAAwB,EACxBC,oBAAoB,EACpBC,oBAAoB,QACf,iCAAiC;AACxC,SAAQC,kBAAkB,EAAEC,cAAc,QAAO,yCAAyC;;AAG1F,SACEC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAgB,EAChBC,wBAAwB,QACnB,gCAAgC;AACvC,SAAQC,OAAO,EAAEC,4BAA4B,QAAO,iCAAiC;;AAGrF,SAAQC,OAAO,IAAIC,gBAAgB,QAAO,uCAAuC;;AAGjF,SAAQC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAO,+BAA+B;AACvF,SAAQC,UAAU,IAAIC,WAAW,QAAO,+BAA+B;;AAGvE,SAAQC,UAAU,QAAO,eAAe;;AAOxC,OAAO,KAAKC,IAAI,MAAM,uBAAuB;AAC7C,SAAQA,IAAI;;AAGZ,SAAQC,QAAQ,EAAEC,QAAQ,EAAEC,mBAAmB,QAAO,iCAAiC;;AAKvF,OAAO,KAAKC,IAAI,MAAM,iBAAiB;AACvC,SAAQA,IAAI;AAEZ,SAAQC,SAAS,QAAO,iBAAiB;;AAGzC,OAAO,KAAKC,EAAE,MAAM,eAAe;AACnC,SAAQA,EAAE;;AAGV,SAAQd,OAAO,IAAIe,eAAe,QAAO,mCAAmC"}
1
+ {"version":3,"file":"index.js","names":["assert","isBrowser","isWorker","nodeVersion","self","window","global","document","createLoaderWorker","parseWithWorker","canParseWithWorker","canEncodeWithWorker","parseJSON","toArrayBuffer","sliceArrayBuffer","concatenateArrayBuffers","concatenateTypedArrays","compareArrayBuffers","padToNBytes","copyToArray","copyArrayBuffer","copyPaddedArrayBufferToDataView","copyPaddedStringToDataView","padStringToByteAlignment","copyStringToDataView","copyBinaryToDataView","getFirstCharacters","getMagicString","makeTextEncoderIterator","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","forEach","concatenateArrayBuffersAsync","default","RequestScheduler","setPathPrefix","getPathPrefix","resolvePath","addAliases","_addAliases","JSONLoader","path","isBuffer","toBuffer","bufferToArrayBuffer","promisify1","promisify2","fs","_NodeFileSystem"],"sources":["../../src/index.ts"],"sourcesContent":["// TYPES\nexport type {\n Loader,\n LoaderWithParser,\n LoaderContext,\n LoaderOptions,\n Writer,\n WriterOptions,\n DataType,\n SyncDataType,\n BatchableDataType,\n IFileSystem,\n IRandomAccessReadFileSystem\n} from './types';\n\n// GENERAL UTILS\nexport {assert} from './lib/env-utils/assert';\nexport {\n isBrowser,\n isWorker,\n nodeVersion,\n self,\n window,\n global,\n document\n} from './lib/env-utils/globals';\n\n// LOADERS.GL-SPECIFIC WORKER UTILS\nexport {createLoaderWorker} from './lib/worker-loader-utils/create-loader-worker';\nexport {parseWithWorker, canParseWithWorker} from './lib/worker-loader-utils/parse-with-worker';\nexport {canEncodeWithWorker} from './lib/worker-loader-utils/encode-with-worker';\n\n// PARSER UTILS\nexport {parseJSON} from './lib/parser-utils/parse-json';\n\n// MEMORY COPY UTILS\nexport {\n toArrayBuffer,\n sliceArrayBuffer,\n concatenateArrayBuffers,\n concatenateTypedArrays,\n compareArrayBuffers\n} from './lib/binary-utils/array-buffer-utils';\nexport {padToNBytes, copyToArray, copyArrayBuffer} from './lib/binary-utils/memory-copy-utils';\nexport {\n copyPaddedArrayBufferToDataView,\n copyPaddedStringToDataView\n} from './lib/binary-utils/binary-copy-utils';\nexport {\n padStringToByteAlignment,\n copyStringToDataView,\n copyBinaryToDataView\n} from './lib/binary-utils/encode-utils';\nexport {getFirstCharacters, getMagicString} from './lib/binary-utils/get-first-characters';\n\n// ITERATOR UTILS\nexport {\n makeTextEncoderIterator,\n makeTextDecoderIterator,\n makeLineIterator,\n makeNumberedLineIterator\n} from './lib/iterators/text-iterators';\nexport {forEach, concatenateArrayBuffersAsync} from './lib/iterators/async-iteration';\n\n// REQUEST UTILS\nexport {default as RequestScheduler} from './lib/request-utils/request-scheduler';\n\n// PATH HELPERS\nexport {setPathPrefix, getPathPrefix, resolvePath} from './lib/path-utils/file-aliases';\nexport {addAliases as _addAliases} from './lib/path-utils/file-aliases';\n\n// MICRO LOADERS\nexport {JSONLoader} from './json-loader';\n\n// NODE support\n\n// Node.js emulation (can be used in browser)\n\n// `path` replacement (avoids bundling big path polyfill)\nimport * as path from './lib/path-utils/path';\nexport {path};\n\n// Avoid direct use of `Buffer` which pulls in 50KB polyfill\nexport {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer-utils';\n\n// Note.js wrappers (can be safely imported, but not used in browser)\n\n// Use instead of importing 'util' to avoid node dependencies\nexport {promisify1, promisify2} from './lib/node/util';\n\n// Use instead of importing 'fs' to avoid node dependencies`\nimport * as fs from './lib/node/fs';\nexport {fs};\n\n// EXPERIMENTAL\nexport {default as _NodeFileSystem} from './lib/filesystems/node-filesystem';\n"],"mappings":";;AAgBA,SAAQA,MAAM,QAAO,wBAAwB;AAC7C,SACEC,SAAS,EACTC,QAAQ,EACRC,WAAW,EACXC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,QAAQ,QACH,yBAAyB;;AAGhC,SAAQC,kBAAkB,QAAO,gDAAgD;AACjF,SAAQC,eAAe,EAAEC,kBAAkB,QAAO,6CAA6C;AAC/F,SAAQC,mBAAmB,QAAO,8CAA8C;;AAGhF,SAAQC,SAAS,QAAO,+BAA+B;;AAGvD,SACEC,aAAa,EACbC,gBAAgB,EAChBC,uBAAuB,EACvBC,sBAAsB,EACtBC,mBAAmB,QACd,uCAAuC;AAC9C,SAAQC,WAAW,EAAEC,WAAW,EAAEC,eAAe,QAAO,sCAAsC;AAC9F,SACEC,+BAA+B,EAC/BC,0BAA0B,QACrB,sCAAsC;AAC7C,SACEC,wBAAwB,EACxBC,oBAAoB,EACpBC,oBAAoB,QACf,iCAAiC;AACxC,SAAQC,kBAAkB,EAAEC,cAAc,QAAO,yCAAyC;;AAG1F,SACEC,uBAAuB,EACvBC,uBAAuB,EACvBC,gBAAgB,EAChBC,wBAAwB,QACnB,gCAAgC;AACvC,SAAQC,OAAO,EAAEC,4BAA4B,QAAO,iCAAiC;;AAGrF,SAAQC,OAAO,IAAIC,gBAAgB,QAAO,uCAAuC;;AAGjF,SAAQC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAO,+BAA+B;AACvF,SAAQC,UAAU,IAAIC,WAAW,QAAO,+BAA+B;;AAGvE,SAAQC,UAAU,QAAO,eAAe;;AAOxC,OAAO,KAAKC,IAAI,MAAM,uBAAuB;AAC7C,SAAQA,IAAI;;AAGZ,SAAQC,QAAQ,EAAEC,QAAQ,EAAEC,mBAAmB,QAAO,iCAAiC;;AAKvF,SAAQC,UAAU,EAAEC,UAAU,QAAO,iBAAiB;;AAGtD,OAAO,KAAKC,EAAE,MAAM,eAAe;AACnC,SAAQA,EAAE;;AAGV,SAAQd,OAAO,IAAIe,eAAe,QAAO,mCAAmC"}
@@ -1,5 +1,5 @@
1
1
 
2
- const VERSION = typeof "3.3.0-alpha.10" !== 'undefined' ? "3.3.0-alpha.10" : 'latest';
2
+ const VERSION = typeof "3.3.0-alpha.12" !== 'undefined' ? "3.3.0-alpha.12" : 'latest';
3
3
 
4
4
  export const JSONLoader = {
5
5
  name: 'JSON',
@@ -1,7 +1,7 @@
1
1
 
2
2
  import fs from 'fs';
3
3
  import { toArrayBuffer } from './buffer';
4
- import { promisify } from './util';
4
+ import { promisify1, promisify2 } from './util';
5
5
  export let readdir;
6
6
  export let stat;
7
7
 
@@ -17,18 +17,18 @@ export let fstat;
17
17
  export let isSupported = Boolean(fs);
18
18
 
19
19
  try {
20
- readdir = promisify(fs.readdir);
21
- stat = promisify(fs.stat);
20
+ readdir = promisify1(fs.readdir);
21
+ stat = promisify1(fs.stat);
22
22
 
23
- readFile = promisify(fs.readFile);
23
+ readFile = promisify1(fs.readFile);
24
24
  readFileSync = fs.readFileSync;
25
- writeFile = promisify(fs.writeFile);
25
+ writeFile = promisify2(fs.writeFile);
26
26
  writeFileSync = fs.writeFileSync;
27
27
 
28
- open = promisify(fs.open);
29
- close = promisify(fs.close);
30
- read = promisify(fs.read);
31
- fstat = promisify(fs.fstat);
28
+ open = promisify1(fs.open);
29
+ close = promisify1(fs.close);
30
+ read = promisify1(fs.read);
31
+ fstat = promisify1(fs.fstat);
32
32
  isSupported = Boolean(fs);
33
33
  } catch {
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","names":["fs","toArrayBuffer","promisify","readdir","stat","readFile","readFileSync","writeFile","writeFileSync","open","close","read","fstat","isSupported","Boolean","_readToArrayBuffer","fd","start","length","buffer","Buffer","alloc","bytesRead","Error"],"sources":["../../../../src/lib/node/fs.ts"],"sourcesContent":["// fs wrapper (promisified fs + avoids bundling fs in browsers)\nimport fs from 'fs';\nimport {toArrayBuffer} from './buffer';\nimport {promisify} from './util';\n\nexport type {Stats} from 'fs';\n\nexport let readdir;\n/** Wrapper for Node.js fs method */\nexport let stat;\n\n/** Wrapper for Node.js fs method */\nexport let readFile;\n/** Wrapper for Node.js fs method */\nexport let readFileSync;\n/** Wrapper for Node.js fs method */\nexport let writeFile;\n/** Wrapper for Node.js fs method */\nexport let writeFileSync;\n\n// file descriptors\n\n/** Wrapper for Node.js fs method */\nexport let open;\n/** Wrapper for Node.js fs method */\nexport let close;\n/** Wrapper for Node.js fs method */\nexport let read;\n/** Wrapper for Node.js fs method */\nexport let fstat;\n\nexport let isSupported = Boolean(fs);\n\n// paths\n\ntry {\n /** Wrapper for Node.js fs method */\n readdir = promisify(fs.readdir);\n /** Wrapper for Node.js fs method */\n stat = promisify(fs.stat);\n\n /** Wrapper for Node.js fs method */\n readFile = promisify(fs.readFile);\n /** Wrapper for Node.js fs method */\n readFileSync = fs.readFileSync;\n /** Wrapper for Node.js fs method */\n writeFile = promisify(fs.writeFile);\n /** Wrapper for Node.js fs method */\n writeFileSync = fs.writeFileSync;\n\n // file descriptors\n\n /** Wrapper for Node.js fs method */\n open = promisify(fs.open);\n /** Wrapper for Node.js fs method */\n close = promisify(fs.close);\n /** Wrapper for Node.js fs method */\n read = promisify(fs.read);\n /** Wrapper for Node.js fs method */\n fstat = promisify(fs.fstat);\n\n isSupported = Boolean(fs);\n} catch {\n // ignore\n}\n\nexport async function _readToArrayBuffer(fd: number, start: number, length: number) {\n const buffer = Buffer.alloc(length);\n const {bytesRead} = await read(fd, buffer, 0, length, start);\n if (bytesRead !== length) {\n throw new Error('fs.read failed');\n }\n return toArrayBuffer(buffer);\n}\n"],"mappings":";AACA,OAAOA,EAAE,MAAM,IAAI;AACnB,SAAQC,aAAa,QAAO,UAAU;AACtC,SAAQC,SAAS,QAAO,QAAQ;AAIhC,OAAO,IAAIC,OAAO;AAElB,OAAO,IAAIC,IAAI;;AAGf,OAAO,IAAIC,QAAQ;AAEnB,OAAO,IAAIC,YAAY;AAEvB,OAAO,IAAIC,SAAS;AAEpB,OAAO,IAAIC,aAAa;;AAKxB,OAAO,IAAIC,IAAI;AAEf,OAAO,IAAIC,KAAK;AAEhB,OAAO,IAAIC,IAAI;AAEf,OAAO,IAAIC,KAAK;AAEhB,OAAO,IAAIC,WAAW,GAAGC,OAAO,CAACd,EAAE,CAAC;;AAIpC,IAAI;EAEFG,OAAO,GAAGD,SAAS,CAACF,EAAE,CAACG,OAAO,CAAC;EAE/BC,IAAI,GAAGF,SAAS,CAACF,EAAE,CAACI,IAAI,CAAC;;EAGzBC,QAAQ,GAAGH,SAAS,CAACF,EAAE,CAACK,QAAQ,CAAC;EAEjCC,YAAY,GAAGN,EAAE,CAACM,YAAY;EAE9BC,SAAS,GAAGL,SAAS,CAACF,EAAE,CAACO,SAAS,CAAC;EAEnCC,aAAa,GAAGR,EAAE,CAACQ,aAAa;;EAKhCC,IAAI,GAAGP,SAAS,CAACF,EAAE,CAACS,IAAI,CAAC;EAEzBC,KAAK,GAAGR,SAAS,CAACF,EAAE,CAACU,KAAK,CAAC;EAE3BC,IAAI,GAAGT,SAAS,CAACF,EAAE,CAACW,IAAI,CAAC;EAEzBC,KAAK,GAAGV,SAAS,CAACF,EAAE,CAACY,KAAK,CAAC;EAE3BC,WAAW,GAAGC,OAAO,CAACd,EAAE,CAAC;AAC3B,CAAC,CAAC,MAAM;AAER;AAEA,OAAO,eAAee,kBAAkB,CAACC,EAAU,EAAEC,KAAa,EAAEC,MAAc,EAAE;EAClF,MAAMC,MAAM,GAAGC,MAAM,CAACC,KAAK,CAACH,MAAM,CAAC;EACnC,MAAM;IAACI;EAAS,CAAC,GAAG,MAAMX,IAAI,CAACK,EAAE,EAAEG,MAAM,EAAE,CAAC,EAAED,MAAM,EAAED,KAAK,CAAC;EAC5D,IAAIK,SAAS,KAAKJ,MAAM,EAAE;IACxB,MAAM,IAAIK,KAAK,CAAC,gBAAgB,CAAC;EACnC;EACA,OAAOtB,aAAa,CAACkB,MAAM,CAAC;AAC9B"}
1
+ {"version":3,"file":"fs.js","names":["fs","toArrayBuffer","promisify1","promisify2","readdir","stat","readFile","readFileSync","writeFile","writeFileSync","open","close","read","fstat","isSupported","Boolean","_readToArrayBuffer","fd","start","length","buffer","Buffer","alloc","bytesRead","Error"],"sources":["../../../../src/lib/node/fs.ts"],"sourcesContent":["// fs wrapper (promisified fs + avoids bundling fs in browsers)\nimport fs from 'fs';\nimport {toArrayBuffer} from './buffer';\nimport {promisify1, promisify2} from './util';\n\nexport type {Stats} from 'fs';\n\nexport let readdir;\n/** Wrapper for Node.js fs method */\nexport let stat;\n\n/** Wrapper for Node.js fs method */\nexport let readFile;\n/** Wrapper for Node.js fs method */\nexport let readFileSync;\n/** Wrapper for Node.js fs method */\nexport let writeFile;\n/** Wrapper for Node.js fs method */\nexport let writeFileSync;\n\n// file descriptors\n\n/** Wrapper for Node.js fs method */\nexport let open;\n/** Wrapper for Node.js fs method */\nexport let close;\n/** Wrapper for Node.js fs method */\nexport let read;\n/** Wrapper for Node.js fs method */\nexport let fstat;\n\nexport let isSupported = Boolean(fs);\n\n// paths\n\ntry {\n /** Wrapper for Node.js fs method */\n readdir = promisify1(fs.readdir);\n /** Wrapper for Node.js fs method */\n stat = promisify1(fs.stat);\n\n /** Wrapper for Node.js fs method */\n readFile = promisify1(fs.readFile);\n /** Wrapper for Node.js fs method */\n readFileSync = fs.readFileSync;\n /** Wrapper for Node.js fs method */\n writeFile = promisify2(fs.writeFile);\n /** Wrapper for Node.js fs method */\n writeFileSync = fs.writeFileSync;\n\n // file descriptors\n\n /** Wrapper for Node.js fs method */\n open = promisify1(fs.open);\n /** Wrapper for Node.js fs method */\n close = promisify1(fs.close);\n /** Wrapper for Node.js fs method */\n read = promisify1(fs.read);\n /** Wrapper for Node.js fs method */\n fstat = promisify1(fs.fstat);\n\n isSupported = Boolean(fs);\n} catch {\n // ignore\n}\n\nexport async function _readToArrayBuffer(fd: number, start: number, length: number) {\n const buffer = Buffer.alloc(length);\n const {bytesRead} = await read(fd, buffer, 0, length, start);\n if (bytesRead !== length) {\n throw new Error('fs.read failed');\n }\n return toArrayBuffer(buffer);\n}\n"],"mappings":";AACA,OAAOA,EAAE,MAAM,IAAI;AACnB,SAAQC,aAAa,QAAO,UAAU;AACtC,SAAQC,UAAU,EAAEC,UAAU,QAAO,QAAQ;AAI7C,OAAO,IAAIC,OAAO;AAElB,OAAO,IAAIC,IAAI;;AAGf,OAAO,IAAIC,QAAQ;AAEnB,OAAO,IAAIC,YAAY;AAEvB,OAAO,IAAIC,SAAS;AAEpB,OAAO,IAAIC,aAAa;;AAKxB,OAAO,IAAIC,IAAI;AAEf,OAAO,IAAIC,KAAK;AAEhB,OAAO,IAAIC,IAAI;AAEf,OAAO,IAAIC,KAAK;AAEhB,OAAO,IAAIC,WAAW,GAAGC,OAAO,CAACf,EAAE,CAAC;;AAIpC,IAAI;EAEFI,OAAO,GAAGF,UAAU,CAACF,EAAE,CAACI,OAAO,CAAC;EAEhCC,IAAI,GAAGH,UAAU,CAACF,EAAE,CAACK,IAAI,CAAC;;EAG1BC,QAAQ,GAAGJ,UAAU,CAACF,EAAE,CAACM,QAAQ,CAAC;EAElCC,YAAY,GAAGP,EAAE,CAACO,YAAY;EAE9BC,SAAS,GAAGL,UAAU,CAACH,EAAE,CAACQ,SAAS,CAAC;EAEpCC,aAAa,GAAGT,EAAE,CAACS,aAAa;;EAKhCC,IAAI,GAAGR,UAAU,CAACF,EAAE,CAACU,IAAI,CAAC;EAE1BC,KAAK,GAAGT,UAAU,CAACF,EAAE,CAACW,KAAK,CAAC;EAE5BC,IAAI,GAAGV,UAAU,CAACF,EAAE,CAACY,IAAI,CAAC;EAE1BC,KAAK,GAAGX,UAAU,CAACF,EAAE,CAACa,KAAK,CAAC;EAE5BC,WAAW,GAAGC,OAAO,CAACf,EAAE,CAAC;AAC3B,CAAC,CAAC,MAAM;AAER;AAEA,OAAO,eAAegB,kBAAkB,CAACC,EAAU,EAAEC,KAAa,EAAEC,MAAc,EAAE;EAClF,MAAMC,MAAM,GAAGC,MAAM,CAACC,KAAK,CAACH,MAAM,CAAC;EACnC,MAAM;IAACI;EAAS,CAAC,GAAG,MAAMX,IAAI,CAACK,EAAE,EAAEG,MAAM,EAAE,CAAC,EAAED,MAAM,EAAED,KAAK,CAAC;EAC5D,IAAIK,SAAS,KAAKJ,MAAM,EAAE;IACxB,MAAM,IAAIK,KAAK,CAAC,gBAAgB,CAAC;EACnC;EACA,OAAOvB,aAAa,CAACmB,MAAM,CAAC;AAC9B"}
@@ -1,4 +1,17 @@
1
- import * as util from 'util';
2
1
 
3
- export const promisify = util.promisify;
2
+
3
+ export function promisify1(fn) {
4
+ return args => new Promise(resolve => {
5
+ fn(args, callbackArgs => {
6
+ resolve(callbackArgs);
7
+ });
8
+ });
9
+ }
10
+ export function promisify2(fn) {
11
+ return (arg1, arg2) => new Promise(resolve => {
12
+ fn(arg1, arg2, callbackArgs => {
13
+ resolve(callbackArgs);
14
+ });
15
+ });
16
+ }
4
17
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","names":["util","promisify"],"sources":["../../../../src/lib/node/util.ts"],"sourcesContent":["import * as util from 'util';\n\n/** Wrapper for Node.js promisify */\nexport const promisify = util.promisify;\n"],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,MAAM;;AAG5B,OAAO,MAAMC,SAAS,GAAGD,IAAI,CAACC,SAAS"}
1
+ {"version":3,"file":"util.js","names":["promisify1","fn","args","Promise","resolve","callbackArgs","promisify2","arg1","arg2"],"sources":["../../../../src/lib/node/util.ts"],"sourcesContent":["// @loaders.gl, MIT license\n\n/** Wrapper for Node.js promisify */\ntype Callback<A> = (args: A) => void;\n\n/**\n * Typesafe promisify implementation\n * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34\n * @param fn\n * @returns\n */\nexport function promisify1<T, A>(fn: (args: T, cb: Callback<A>) => void): (args: T) => Promise<A> {\n return (args: T) =>\n new Promise((resolve) => {\n fn(args, (callbackArgs) => {\n resolve(callbackArgs);\n });\n });\n}\n\nexport function promisify2<T1, T2, A>(\n fn: (arg1: T1, arg2: T2, cb: Callback<A>) => void\n): (arg1: T1, arg2: T2) => Promise<A> {\n return (arg1: T1, arg2: T2) =>\n new Promise((resolve) => {\n fn(arg1, arg2, (callbackArgs) => {\n resolve(callbackArgs);\n });\n });\n}\n"],"mappings":";;AAWA,OAAO,SAASA,UAAU,CAAOC,EAAsC,EAA2B;EAChG,OAAQC,IAAO,IACb,IAAIC,OAAO,CAAEC,OAAO,IAAK;IACvBH,EAAE,CAACC,IAAI,EAAGG,YAAY,IAAK;MACzBD,OAAO,CAACC,YAAY,CAAC;IACvB,CAAC,CAAC;EACJ,CAAC,CAAC;AACN;AAEA,OAAO,SAASC,UAAU,CACxBL,EAAiD,EACb;EACpC,OAAO,CAACM,IAAQ,EAAEC,IAAQ,KACxB,IAAIL,OAAO,CAAEC,OAAO,IAAK;IACvBH,EAAE,CAACM,IAAI,EAAEC,IAAI,EAAGH,YAAY,IAAK;MAC/BD,OAAO,CAACC,YAAY,CAAC;IACvB,CAAC,CAAC;EACJ,CAAC,CAAC;AACN"}
package/dist/index.d.ts CHANGED
@@ -19,9 +19,7 @@ export { JSONLoader } from './json-loader';
19
19
  import * as path from './lib/path-utils/path';
20
20
  export { path };
21
21
  export { isBuffer, toBuffer, bufferToArrayBuffer } from './lib/binary-utils/buffer-utils';
22
- import * as util from './lib/node/util';
23
- export { util };
24
- export { promisify } from './lib/node/util';
22
+ export { promisify1, promisify2 } from './lib/node/util';
25
23
  import * as fs from './lib/node/fs';
26
24
  export { fs };
27
25
  export { default as _NodeFileSystem } from './lib/filesystems/node-filesystem';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,kBAAkB,EAAC,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;AAGjF,OAAO,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,sCAAsC,CAAC;AAC/F,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAG3F,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,iCAAiC,CAAC;AAGtF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uCAAuC,CAAC;AAGlF,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAOzC,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAC,CAAC;AAGd,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAKxF,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,IAAI,EAAC,CAAC;AAEd,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAC,EAAE,EAAC,CAAC;AAGZ,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,kBAAkB,EAAC,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;AAGjF,OAAO,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAGxD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,sCAAsC,CAAC;AAC/F,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAG3F,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,OAAO,EAAE,4BAA4B,EAAC,MAAM,iCAAiC,CAAC;AAGtF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,uCAAuC,CAAC;AAGlF,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAGxE,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAOzC,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAC,CAAC;AAGd,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAKxF,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAGvD,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAC,EAAE,EAAC,CAAC;AAGZ,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,mCAAmC,CAAC"}
package/dist/index.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports._NodeFileSystem = exports.fs = exports.promisify = exports.util = exports.bufferToArrayBuffer = exports.toBuffer = exports.isBuffer = exports.path = exports.JSONLoader = exports._addAliases = exports.resolvePath = exports.getPathPrefix = exports.setPathPrefix = exports.RequestScheduler = exports.concatenateArrayBuffersAsync = exports.forEach = exports.makeNumberedLineIterator = exports.makeLineIterator = exports.makeTextDecoderIterator = exports.makeTextEncoderIterator = exports.getMagicString = exports.getFirstCharacters = exports.copyBinaryToDataView = exports.copyStringToDataView = exports.padStringToByteAlignment = exports.copyPaddedStringToDataView = exports.copyPaddedArrayBufferToDataView = exports.copyArrayBuffer = exports.copyToArray = exports.padToNBytes = exports.compareArrayBuffers = exports.concatenateTypedArrays = exports.concatenateArrayBuffers = exports.sliceArrayBuffer = exports.toArrayBuffer = exports.parseJSON = exports.canEncodeWithWorker = exports.canParseWithWorker = exports.parseWithWorker = exports.createLoaderWorker = exports.document = exports.global = exports.window = exports.self = exports.nodeVersion = exports.isWorker = exports.isBrowser = exports.assert = void 0;
29
+ exports._NodeFileSystem = exports.fs = exports.promisify2 = exports.promisify1 = exports.bufferToArrayBuffer = exports.toBuffer = exports.isBuffer = exports.path = exports.JSONLoader = exports._addAliases = exports.resolvePath = exports.getPathPrefix = exports.setPathPrefix = exports.RequestScheduler = exports.concatenateArrayBuffersAsync = exports.forEach = exports.makeNumberedLineIterator = exports.makeLineIterator = exports.makeTextDecoderIterator = exports.makeTextEncoderIterator = exports.getMagicString = exports.getFirstCharacters = exports.copyBinaryToDataView = exports.copyStringToDataView = exports.padStringToByteAlignment = exports.copyPaddedStringToDataView = exports.copyPaddedArrayBufferToDataView = exports.copyArrayBuffer = exports.copyToArray = exports.padToNBytes = exports.compareArrayBuffers = exports.concatenateTypedArrays = exports.concatenateArrayBuffers = exports.sliceArrayBuffer = exports.toArrayBuffer = exports.parseJSON = exports.canEncodeWithWorker = exports.canParseWithWorker = exports.parseWithWorker = exports.createLoaderWorker = exports.document = exports.global = exports.window = exports.self = exports.nodeVersion = exports.isWorker = exports.isBrowser = exports.assert = void 0;
30
30
  // GENERAL UTILS
31
31
  var assert_1 = require("./lib/env-utils/assert");
32
32
  Object.defineProperty(exports, "assert", { enumerable: true, get: function () { return assert_1.assert; } });
@@ -103,13 +103,11 @@ Object.defineProperty(exports, "isBuffer", { enumerable: true, get: function ()
103
103
  Object.defineProperty(exports, "toBuffer", { enumerable: true, get: function () { return buffer_utils_1.toBuffer; } });
104
104
  Object.defineProperty(exports, "bufferToArrayBuffer", { enumerable: true, get: function () { return buffer_utils_1.bufferToArrayBuffer; } });
105
105
  // Note.js wrappers (can be safely imported, but not used in browser)
106
- // Use instead of importing 'util'
107
- const util = __importStar(require("./lib/node/util"));
108
- exports.util = util;
109
- // TODO - remove
106
+ // Use instead of importing 'util' to avoid node dependencies
110
107
  var util_1 = require("./lib/node/util");
111
- Object.defineProperty(exports, "promisify", { enumerable: true, get: function () { return util_1.promisify; } });
112
- // Use instead of importing 'fs';`
108
+ Object.defineProperty(exports, "promisify1", { enumerable: true, get: function () { return util_1.promisify1; } });
109
+ Object.defineProperty(exports, "promisify2", { enumerable: true, get: function () { return util_1.promisify2; } });
110
+ // Use instead of importing 'fs' to avoid node dependencies`
113
111
  const fs = __importStar(require("./lib/node/fs"));
114
112
  exports.fs = fs;
115
113
  // EXPERIMENTAL
@@ -12,26 +12,26 @@ exports.isSupported = Boolean(fs_1.default);
12
12
  // paths
13
13
  try {
14
14
  /** Wrapper for Node.js fs method */
15
- exports.readdir = (0, util_1.promisify)(fs_1.default.readdir);
15
+ exports.readdir = (0, util_1.promisify1)(fs_1.default.readdir);
16
16
  /** Wrapper for Node.js fs method */
17
- exports.stat = (0, util_1.promisify)(fs_1.default.stat);
17
+ exports.stat = (0, util_1.promisify1)(fs_1.default.stat);
18
18
  /** Wrapper for Node.js fs method */
19
- exports.readFile = (0, util_1.promisify)(fs_1.default.readFile);
19
+ exports.readFile = (0, util_1.promisify1)(fs_1.default.readFile);
20
20
  /** Wrapper for Node.js fs method */
21
21
  exports.readFileSync = fs_1.default.readFileSync;
22
22
  /** Wrapper for Node.js fs method */
23
- exports.writeFile = (0, util_1.promisify)(fs_1.default.writeFile);
23
+ exports.writeFile = (0, util_1.promisify2)(fs_1.default.writeFile);
24
24
  /** Wrapper for Node.js fs method */
25
25
  exports.writeFileSync = fs_1.default.writeFileSync;
26
26
  // file descriptors
27
27
  /** Wrapper for Node.js fs method */
28
- exports.open = (0, util_1.promisify)(fs_1.default.open);
28
+ exports.open = (0, util_1.promisify1)(fs_1.default.open);
29
29
  /** Wrapper for Node.js fs method */
30
- exports.close = (0, util_1.promisify)(fs_1.default.close);
30
+ exports.close = (0, util_1.promisify1)(fs_1.default.close);
31
31
  /** Wrapper for Node.js fs method */
32
- exports.read = (0, util_1.promisify)(fs_1.default.read);
32
+ exports.read = (0, util_1.promisify1)(fs_1.default.read);
33
33
  /** Wrapper for Node.js fs method */
34
- exports.fstat = (0, util_1.promisify)(fs_1.default.fstat);
34
+ exports.fstat = (0, util_1.promisify1)(fs_1.default.fstat);
35
35
  exports.isSupported = Boolean(fs_1.default);
36
36
  }
37
37
  catch {
@@ -1,5 +1,12 @@
1
- /// <reference types="node" />
2
- import * as util from 'util';
3
1
  /** Wrapper for Node.js promisify */
4
- export declare const promisify: typeof util.promisify;
2
+ type Callback<A> = (args: A) => void;
3
+ /**
4
+ * Typesafe promisify implementation
5
+ * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34
6
+ * @param fn
7
+ * @returns
8
+ */
9
+ export declare function promisify1<T, A>(fn: (args: T, cb: Callback<A>) => void): (args: T) => Promise<A>;
10
+ export declare function promisify2<T1, T2, A>(fn: (arg1: T1, arg2: T2, cb: Callback<A>) => void): (arg1: T1, arg2: T2) => Promise<A>;
11
+ export {};
5
12
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/lib/node/util.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,oCAAoC;AACpC,eAAO,MAAM,SAAS,uBAAiB,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/lib/node/util.ts"],"names":[],"mappings":"AAEA,oCAAoC;AACpC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AAErC;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAOhG;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAClC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAChD,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAOpC"}
@@ -1,29 +1,26 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
2
+ // @loaders.gl, MIT license
25
3
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.promisify = void 0;
27
- const util = __importStar(require("util"));
28
- /** Wrapper for Node.js promisify */
29
- exports.promisify = util.promisify;
4
+ exports.promisify2 = exports.promisify1 = void 0;
5
+ /**
6
+ * Typesafe promisify implementation
7
+ * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34
8
+ * @param fn
9
+ * @returns
10
+ */
11
+ function promisify1(fn) {
12
+ return (args) => new Promise((resolve) => {
13
+ fn(args, (callbackArgs) => {
14
+ resolve(callbackArgs);
15
+ });
16
+ });
17
+ }
18
+ exports.promisify1 = promisify1;
19
+ function promisify2(fn) {
20
+ return (arg1, arg2) => new Promise((resolve) => {
21
+ fn(arg1, arg2, (callbackArgs) => {
22
+ resolve(callbackArgs);
23
+ });
24
+ });
25
+ }
26
+ exports.promisify2 = promisify2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/loader-utils",
3
- "version": "3.3.0-alpha.10",
3
+ "version": "3.3.0-alpha.12",
4
4
  "description": "Framework-independent loaders for 3D graphics formats",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -45,8 +45,8 @@
45
45
  "scripts": {},
46
46
  "dependencies": {
47
47
  "@babel/runtime": "^7.3.1",
48
- "@loaders.gl/worker-utils": "3.3.0-alpha.10",
48
+ "@loaders.gl/worker-utils": "3.3.0-alpha.12",
49
49
  "@probe.gl/stats": "^3.5.0"
50
50
  },
51
- "gitHead": "53bc8d3f18fbc3445a00f8509038479119895c78"
51
+ "gitHead": "e807cde8f2fcb3503fa01ae3ac6b148ff5326649"
52
52
  }
package/src/index.ts CHANGED
@@ -85,13 +85,10 @@ export {isBuffer, toBuffer, bufferToArrayBuffer} from './lib/binary-utils/buffer
85
85
 
86
86
  // Note.js wrappers (can be safely imported, but not used in browser)
87
87
 
88
- // Use instead of importing 'util'
89
- import * as util from './lib/node/util';
90
- export {util};
91
- // TODO - remove
92
- export {promisify} from './lib/node/util';
88
+ // Use instead of importing 'util' to avoid node dependencies
89
+ export {promisify1, promisify2} from './lib/node/util';
93
90
 
94
- // Use instead of importing 'fs';`
91
+ // Use instead of importing 'fs' to avoid node dependencies`
95
92
  import * as fs from './lib/node/fs';
96
93
  export {fs};
97
94
 
@@ -1,7 +1,7 @@
1
1
  // fs wrapper (promisified fs + avoids bundling fs in browsers)
2
2
  import fs from 'fs';
3
3
  import {toArrayBuffer} from './buffer';
4
- import {promisify} from './util';
4
+ import {promisify1, promisify2} from './util';
5
5
 
6
6
  export type {Stats} from 'fs';
7
7
 
@@ -35,29 +35,29 @@ export let isSupported = Boolean(fs);
35
35
 
36
36
  try {
37
37
  /** Wrapper for Node.js fs method */
38
- readdir = promisify(fs.readdir);
38
+ readdir = promisify1(fs.readdir);
39
39
  /** Wrapper for Node.js fs method */
40
- stat = promisify(fs.stat);
40
+ stat = promisify1(fs.stat);
41
41
 
42
42
  /** Wrapper for Node.js fs method */
43
- readFile = promisify(fs.readFile);
43
+ readFile = promisify1(fs.readFile);
44
44
  /** Wrapper for Node.js fs method */
45
45
  readFileSync = fs.readFileSync;
46
46
  /** Wrapper for Node.js fs method */
47
- writeFile = promisify(fs.writeFile);
47
+ writeFile = promisify2(fs.writeFile);
48
48
  /** Wrapper for Node.js fs method */
49
49
  writeFileSync = fs.writeFileSync;
50
50
 
51
51
  // file descriptors
52
52
 
53
53
  /** Wrapper for Node.js fs method */
54
- open = promisify(fs.open);
54
+ open = promisify1(fs.open);
55
55
  /** Wrapper for Node.js fs method */
56
- close = promisify(fs.close);
56
+ close = promisify1(fs.close);
57
57
  /** Wrapper for Node.js fs method */
58
- read = promisify(fs.read);
58
+ read = promisify1(fs.read);
59
59
  /** Wrapper for Node.js fs method */
60
- fstat = promisify(fs.fstat);
60
+ fstat = promisify1(fs.fstat);
61
61
 
62
62
  isSupported = Boolean(fs);
63
63
  } catch {
@@ -1,4 +1,30 @@
1
- import * as util from 'util';
1
+ // @loaders.gl, MIT license
2
2
 
3
3
  /** Wrapper for Node.js promisify */
4
- export const promisify = util.promisify;
4
+ type Callback<A> = (args: A) => void;
5
+
6
+ /**
7
+ * Typesafe promisify implementation
8
+ * @link https://dev.to/_gdelgado/implement-a-type-safe-version-of-node-s-promisify-in-7-lines-of-code-in-typescript-2j34
9
+ * @param fn
10
+ * @returns
11
+ */
12
+ export function promisify1<T, A>(fn: (args: T, cb: Callback<A>) => void): (args: T) => Promise<A> {
13
+ return (args: T) =>
14
+ new Promise((resolve) => {
15
+ fn(args, (callbackArgs) => {
16
+ resolve(callbackArgs);
17
+ });
18
+ });
19
+ }
20
+
21
+ export function promisify2<T1, T2, A>(
22
+ fn: (arg1: T1, arg2: T2, cb: Callback<A>) => void
23
+ ): (arg1: T1, arg2: T2) => Promise<A> {
24
+ return (arg1: T1, arg2: T2) =>
25
+ new Promise((resolve) => {
26
+ fn(arg1, arg2, (callbackArgs) => {
27
+ resolve(callbackArgs);
28
+ });
29
+ });
30
+ }