UNPKG

@whatwg-node/node-fetch

Version:

Fetch API implementation for Node

23 lines (22 loc) 715 B
import NodeBuffer from 'node:buffer'; import { randomUUID } from 'node:crypto'; export class PonyfillURL extends URL { // This part is only needed to handle `PonyfillBlob` objects static blobRegistry = new Map(); static createObjectURL(blob) { const blobUrl = `blob:whatwgnode:${randomUUID()}`; this.blobRegistry.set(blobUrl, blob); return blobUrl; } static revokeObjectURL(url) { if (!this.blobRegistry.has(url)) { URL.revokeObjectURL(url); } else { this.blobRegistry.delete(url); } } static getBlobFromURL(url) { return (this.blobRegistry.get(url) || NodeBuffer?.resolveObjectURL?.(url)); } }