@snap/camera-kit
Version:
Camera Kit Web
18 lines • 1.1 kB
JavaScript
import { __awaiter } from "tslib";
import { Injectable } from "../../dependency-injection/Injectable";
import { createArrayBufferParsingHandler } from "../../handlers/arrayBufferParsingHandler";
import { defaultFetchHandlerFactory } from "../../handlers/defaultFetchHandler";
import { HandlerChainBuilder } from "../../handlers/HandlerChainBuilder";
import { withRequestPriority } from "../../handlers/utils";
export const remoteMediaAssetLoaderFactory = Injectable("remoteMediaAssetLoader", [defaultFetchHandlerFactory.token], (fetchHandler) => {
const handler = new HandlerChainBuilder(fetchHandler).map(createArrayBufferParsingHandler()).handler;
return function remoteMediaAssetLoader({ assetDescriptor: { assetId }, lowPriority }) {
return __awaiter(this, void 0, void 0, function* () {
const [buffer, response] = yield handler(assetId, withRequestPriority({ cache: "force-cache" }, lowPriority));
if (!response.ok)
throw response;
return buffer;
});
};
});
//# sourceMappingURL=remoteMediaAssetLoaderFactory.js.map