scratch-storage 1.3.4 → 2.0.0
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/.editorconfig +1 -1
- package/.gitattributes +1 -0
- package/dist/node/50604be620465cc30dd8.worker.js +1906 -0
- package/dist/node/50604be620465cc30dd8.worker.js.map +1 -0
- package/dist/node/scratch-storage.js +1743 -21
- package/dist/node/scratch-storage.js.map +1 -1
- package/dist/{node/4816ce2aa9bf12df8b86.worker.js → web/3770307661f114ec2389.worker.js} +5 -3
- package/dist/{node/4816ce2aa9bf12df8b86.worker.js.map → web/3770307661f114ec2389.worker.js.map} +1 -1
- package/dist/web/scratch-storage.js +36 -20
- package/dist/web/scratch-storage.js.map +1 -1
- package/dist/web/scratch-storage.min.js +36 -20
- package/dist/web/scratch-storage.min.js.map +1 -1
- package/package.json +15 -15
- package/renovate.json5 +7 -0
- package/src/BuiltinHelper.js +3 -3
- package/src/FetchTool.js +5 -2
- package/src/FetchWorkerTool.worker.js +5 -1
- package/src/ScratchStorage.js +4 -4
- package/src/WebHelper.js +15 -4
- package/test/integration/download-known-assets.js +1 -2
- package/test/unit/fetch-tool.js +53 -5
- package/webpack.config.js +7 -1
- package/dist/web/3325b91e8645157f8dc6.worker.js +0 -188
- package/dist/web/3325b91e8645157f8dc6.worker.js.map +0 -1
|
@@ -3790,7 +3790,7 @@ module.exports = g;
|
|
|
3790
3790
|
/***/ (function(module, exports, __webpack_require__) {
|
|
3791
3791
|
|
|
3792
3792
|
module.exports = function() {
|
|
3793
|
-
return __webpack_require__(/*! !./node_modules/worker-loader/dist/workers/InlineWorker.js */ "./node_modules/worker-loader/dist/workers/InlineWorker.js")("/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./node_modules/babel-loader/lib/index.js?!./src/FetchWorkerTool.worker.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/babel-loader/lib/index.js?!./src/FetchWorkerTool.worker.js\":\n/*!*******************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib??ref--4!./src/FetchWorkerTool.worker.js ***!\n \\*******************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/* eslint-env worker */\nvar jobsActive = 0;\nvar complete = [];\nvar intervalId = null;\n/**\n * Register a step function.\n *\n * Step checks if there are completed jobs and if there are sends them to the\n * parent. Then it checks the jobs count. If there are no further jobs, clear\n * the step.\n */\n\nvar registerStep = function registerStep() {\n intervalId = setInterval(function () {\n if (complete.length) {\n // Send our chunk of completed requests and instruct postMessage to\n // transfer the buffers instead of copying them.\n postMessage(complete.slice(), // Instruct postMessage that these buffers in the sent message\n // should use their Transferable trait. After the postMessage\n // call the \"buffers\" will still be in complete if you looked,\n // but they will all be length 0 as the data they reference has\n // been sent to the window. This lets us send a lot of data\n // without the normal postMessage behaviour of making a copy of\n // all of the data for the window.\n complete.map(function (response) {\n return response.buffer;\n }).filter(Boolean));\n complete.length = 0;\n }\n\n if (jobsActive === 0) {\n clearInterval(intervalId);\n intervalId = null;\n }\n }, 1);\n};\n/**\n * Receive a job from the parent and fetch the requested data.\n * @param {object} options.job A job id, url, and options descriptor to perform.\n */\n\n\nvar onMessage = function onMessage(_ref) {\n var job = _ref.data;\n\n if (jobsActive === 0 && !intervalId) {\n registerStep();\n }\n\n jobsActive++;\n fetch(job.url, job.options).then(function (
|
|
3793
|
+
return __webpack_require__(/*! !./node_modules/worker-loader/dist/workers/InlineWorker.js */ "./node_modules/worker-loader/dist/workers/InlineWorker.js")("/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"./node_modules/babel-loader/lib/index.js?!./src/FetchWorkerTool.worker.js\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./node_modules/babel-loader/lib/index.js?!./src/FetchWorkerTool.worker.js\":\n/*!*******************************************************************************!*\\\n !*** ./node_modules/babel-loader/lib??ref--4!./src/FetchWorkerTool.worker.js ***!\n \\*******************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\n/* eslint-env worker */\nvar jobsActive = 0;\nvar complete = [];\nvar intervalId = null;\n/**\n * Register a step function.\n *\n * Step checks if there are completed jobs and if there are sends them to the\n * parent. Then it checks the jobs count. If there are no further jobs, clear\n * the step.\n */\n\nvar registerStep = function registerStep() {\n intervalId = setInterval(function () {\n if (complete.length) {\n // Send our chunk of completed requests and instruct postMessage to\n // transfer the buffers instead of copying them.\n postMessage(complete.slice(), // Instruct postMessage that these buffers in the sent message\n // should use their Transferable trait. After the postMessage\n // call the \"buffers\" will still be in complete if you looked,\n // but they will all be length 0 as the data they reference has\n // been sent to the window. This lets us send a lot of data\n // without the normal postMessage behaviour of making a copy of\n // all of the data for the window.\n complete.map(function (response) {\n return response.buffer;\n }).filter(Boolean));\n complete.length = 0;\n }\n\n if (jobsActive === 0) {\n clearInterval(intervalId);\n intervalId = null;\n }\n }, 1);\n};\n/**\n * Receive a job from the parent and fetch the requested data.\n * @param {object} options.job A job id, url, and options descriptor to perform.\n */\n\n\nvar onMessage = function onMessage(_ref) {\n var job = _ref.data;\n\n if (jobsActive === 0 && !intervalId) {\n registerStep();\n }\n\n jobsActive++;\n fetch(job.url, job.options).then(function (result) {\n if (result.ok) return result.arrayBuffer();\n if (result.status === 404) return null;\n return Promise.reject(result.status);\n }).then(function (buffer) {\n return complete.push({\n id: job.id,\n buffer: buffer\n });\n }).catch(function (error) {\n return complete.push({\n id: job.id,\n error: error\n });\n }).then(function () {\n return jobsActive--;\n });\n};\n\nif (self.fetch) {\n postMessage({\n support: {\n fetch: true\n }\n });\n self.addEventListener('message', onMessage);\n} else {\n postMessage({\n support: {\n fetch: false\n }\n });\n self.addEventListener('message', function (_ref2) {\n var job = _ref2.data;\n postMessage([{\n id: job.id,\n error: new Error('fetch is unavailable')\n }]);\n });\n}\n\n/***/ })\n\n/******/ });\n//# sourceMappingURL=3770307661f114ec2389.worker.js.map", __webpack_require__.p + "3770307661f114ec2389.worker.js");
|
|
3794
3794
|
};
|
|
3795
3795
|
|
|
3796
3796
|
/***/ }),
|
|
@@ -4140,19 +4140,19 @@ var DefaultAssets = [{
|
|
|
4140
4140
|
type: AssetType.ImageBitmap,
|
|
4141
4141
|
format: DataFormat.PNG,
|
|
4142
4142
|
id: null,
|
|
4143
|
-
data:
|
|
4143
|
+
data: Buffer.from(__webpack_require__(/*! arraybuffer-loader!./builtins/defaultBitmap.png */ "./node_modules/arraybuffer-loader/index.js!./src/builtins/defaultBitmap.png") // eslint-disable-line global-require
|
|
4144
4144
|
)
|
|
4145
4145
|
}, {
|
|
4146
4146
|
type: AssetType.Sound,
|
|
4147
4147
|
format: DataFormat.WAV,
|
|
4148
4148
|
id: null,
|
|
4149
|
-
data:
|
|
4149
|
+
data: Buffer.from(__webpack_require__(/*! arraybuffer-loader!./builtins/defaultSound.wav */ "./node_modules/arraybuffer-loader/index.js!./src/builtins/defaultSound.wav") // eslint-disable-line global-require
|
|
4150
4150
|
)
|
|
4151
4151
|
}, {
|
|
4152
4152
|
type: AssetType.ImageVector,
|
|
4153
4153
|
format: DataFormat.SVG,
|
|
4154
4154
|
id: null,
|
|
4155
|
-
data:
|
|
4155
|
+
data: Buffer.from(__webpack_require__(/*! arraybuffer-loader!./builtins/defaultVector.svg */ "./node_modules/arraybuffer-loader/index.js!./src/builtins/defaultVector.svg") // eslint-disable-line global-require
|
|
4156
4156
|
)
|
|
4157
4157
|
}];
|
|
4158
4158
|
/**
|
|
@@ -4340,6 +4340,9 @@ module.exports = DataFormat;
|
|
|
4340
4340
|
/*! no static exports found */
|
|
4341
4341
|
/***/ (function(module, exports) {
|
|
4342
4342
|
|
|
4343
|
+
var _excluded = ["url"],
|
|
4344
|
+
_excluded2 = ["url", "withCredentials"];
|
|
4345
|
+
|
|
4343
4346
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
4344
4347
|
|
|
4345
4348
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
@@ -4381,14 +4384,16 @@ var FetchTool = /*#__PURE__*/function () {
|
|
|
4381
4384
|
key: "get",
|
|
4382
4385
|
value: function get(_ref) {
|
|
4383
4386
|
var url = _ref.url,
|
|
4384
|
-
options = _objectWithoutProperties(_ref,
|
|
4387
|
+
options = _objectWithoutProperties(_ref, _excluded);
|
|
4385
4388
|
|
|
4386
4389
|
return fetch(url, Object.assign({
|
|
4387
4390
|
method: 'GET'
|
|
4388
4391
|
}, options)).then(function (result) {
|
|
4389
|
-
return result.arrayBuffer()
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
+
if (result.ok) return result.arrayBuffer().then(function (b) {
|
|
4393
|
+
return new Uint8Array(b);
|
|
4394
|
+
});
|
|
4395
|
+
if (result.status === 404) return null;
|
|
4396
|
+
return Promise.reject(result.status);
|
|
4392
4397
|
});
|
|
4393
4398
|
}
|
|
4394
4399
|
/**
|
|
@@ -4414,7 +4419,7 @@ var FetchTool = /*#__PURE__*/function () {
|
|
|
4414
4419
|
var url = _ref2.url,
|
|
4415
4420
|
_ref2$withCredentials = _ref2.withCredentials,
|
|
4416
4421
|
withCredentials = _ref2$withCredentials === void 0 ? false : _ref2$withCredentials,
|
|
4417
|
-
options = _objectWithoutProperties(_ref2,
|
|
4422
|
+
options = _objectWithoutProperties(_ref2, _excluded2);
|
|
4418
4423
|
|
|
4419
4424
|
return fetch(url, Object.assign({
|
|
4420
4425
|
credentials: withCredentials ? 'include' : 'omit'
|
|
@@ -4439,6 +4444,8 @@ module.exports = FetchTool;
|
|
|
4439
4444
|
/*! no static exports found */
|
|
4440
4445
|
/***/ (function(module, exports, __webpack_require__) {
|
|
4441
4446
|
|
|
4447
|
+
var _excluded = ["url"];
|
|
4448
|
+
|
|
4442
4449
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
4443
4450
|
|
|
4444
4451
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
@@ -4560,7 +4567,7 @@ var PrivateFetchWorkerTool = /*#__PURE__*/function () {
|
|
|
4560
4567
|
var _this2 = this;
|
|
4561
4568
|
|
|
4562
4569
|
var url = _ref2.url,
|
|
4563
|
-
options = _objectWithoutProperties(_ref2,
|
|
4570
|
+
options = _objectWithoutProperties(_ref2, _excluded);
|
|
4564
4571
|
|
|
4565
4572
|
return new Promise(function (resolve, reject) {
|
|
4566
4573
|
// TODO: Use a Scratch standard ID generator ...
|
|
@@ -5094,7 +5101,7 @@ var ScratchStorage = /*#__PURE__*/function () {
|
|
|
5094
5101
|
* @param {string} assetId - The ID of the asset to fetch: a project ID, MD5, etc.
|
|
5095
5102
|
* @param {DataFormat} [dataFormat] - Optional: load this format instead of the AssetType's default.
|
|
5096
5103
|
* @return {Promise.<Asset>} A promise for the requested Asset.
|
|
5097
|
-
* If the promise is resolved with non-null, the value is the requested asset
|
|
5104
|
+
* If the promise is resolved with non-null, the value is the requested asset.
|
|
5098
5105
|
* If the promise is resolved with null, the desired asset could not be found with the current asset sources.
|
|
5099
5106
|
* If the promise is rejected, there was an error on at least one asset source. HTTP 404 does not count as an
|
|
5100
5107
|
* error here, but (for example) HTTP 403 does.
|
|
@@ -5115,6 +5122,7 @@ var ScratchStorage = /*#__PURE__*/function () {
|
|
|
5115
5122
|
|
|
5116
5123
|
var tryNextHelper = function tryNextHelper(err) {
|
|
5117
5124
|
if (err) {
|
|
5125
|
+
// Track the error, but continue looking
|
|
5118
5126
|
errors.push(err);
|
|
5119
5127
|
}
|
|
5120
5128
|
|
|
@@ -5131,8 +5139,8 @@ var ScratchStorage = /*#__PURE__*/function () {
|
|
|
5131
5139
|
return loading // TODO: maybe some types of error should prevent trying the next helper?
|
|
5132
5140
|
.catch(tryNextHelper);
|
|
5133
5141
|
} else if (errors.length > 0) {
|
|
5134
|
-
//
|
|
5135
|
-
//
|
|
5142
|
+
// We looked through all the helpers and couldn't find the asset, AND
|
|
5143
|
+
// at least one thing went wrong while we were looking.
|
|
5136
5144
|
return Promise.reject(errors);
|
|
5137
5145
|
} // Nothing went wrong but we couldn't find the asset.
|
|
5138
5146
|
|
|
@@ -5333,7 +5341,8 @@ var WebHelper = /*#__PURE__*/function (_Helper) {
|
|
|
5333
5341
|
var errors = [];
|
|
5334
5342
|
var stores = this.stores.slice().filter(function (store) {
|
|
5335
5343
|
return store.types.indexOf(assetType.name) >= 0;
|
|
5336
|
-
});
|
|
5344
|
+
}); // New empty asset but it doesn't have data yet
|
|
5345
|
+
|
|
5337
5346
|
var asset = new Asset(assetType, assetId, dataFormat);
|
|
5338
5347
|
var tool = this.assetTool;
|
|
5339
5348
|
|
|
@@ -5343,11 +5352,15 @@ var WebHelper = /*#__PURE__*/function (_Helper) {
|
|
|
5343
5352
|
|
|
5344
5353
|
var storeIndex = 0;
|
|
5345
5354
|
|
|
5346
|
-
var tryNextSource = function tryNextSource() {
|
|
5355
|
+
var tryNextSource = function tryNextSource(err) {
|
|
5356
|
+
if (err) {
|
|
5357
|
+
errors.push(err);
|
|
5358
|
+
}
|
|
5359
|
+
|
|
5347
5360
|
var store = stores[storeIndex++];
|
|
5348
5361
|
/** @type {UrlFunction} */
|
|
5349
5362
|
|
|
5350
|
-
var reqConfigFunction = store.get;
|
|
5363
|
+
var reqConfigFunction = store && store.get;
|
|
5351
5364
|
|
|
5352
5365
|
if (reqConfigFunction) {
|
|
5353
5366
|
var reqConfig = ensureRequestConfig(reqConfigFunction(asset));
|
|
@@ -5357,7 +5370,12 @@ var WebHelper = /*#__PURE__*/function (_Helper) {
|
|
|
5357
5370
|
}
|
|
5358
5371
|
|
|
5359
5372
|
return tool.get(reqConfig).then(function (body) {
|
|
5360
|
-
|
|
5373
|
+
if (body) {
|
|
5374
|
+
asset.setData(body, dataFormat);
|
|
5375
|
+
return asset;
|
|
5376
|
+
}
|
|
5377
|
+
|
|
5378
|
+
return tryNextSource();
|
|
5361
5379
|
}).catch(tryNextSource);
|
|
5362
5380
|
} else if (errors.length > 0) {
|
|
5363
5381
|
return Promise.reject(errors);
|
|
@@ -5367,9 +5385,7 @@ var WebHelper = /*#__PURE__*/function (_Helper) {
|
|
|
5367
5385
|
return Promise.resolve(null);
|
|
5368
5386
|
};
|
|
5369
5387
|
|
|
5370
|
-
return tryNextSource()
|
|
5371
|
-
return asset;
|
|
5372
|
-
});
|
|
5388
|
+
return tryNextSource();
|
|
5373
5389
|
}
|
|
5374
5390
|
/**
|
|
5375
5391
|
* Create or update an asset with provided data. The create function is called if no asset id is provided
|