blob-utils
v1.0.3
Published
TypeScript browser utilities for Blob, File, Base64 conversion, object URLs, and file downloads.
Maintainers
Readme
blob-utils
Lightweight TypeScript utilities for Blob, File, Base64, object URLs, and browser downloads.
Version: 1.0.2
License: MIT
Developer: Sanish Vasudevan
Installation
npm install blob-utilsExported Utilities
base64ToBlob(base64, mimeType?)isBase64(str)getMimeType(base64)blobToFile(blob, filename)base64ToFile(base64, filename)toObjectURL(blob)revokeObjectURL(url)createObjectURL(blob)releaseObjectURL(url)downloadBlob(blob, filename)downloadBase64(base64, filename)downloadFromUrl(url, filename?)
Quick Usage
import {
base64ToBlob,
base64ToFile,
blobToFile,
toObjectURL,
revokeObjectURL,
createObjectURL,
releaseObjectURL,
downloadBlob,
downloadBase64,
downloadFromUrl,
getMimeType,
isBase64,
} from 'blob-utils'
const dataUrl = 'data:text/plain;base64,SGVsbG8sIHdvcmxkIQ=='
const blob = base64ToBlob(dataUrl)
const file = base64ToFile(dataUrl, 'hello.txt')
const sameAsFile = blobToFile(blob, 'copy.txt')
console.log(isBase64(dataUrl)) // true
console.log(getMimeType(dataUrl)) // text/plain
const objectURL = createObjectURL(blob)
releaseObjectURL(objectURL)
const legacyURL = toObjectURL(blob)
revokeObjectURL(legacyURL)
downloadBlob(blob, 'hello.txt')
downloadBase64(dataUrl, 'hello-base64.txt')
await downloadFromUrl('https://example.com/report.pdf', 'report.pdf')API Tutorials
base64ToBlob(base64, mimeType?)
Converts raw base64 or a data URL into a Blob.
import { base64ToBlob } from 'blob-utils'
const dataUrl = 'data:text/plain;base64,SGVsbG8='
const blob = base64ToBlob(dataUrl)
const pngBlob = base64ToBlob('iVBORw0KGgoAAAANSUhEUgAA...', 'image/png')isBase64(str)
Checks whether a string is valid raw base64 or valid data URL payload.
import { isBase64 } from 'blob-utils'
isBase64('SGVsbG8=') // true
isBase64('data:text/plain;base64,SGVsbG8=') // true
isBase64('not-base64') // falsegetMimeType(base64)
Extracts MIME type from a data URL. Returns null for plain base64.
import { getMimeType } from 'blob-utils'
getMimeType('data:image/png;base64,iVBORw0KGgo...') // image/png
getMimeType('SGVsbG8=') // nullblobToFile(blob, filename)
Converts a Blob to a browser File.
import { blobToFile } from 'blob-utils'
const blob = new Blob(['hello'], { type: 'text/plain' })
const file = blobToFile(blob, 'hello.txt')base64ToFile(base64, filename)
Converts raw base64 or data URL directly to File.
import { base64ToFile } from 'blob-utils'
const file = base64ToFile('data:text/plain;base64,SGVsbG8=', 'hello.txt')createObjectURL(blob) and releaseObjectURL(url)
Preferred object URL helpers.
import { createObjectURL, releaseObjectURL } from 'blob-utils'
const blob = new Blob(['preview'])
const url = createObjectURL(blob)
// use URL in img/video/a tags...
releaseObjectURL(url)toObjectURL(blob) and revokeObjectURL(url)
Equivalent helpers with alternate naming.
import { toObjectURL, revokeObjectURL } from 'blob-utils'
const blob = new Blob(['preview'])
const url = toObjectURL(blob)
revokeObjectURL(url)downloadBlob(blob, filename)
Triggers browser download for a Blob.
import { downloadBlob } from 'blob-utils'
const blob = new Blob(['hello'], { type: 'text/plain' })
downloadBlob(blob, 'hello.txt')downloadBase64(base64, filename)
Triggers browser download from raw base64 or data URL.
import { downloadBase64 } from 'blob-utils'
downloadBase64('data:text/plain;base64,SGVsbG8=', 'hello.txt')downloadFromUrl(url, filename?)
Fetches a file URL and downloads it in the browser.
import { downloadFromUrl } from 'blob-utils'
await downloadFromUrl('https://example.com/manual.pdf', 'manual.pdf')
// If filename is omitted, the name is inferred from URL path.
await downloadFromUrl('https://example.com/files/report.csv')Notes
- This package is browser-focused (
Blob,File,URL,document,fetchAPIs). - For
downloadFromUrl, cross-origin servers must allow fetch access (CORS).
