dependency-validator.js 1.17 KB
Newer Older
Chok's avatar
Chok committed
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
module.exports = function init(global, console, messages) {
  var interface = {
    checkBlobApi: checkBlobApi,
    checkFileReaderApi: checkFileReaderApi,
    checkFormDataInstance: checkFormDataInstance,
    checkTextEncoderApi: checkTextEncoderApi,
    logWarnings: logWarnings,
  };

  return interface;

  function logWarnings() {
    if (!global.FormData) {
      console.warn(messages.MISSING_FORMDATA_API);
    } else if (!global.FormData.prototype || !global.FormData.prototype.entries) {
      console.warn(messages.MISSING_FORMDATA_ENTRIES_API);
    }
  }

  function checkBlobApi() {
    if (!global.Blob || !global.Blob.prototype) {
      throw new Error(messages.MISSING_BLOB_API);
    }
  }

  function checkFileReaderApi() {
    if (!global.FileReader || !global.FileReader.prototype) {
      throw new Error(messages.MISSING_FILE_READER_API);
    }
  }

  function checkFormDataInstance(instance) {
    if (!instance || !instance.entries) {
      throw new Error(messages.MISSING_FORMDATA_ENTRIES_API);
    }
  }

  function checkTextEncoderApi() {
    if (!global.TextEncoder || !global.TextEncoder.prototype) {
      throw new Error(messages.MISSING_TEXT_ENCODER_API);
    }
  }
};