@shopify/react-async
Version:
Tools for creating powerful, asynchronously-loaded React components.
29 lines (28 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var server_1 = require("@shopify/react-effect/server");
var assets_1 = require("./context/assets");
function getUsedAssets(element) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return tslib_1.__awaiter(this, void 0, void 0, function () {
var asyncAssets;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
asyncAssets = new assets_1.AsyncAssetManager();
return [4 /*yield*/, server_1.extract(element, {
decorate: function (element) { return (react_1.default.createElement(assets_1.AsyncAssetContext.Provider, { value: asyncAssets }, element)); },
})];
case 1:
_a.sent();
return [2 /*return*/, asyncAssets.used.apply(asyncAssets, tslib_1.__spread(args))];
}
});
});
}
exports.getUsedAssets = getUsedAssets;