import { URL as NodeJSURL } from 'url';
import * as PropertySymbol from '../PropertySymbol.js';
import { Blob as NodeJSBlob } from 'buffer';
import Blob from '../file/Blob.js';
/**
 * URL.
 */
export default class URL extends NodeJSURL {
    /**
     * Constructor.
     *
     * @param url URL.
     * @param [base] Base URL.
     */
    constructor(url, base) {
        try {
            super(url, base);
        }
        catch (error) {
            super('about:blank');
            if (this[PropertySymbol.window]) {
                throw new this[PropertySymbol.window].TypeError('Invalid URL');
            }
            throw error;
        }
    }
    /**
     * Creates a string containing a URL representing the object given in the parameter.
     *
     * @param object Object.
     * @returns URL.
     */
    static createObjectURL(object) {
        if (object instanceof Blob) {
            const blob = new NodeJSBlob([object[PropertySymbol.buffer]], { type: object.type });
            return super.createObjectURL(blob);
        }
        return super.createObjectURL(object);
    }
}
//# sourceMappingURL=URL.js.map