/* eslint no-await-in-loop: "warn" */ /* eslint no-restricted-syntax: "off" */ /* TODO: use promises for this */ import calculatorHandler from "./calculatorHandler"; import fileExists from "./fileExists"; import { requestBuffer } from "../services/request"; /** * Gets animation length. If the animation cannot be found, it will * silently fail and return 0 instead. * @param {string} filename the animation file name */ const getAnimLength = async (url) => { const extensions = [".webp", ".apng", ".gif"]; for (const extension of extensions) { const urlWithExtension = url + extension; const exists = await fileExists(urlWithExtension); if (exists) { const fileBuffer = await requestBuffer(urlWithExtension); const length = calculatorHandler[extension](fileBuffer); return length; } } return 0; }; export default getAnimLength;