UNPKG

@wordpress/upload-media

Version:
95 lines (93 loc) 3.09 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/upload-media/src/utils.ts var utils_exports = {}; __export(utils_exports, { cloneFile: () => cloneFile, convertBlobToFile: () => convertBlobToFile, getFileBasename: () => getFileBasename, getFileExtension: () => getFileExtension, getFileNameFromUrl: () => getFileNameFromUrl, isAnimatedGif: () => isAnimatedGif, renameFile: () => renameFile }); module.exports = __toCommonJS(utils_exports); var import_url = require("@wordpress/url"); var import_i18n = require("@wordpress/i18n"); function convertBlobToFile(fileOrBlob) { if (fileOrBlob instanceof File) { return fileOrBlob; } if ("name" in fileOrBlob && typeof fileOrBlob.name === "string") { return new File([fileOrBlob], fileOrBlob.name, { type: fileOrBlob.type, lastModified: fileOrBlob.lastModified }); } const ext = fileOrBlob.type.split("/")[1]; const mediaType = "application/pdf" === fileOrBlob.type ? "document" : fileOrBlob.type.split("/")[0]; return new File([fileOrBlob], `${mediaType}.${ext}`, { type: fileOrBlob.type }); } function renameFile(file, name) { return new File([file], name, { type: file.type, lastModified: file.lastModified }); } function cloneFile(file) { return renameFile(file, file.name); } function getFileExtension(file) { return file.includes(".") ? file.split(".").pop() || null : null; } function getFileBasename(name) { return name.includes(".") ? name.split(".").slice(0, -1).join(".") : name; } function getFileNameFromUrl(url) { return (0, import_url.getFilename)(url) || (0, import_i18n._x)("unnamed", "file name"); } function isAnimatedGif(buffer) { const view = new Uint8Array(buffer); if (view.length < 4 || view[0] !== 71 || view[1] !== 73 || view[2] !== 70 || view[3] !== 56) { return false; } let frameCount = 0; for (let i = 0; i < view.length - 2; i++) { if (view[i] === 0 && view[i + 1] === 33 && view[i + 2] === 249) { frameCount++; if (frameCount > 1) { return true; } } } return false; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { cloneFile, convertBlobToFile, getFileBasename, getFileExtension, getFileNameFromUrl, isAnimatedGif, renameFile }); //# sourceMappingURL=utils.cjs.map