summaryrefslogtreecommitdiff
path: root/cli/rt/21_dom_file.js
blob: 9d2f7fb6b30acf142ad68393c0525f2d559ed81e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.

((window) => {
  const blob = window.__bootstrap.blob;

  class DomFile extends blob.Blob {
    constructor(
      fileBits,
      fileName,
      options,
    ) {
      const { lastModified = Date.now(), ...blobPropertyBag } = options ?? {};
      super(fileBits, blobPropertyBag);

      // 4.1.2.1 Replace any "/" character (U+002F SOLIDUS)
      // with a ":" (U + 003A COLON)
      this.name = String(fileName).replace(/\u002F/g, "\u003A");
      // 4.1.3.3 If lastModified is not provided, set lastModified to the current
      // date and time represented in number of milliseconds since the Unix Epoch.
      this.lastModified = lastModified;
    }
  }

  window.__bootstrap.domFile = {
    DomFile,
  };
})(this);