happy-dom
Version:
Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.
44 lines (39 loc) • 1.11 kB
text/typescript
import Blob from './Blob.js';
import { Buffer } from 'buffer';
/**
* Reference:
* https://developer.mozilla.org/en-US/docs/Web/API/File.
*
* Based on:
* https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/file-api/File-impl.js (MIT licensed).
*/
export default class File extends Blob {
public readonly lastModified: number = null;
public readonly name: string = null;
/**
* Constructor.
*
* @param bits File bits.
* @param name File name.
* @param [options] Options.
* @param [options.type] MIME type.
* @param [options.lastModifier] Last modified. Defaults to Date.now().
* @param options.lastModified
*/
constructor(
bits: (ArrayBuffer | ArrayBufferView | Blob | Buffer | string)[],
name: string,
options?: { type?: string; lastModified?: number }
) {
if (arguments.length < 2) {
throw new TypeError(
"Failed to construct 'File': 2 arguments required, but only " +
arguments.length +
' present.'
);
}
super(bits, options);
this.name = name;
this.lastModified = options && options.lastModified ? options.lastModified : Date.now();
}
}