UNPKG

@tldraw/utils

Version:

tldraw infinite canvas SDK (private utilities).

95 lines (94 loc) 2.9 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); var file_exports = {}; __export(file_exports, { FileHelpers: () => FileHelpers }); module.exports = __toCommonJS(file_exports); var import_network = require("./network"); class FileHelpers { /** * @param url - The url of the file. */ static async urlToArrayBuffer(url) { const response = await (0, import_network.fetch)(url); return await response.arrayBuffer(); } static async urlToBlob(url) { const response = await (0, import_network.fetch)(url); return await response.blob(); } static async urlToDataUrl(url) { if (url.startsWith("data:")) return url; const blob = await FileHelpers.urlToBlob(url); return await FileHelpers.blobToDataUrl(blob); } /** * Convert a file to a base64 encoded data url. * * @example * * ```ts * const A = FileHelpers.toDataUrl(myImageFile) * ``` * * @param file - The file as a blob. */ static async blobToDataUrl(file) { return await new Promise((resolve, reject) => { if (file) { const reader = new FileReader(); reader.onload = () => resolve(reader.result); reader.onerror = (error) => reject(error); reader.onabort = (error) => reject(error); reader.readAsDataURL(file); } }); } /** * Convert a file to a unicode text string. * * @example * * ```ts * const A = FileHelpers.fileToDataUrl(myTextFile) * ``` * * @param file - The file as a blob. */ static async blobToText(file) { return await new Promise((resolve, reject) => { if (file) { const reader = new FileReader(); reader.onload = () => resolve(reader.result); reader.onerror = (error) => reject(error); reader.onabort = (error) => reject(error); reader.readAsText(file); } }); } static rewriteMimeType(blob, newMimeType) { if (blob.type === newMimeType) return blob; if (blob instanceof File) { return new File([blob], blob.name, { type: newMimeType }); } return new Blob([blob], { type: newMimeType }); } } //# sourceMappingURL=file.js.map