Socket
Socket
Sign inDemoInstall

@loaders.gl/loader-utils

Package Overview
Dependencies
Maintainers
9
Versions
311
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@loaders.gl/loader-utils - npm Package Compare versions

Comparing version 1.3.0-beta.1 to 1.3.0-beta.2

192

dist/es5/worker-utils/create-worker.js

@@ -10,2 +10,6 @@ "use strict";

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _getTransferList = _interopRequireDefault(require("./get-transfer-list"));

@@ -18,58 +22,154 @@

self.onmessage = function (evt) {
try {
if (!isKnownMessage(evt, loader.name)) {
return;
}
self.onmessage = function () {
var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(evt) {
var data, arraybuffer, _data$byteOffset, byteOffset, _data$byteLength, byteLength, _data$options, options, result, transferList;
var _evt$data = evt.data,
arraybuffer = _evt$data.arraybuffer,
_evt$data$byteOffset = _evt$data.byteOffset,
byteOffset = _evt$data$byteOffset === void 0 ? 0 : _evt$data$byteOffset,
_evt$data$byteLength = _evt$data.byteLength,
byteLength = _evt$data$byteLength === void 0 ? 0 : _evt$data$byteLength,
_evt$data$options = _evt$data.options,
options = _evt$data$options === void 0 ? {} : _evt$data$options;
var result = parseData(loader, arraybuffer, byteOffset, byteLength, options);
var transferList = (0, _getTransferList["default"])(result);
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
data = evt.data;
_context.prev = 1;
if (isKnownMessage(data, loader.name)) {
_context.next = 4;
break;
}
return _context.abrupt("return");
case 4:
arraybuffer = data.arraybuffer, _data$byteOffset = data.byteOffset, byteOffset = _data$byteOffset === void 0 ? 0 : _data$byteOffset, _data$byteLength = data.byteLength, byteLength = _data$byteLength === void 0 ? 0 : _data$byteLength, _data$options = data.options, options = _data$options === void 0 ? {} : _data$options;
_context.next = 7;
return parseData(loader, arraybuffer, byteOffset, byteLength, options);
case 7:
result = _context.sent;
transferList = (0, _getTransferList["default"])(result);
self.postMessage({
type: 'done',
result: result
}, transferList);
_context.next = 15;
break;
case 12:
_context.prev = 12;
_context.t0 = _context["catch"](1);
self.postMessage({
type: 'error',
message: _context.t0.message
});
case 15:
case "end":
return _context.stop();
}
}
}, _callee, null, [[1, 12]]);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}();
var requestId = 0;
self.parse = function (arraybuffer) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var url = arguments.length > 2 ? arguments[2] : undefined;
return new Promise(function (resolve, reject) {
var id = requestId++;
var onMessage = function onMessage(_ref2) {
var data = _ref2.data;
if (!data || data.id !== id) {
return;
}
switch (data.type) {
case 'process-done':
self.removeEventListener('message', onMessage);
resolve(data.result);
break;
case 'process-error':
self.removeEventListener('message', onMessage);
reject(data.message);
break;
default:
}
};
self.addEventListener('message', onMessage);
self.postMessage({
type: 'done',
result: result
}, transferList);
} catch (error) {
self.postMessage({
type: 'error',
message: error.message
});
}
type: 'process',
id: id,
arraybuffer: arraybuffer,
options: options,
url: url
}, [arraybuffer]);
});
};
}
function parseData(loader, arraybuffer, byteOffset, byteLength, options) {
var data;
var parser;
function parseData(_x2, _x3, _x4, _x5, _x6) {
return _parseData.apply(this, arguments);
}
if (loader.parseSync) {
data = arraybuffer;
parser = loader.parseSync;
} else if (loader.parseTextSync) {
var textDecoder = new TextDecoder();
data = textDecoder.decode(arraybuffer);
parser = loader.parseTextSync;
} else {
throw new Error("Could not load data with ".concat(loader.name, " loader"));
}
function _parseData() {
_parseData = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(loader, arraybuffer, byteOffset, byteLength, options) {
var data, parser, textDecoder;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
if (!(loader.parseSync || loader.parse)) {
_context2.next = 5;
break;
}
return parser(data, options);
}
data = arraybuffer;
parser = loader.parseSync || loader.parse;
_context2.next = 12;
break;
function isKnownMessage(evt, name) {
switch (evt.data && evt.data.source) {
case 'loaders.gl':
return true;
case 5:
if (!loader.parseTextSync) {
_context2.next = 11;
break;
}
default:
return false;
}
textDecoder = new TextDecoder();
data = textDecoder.decode(arraybuffer);
parser = loader.parseTextSync;
_context2.next = 12;
break;
case 11:
throw new Error("Could not load data with ".concat(loader.name, " loader"));
case 12:
_context2.next = 14;
return parser(data, options);
case 14:
return _context2.abrupt("return", _context2.sent);
case 15:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return _parseData.apply(this, arguments);
}
function isKnownMessage(data, name) {
return data && data.type === 'process' && data.source === 'loaders.gl';
}
//# sourceMappingURL=create-worker.js.map
export function getMeshSize(attributes) {
var size = 0;
let size = 0;
for (var attributeName in attributes) {
var attribute = attributes[attributeName];
for (const attributeName in attributes) {
const attribute = attributes[attributeName];

@@ -7,0 +7,0 @@ if (ArrayBuffer.isView(attribute)) {

import { padTo4Bytes } from './memory-copy-utils';
export function copyPaddedArrayBufferToDataView(dataView, byteOffset, sourceBuffer, padding) {
var paddedLength = padTo4Bytes(sourceBuffer.byteLength);
var padLength = paddedLength - sourceBuffer.byteLength;
const paddedLength = padTo4Bytes(sourceBuffer.byteLength);
const padLength = paddedLength - sourceBuffer.byteLength;
if (dataView) {
var targetArray = new Uint8Array(dataView.buffer, dataView.byteOffset + byteOffset, sourceBuffer.byteLength);
var sourceArray = new Uint8Array(sourceBuffer);
const targetArray = new Uint8Array(dataView.buffer, dataView.byteOffset + byteOffset, sourceBuffer.byteLength);
const sourceArray = new Uint8Array(sourceBuffer);
targetArray.set(sourceArray);
for (var i = 0; i < padLength; ++i) {
for (let i = 0; i < padLength; ++i) {
dataView.setUint8(byteOffset + sourceBuffer.byteLength + i, 0x20);

@@ -20,4 +20,4 @@ }

export function copyPaddedStringToDataView(dataView, byteOffset, string, padding) {
var textEncoder = new TextEncoder();
var stringBuffer = textEncoder.encode(string);
const textEncoder = new TextEncoder();
const stringBuffer = textEncoder.encode(string);
byteOffset = copyPaddedArrayBufferToDataView(dataView, byteOffset, stringBuffer, padding);

@@ -24,0 +24,0 @@ return byteOffset;

export function padStringToByteAlignment(string, byteAlignment) {
var length = string.length;
var paddedLength = Math.ceil(length / byteAlignment) * byteAlignment;
var padding = paddedLength - length;
var whitespace = '';
const length = string.length;
const paddedLength = Math.ceil(length / byteAlignment) * byteAlignment;
const padding = paddedLength - length;
let whitespace = '';
for (var i = 0; i < padding; ++i) {
for (let i = 0; i < padding; ++i) {
whitespace += ' ';

@@ -15,3 +15,3 @@ }

if (dataView) {
for (var i = 0; i < byteLength; i++) {
for (let i = 0; i < byteLength; i++) {
dataView.setUint8(byteOffset + i, string.charCodeAt(i));

@@ -25,3 +25,3 @@ }

if (dataView) {
for (var i = 0; i < byteLength; i++) {
for (let i = 0; i < byteLength; i++) {
dataView.setUint8(byteOffset + i, binary[i]);

@@ -28,0 +28,0 @@ byteOffset++;

export function padTo4Bytes(byteLength) {
return byteLength + 3 & ~3;
}
export function copyArrayBuffer(targetBuffer, sourceBuffer, byteOffset) {
var byteLength = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : sourceBuffer.byteLength;
var targetArray = new Uint8Array(targetBuffer, byteOffset, byteLength);
var sourceArray = new Uint8Array(sourceBuffer);
export function copyArrayBuffer(targetBuffer, sourceBuffer, byteOffset, byteLength = sourceBuffer.byteLength) {
const targetArray = new Uint8Array(targetBuffer, byteOffset, byteLength);
const sourceArray = new Uint8Array(sourceBuffer);
targetArray.set(sourceArray);

@@ -12,3 +11,3 @@ return targetBuffer;

export function copyToArray(source, target, targetOffset) {
var sourceArray;
let sourceArray;

@@ -18,4 +17,4 @@ if (source instanceof ArrayBuffer) {

} else {
var srcByteOffset = source.byteOffset;
var srcByteLength = source.byteLength;
const srcByteOffset = source.byteOffset;
const srcByteLength = source.byteLength;
sourceArray = new Uint8Array(source.buffer, srcByteOffset, srcByteLength);

@@ -22,0 +21,0 @@ }

@@ -7,9 +7,13 @@ import getTransferList from './get-transfer-list';

self.onmessage = evt => {
self.onmessage = async evt => {
const {
data
} = evt;
try {
if (!isKnownMessage(evt, loader.name)) {
if (!isKnownMessage(data, loader.name)) {
return;
}
var {
const {
arraybuffer,

@@ -19,5 +23,5 @@ byteOffset = 0,

options = {}
} = evt.data;
var result = parseData(loader, arraybuffer, byteOffset, byteLength, options);
var transferList = getTransferList(result);
} = data;
const result = await parseData(loader, arraybuffer, byteOffset, byteLength, options);
const transferList = getTransferList(result);
self.postMessage({

@@ -34,13 +38,50 @@ type: 'done',

};
let requestId = 0;
self.parse = (arraybuffer, options = {}, url) => new Promise((resolve, reject) => {
const id = requestId++;
const onMessage = ({
data
}) => {
if (!data || data.id !== id) {
return;
}
switch (data.type) {
case 'process-done':
self.removeEventListener('message', onMessage);
resolve(data.result);
break;
case 'process-error':
self.removeEventListener('message', onMessage);
reject(data.message);
break;
default:
}
};
self.addEventListener('message', onMessage);
self.postMessage({
type: 'process',
id,
arraybuffer,
options,
url
}, [arraybuffer]);
});
}
function parseData(loader, arraybuffer, byteOffset, byteLength, options) {
var data;
var parser;
async function parseData(loader, arraybuffer, byteOffset, byteLength, options) {
let data;
let parser;
if (loader.parseSync) {
if (loader.parseSync || loader.parse) {
data = arraybuffer;
parser = loader.parseSync;
parser = loader.parseSync || loader.parse;
} else if (loader.parseTextSync) {
var textDecoder = new TextDecoder();
const textDecoder = new TextDecoder();
data = textDecoder.decode(arraybuffer);

@@ -52,14 +93,8 @@ parser = loader.parseTextSync;

return parser(data, options);
return await parser(data, options);
}
function isKnownMessage(evt, name) {
switch (evt.data && evt.data.source) {
case 'loaders.gl':
return true;
default:
return false;
}
function isKnownMessage(data, name) {
return data && data.type === 'process' && data.source === 'loaders.gl';
}
//# sourceMappingURL=create-worker.js.map

@@ -1,5 +0,3 @@

export default function getTransferList(object) {
var recursive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var transfers = arguments.length > 2 ? arguments[2] : undefined;
var transfersSet = transfers || new Set();
export default function getTransferList(object, recursive = true, transfers) {
const transfersSet = transfers || new Set();

@@ -11,3 +9,3 @@ if (!object) {} else if (object instanceof ArrayBuffer) {

} else if (recursive && typeof object === 'object') {
for (var key in object) {
for (const key in object) {
getTransferList(object[key], recursive, transfersSet);

@@ -14,0 +12,0 @@ }

@@ -0,1 +1,3 @@

import _regeneratorRuntime from "@babel/runtime/regenerator";
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import getTransferList from './get-transfer-list';

@@ -7,58 +9,154 @@ export default function createWorker(loader) {

self.onmessage = function (evt) {
try {
if (!isKnownMessage(evt, loader.name)) {
return;
}
self.onmessage = function () {
var _ref = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(evt) {
var data, arraybuffer, _data$byteOffset, byteOffset, _data$byteLength, byteLength, _data$options, options, result, transferList;
var _evt$data = evt.data,
arraybuffer = _evt$data.arraybuffer,
_evt$data$byteOffset = _evt$data.byteOffset,
byteOffset = _evt$data$byteOffset === void 0 ? 0 : _evt$data$byteOffset,
_evt$data$byteLength = _evt$data.byteLength,
byteLength = _evt$data$byteLength === void 0 ? 0 : _evt$data$byteLength,
_evt$data$options = _evt$data.options,
options = _evt$data$options === void 0 ? {} : _evt$data$options;
var result = parseData(loader, arraybuffer, byteOffset, byteLength, options);
var transferList = getTransferList(result);
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
data = evt.data;
_context.prev = 1;
if (isKnownMessage(data, loader.name)) {
_context.next = 4;
break;
}
return _context.abrupt("return");
case 4:
arraybuffer = data.arraybuffer, _data$byteOffset = data.byteOffset, byteOffset = _data$byteOffset === void 0 ? 0 : _data$byteOffset, _data$byteLength = data.byteLength, byteLength = _data$byteLength === void 0 ? 0 : _data$byteLength, _data$options = data.options, options = _data$options === void 0 ? {} : _data$options;
_context.next = 7;
return parseData(loader, arraybuffer, byteOffset, byteLength, options);
case 7:
result = _context.sent;
transferList = getTransferList(result);
self.postMessage({
type: 'done',
result: result
}, transferList);
_context.next = 15;
break;
case 12:
_context.prev = 12;
_context.t0 = _context["catch"](1);
self.postMessage({
type: 'error',
message: _context.t0.message
});
case 15:
case "end":
return _context.stop();
}
}
}, _callee, null, [[1, 12]]);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}();
var requestId = 0;
self.parse = function (arraybuffer) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var url = arguments.length > 2 ? arguments[2] : undefined;
return new Promise(function (resolve, reject) {
var id = requestId++;
var onMessage = function onMessage(_ref2) {
var data = _ref2.data;
if (!data || data.id !== id) {
return;
}
switch (data.type) {
case 'process-done':
self.removeEventListener('message', onMessage);
resolve(data.result);
break;
case 'process-error':
self.removeEventListener('message', onMessage);
reject(data.message);
break;
default:
}
};
self.addEventListener('message', onMessage);
self.postMessage({
type: 'done',
result: result
}, transferList);
} catch (error) {
self.postMessage({
type: 'error',
message: error.message
});
}
type: 'process',
id: id,
arraybuffer: arraybuffer,
options: options,
url: url
}, [arraybuffer]);
});
};
}
function parseData(loader, arraybuffer, byteOffset, byteLength, options) {
var data;
var parser;
function parseData(_x2, _x3, _x4, _x5, _x6) {
return _parseData.apply(this, arguments);
}
if (loader.parseSync) {
data = arraybuffer;
parser = loader.parseSync;
} else if (loader.parseTextSync) {
var textDecoder = new TextDecoder();
data = textDecoder.decode(arraybuffer);
parser = loader.parseTextSync;
} else {
throw new Error("Could not load data with ".concat(loader.name, " loader"));
}
function _parseData() {
_parseData = _asyncToGenerator(_regeneratorRuntime.mark(function _callee2(loader, arraybuffer, byteOffset, byteLength, options) {
var data, parser, textDecoder;
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
if (!(loader.parseSync || loader.parse)) {
_context2.next = 5;
break;
}
return parser(data, options);
}
data = arraybuffer;
parser = loader.parseSync || loader.parse;
_context2.next = 12;
break;
function isKnownMessage(evt, name) {
switch (evt.data && evt.data.source) {
case 'loaders.gl':
return true;
case 5:
if (!loader.parseTextSync) {
_context2.next = 11;
break;
}
default:
return false;
}
textDecoder = new TextDecoder();
data = textDecoder.decode(arraybuffer);
parser = loader.parseTextSync;
_context2.next = 12;
break;
case 11:
throw new Error("Could not load data with ".concat(loader.name, " loader"));
case 12:
_context2.next = 14;
return parser(data, options);
case 14:
return _context2.abrupt("return", _context2.sent);
case 15:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return _parseData.apply(this, arguments);
}
function isKnownMessage(data, name) {
return data && data.type === 'process' && data.source === 'loaders.gl';
}
//# sourceMappingURL=create-worker.js.map
{
"name": "@loaders.gl/loader-utils",
"version": "1.3.0-beta.1",
"version": "1.3.0-beta.2",
"description": "Framework-independent loaders for 3D graphics formats",

@@ -36,3 +36,3 @@ "license": "MIT",

},
"gitHead": "deabcc69303bc19eeadb1bb6cf9082ee94e74f3e"
"gitHead": "ea8078ed5fda7d06dfaae4aed02a46ca1c181bd3"
}

@@ -12,10 +12,13 @@ /* eslint-disable no-restricted-globals */

self.onmessage = evt => {
self.onmessage = async evt => {
const {data} = evt;
try {
if (!isKnownMessage(evt, loader.name)) {
if (!isKnownMessage(data, loader.name)) {
return;
}
const {arraybuffer, byteOffset = 0, byteLength = 0, options = {}} = evt.data;
const result = parseData(loader, arraybuffer, byteOffset, byteLength, options);
const {arraybuffer, byteOffset = 0, byteLength = 0, options = {}} = data;
const result = await parseData(loader, arraybuffer, byteOffset, byteLength, options);
const transferList = getTransferList(result);

@@ -27,2 +30,32 @@ self.postMessage({type: 'done', result}, transferList);

};
let requestId = 0;
self.parse = (arraybuffer, options = {}, url) =>
new Promise((resolve, reject) => {
const id = requestId++;
const onMessage = ({data}) => {
if (!data || data.id !== id) {
// not ours
return;
}
switch (data.type) {
case 'process-done':
self.removeEventListener('message', onMessage);
resolve(data.result);
break;
case 'process-error':
self.removeEventListener('message', onMessage);
reject(data.message);
break;
default:
// ignore
}
};
self.addEventListener('message', onMessage);
// Ask the main thread to decode data
self.postMessage({type: 'process', id, arraybuffer, options, url}, [arraybuffer]);
});
}

@@ -34,8 +67,8 @@

// TODO - Lack of appropriate parser functions can be detected when we create worker, no need to wait until parse
function parseData(loader, arraybuffer, byteOffset, byteLength, options) {
async function parseData(loader, arraybuffer, byteOffset, byteLength, options) {
let data;
let parser;
if (loader.parseSync) {
if (loader.parseSync || loader.parse) {
data = arraybuffer;
parser = loader.parseSync;
parser = loader.parseSync || loader.parse;
} else if (loader.parseTextSync) {

@@ -49,16 +82,8 @@ const textDecoder = new TextDecoder();

return parser(data, options);
return await parser(data, options);
}
// Filter out noise messages sent to workers
function isKnownMessage(evt, name) {
switch (evt.data && evt.data.source) {
case 'loaders.gl':
return true;
default:
// Uncomment to debug incoming messages
// checkMessage(evt, name)
return false;
}
function isKnownMessage(data, name) {
return data && data.type === 'process' && data.source === 'loaders.gl';
}

@@ -65,0 +90,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc