@pixwel/pixwel-sdk 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.babelrc +2 -1
  2. package/README.md +60 -0
  3. package/coverage/clover.xml +581 -430
  4. package/coverage/coverage-final.json +15 -9
  5. package/coverage/lcov-report/Ass.js.html +212 -212
  6. package/coverage/lcov-report/Asset.js.html +27 -27
  7. package/coverage/lcov-report/AssetType.js.html +98 -0
  8. package/coverage/lcov-report/Encode.js.html +98 -0
  9. package/coverage/lcov-report/File.js.html +98 -0
  10. package/coverage/lcov-report/Filename.js.html +9 -726
  11. package/coverage/lcov-report/Ingest.js.html +1239 -279
  12. package/coverage/lcov-report/IngestFile.js.html +5 -5
  13. package/coverage/lcov-report/Model.js.html +821 -0
  14. package/coverage/lcov-report/Order.js.html +25 -25
  15. package/coverage/lcov-report/Srt.js.html +102 -102
  16. package/coverage/lcov-report/Sub.js.html +43 -43
  17. package/coverage/lcov-report/Tag.js.html +98 -0
  18. package/coverage/lcov-report/TimeFormat.js.html +63 -63
  19. package/coverage/lcov-report/fileType.js.html +188 -0
  20. package/coverage/lcov-report/index.html +164 -86
  21. package/coverage/lcov.info +1159 -846
  22. package/dist/index.js +74 -22
  23. package/dist/src/Asset.js +10 -5
  24. package/dist/src/AssetType.js +54 -0
  25. package/dist/src/Encode.js +54 -0
  26. package/dist/src/File.js +54 -0
  27. package/dist/src/Filename.js +7 -228
  28. package/dist/src/Ingest.js +365 -33
  29. package/dist/src/IngestFile.js +6 -2
  30. package/dist/src/Model.js +569 -0
  31. package/dist/src/Order.js +20 -9
  32. package/dist/src/Srt.js +5 -1
  33. package/dist/src/Tag.js +54 -0
  34. package/dist/src/fileType.js +43 -0
  35. package/index.js +14 -0
  36. package/package.json +9 -3
  37. package/src/AssetType.js +11 -0
  38. package/src/Encode.js +11 -0
  39. package/src/File.js +11 -0
  40. package/src/Filename.js +0 -239
  41. package/src/Ingest.js +347 -27
  42. package/src/Model.js +252 -0
  43. package/src/Tag.js +11 -0
  44. package/src/fileType.js +41 -0
  45. package/test/Filename.spec.js +3 -707
  46. package/test/Ingest.spec.js +1107 -152
  47. package/test/Model.spec.js +328 -0
@@ -0,0 +1,98 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for Tag.js</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="prettify.css" />
7
+ <link rel="stylesheet" href="base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ <a href="index.html">All files</a> Tag.js
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">0% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>0/3</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">100% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>0/0</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>0/2</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">0% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>0/3</span>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class='status-line low'></div>
45
+ <pre><table class="coverage">
46
+ <tr><td class="line-count quiet">1
47
+ 2
48
+ 3
49
+ 4
50
+ 5
51
+ 6
52
+ 7
53
+ 8
54
+ 9
55
+ 10
56
+ 11
57
+ 12</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
58
+ <span class="cline-any cline-neutral">&nbsp;</span>
59
+ <span class="cline-any cline-neutral">&nbsp;</span>
60
+ <span class="cline-any cline-neutral">&nbsp;</span>
61
+ <span class="cline-any cline-no">&nbsp;</span>
62
+ <span class="cline-any cline-no">&nbsp;</span>
63
+ <span class="cline-any cline-neutral">&nbsp;</span>
64
+ <span class="cline-any cline-neutral">&nbsp;</span>
65
+ <span class="cline-any cline-no">&nbsp;</span>
66
+ <span class="cline-any cline-neutral">&nbsp;</span>
67
+ <span class="cline-any cline-neutral">&nbsp;</span>
68
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import Model from "./Model";
69
+ &nbsp;
70
+ export default class Tag extends Model {
71
+ <span class="fstat-no" title="function not covered" > co</span>nstructor(data) {
72
+ <span class="cstat-no" title="statement not covered" > super(data);</span>
73
+ <span class="cstat-no" title="statement not covered" > this._resource = 'tags';</span>
74
+ }
75
+ <span class="fstat-no" title="function not covered" > st</span>atic get _resource() {
76
+ <span class="cstat-no" title="statement not covered" > return 'tags';</span>
77
+ }
78
+ }
79
+ &nbsp;</pre></td></tr>
80
+ </table></pre>
81
+ <div class='push'></div><!-- for sticky footer -->
82
+ </div><!-- /wrapper -->
83
+ <div class='footer quiet pad2 space-top1 center small'>
84
+ Code coverage
85
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Aug 16 2019 15:01:51 GMT-0500 (Central Daylight Time)
86
+ </div>
87
+ </div>
88
+ <script src="prettify.js"></script>
89
+ <script>
90
+ window.onload = function () {
91
+ if (typeof prettyPrint === 'function') {
92
+ prettyPrint();
93
+ }
94
+ };
95
+ </script>
96
+ <script src="sorter.js"></script>
97
+ </body>
98
+ </html>
@@ -20,28 +20,28 @@
20
20
  </h1>
21
21
  <div class='clearfix'>
22
22
  <div class='fl pad1y space-right2'>
23
- <span class="strong">100% </span>
23
+ <span class="strong">0% </span>
24
24
  <span class="quiet">Statements</span>
25
- <span class='fraction'>23/23</span>
25
+ <span class='fraction'>0/23</span>
26
26
  </div>
27
27
  <div class='fl pad1y space-right2'>
28
- <span class="strong">88% </span>
28
+ <span class="strong">0% </span>
29
29
  <span class="quiet">Branches</span>
30
- <span class='fraction'>22/25</span>
30
+ <span class='fraction'>0/25</span>
31
31
  </div>
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Functions</span>
35
- <span class='fraction'>7/7</span>
35
+ <span class='fraction'>0/7</span>
36
36
  </div>
37
37
  <div class='fl pad1y space-right2'>
38
- <span class="strong">100% </span>
38
+ <span class="strong">0% </span>
39
39
  <span class="quiet">Lines</span>
40
- <span class='fraction'>23/23</span>
40
+ <span class='fraction'>0/23</span>
41
41
  </div>
42
42
  </div>
43
43
  </div>
44
- <div class='status-line high'></div>
44
+ <div class='status-line low'></div>
45
45
  <pre><table class="coverage">
46
46
  <tr><td class="line-count quiet">1
47
47
  2
@@ -90,19 +90,19 @@
90
90
  45
91
91
  46
92
92
  47
93
- 48</td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
93
+ 48</td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
94
94
  <span class="cline-any cline-neutral">&nbsp;</span>
95
95
  <span class="cline-any cline-neutral">&nbsp;</span>
96
96
  <span class="cline-any cline-neutral">&nbsp;</span>
97
- <span class="cline-any cline-yes">18x</span>
97
+ <span class="cline-any cline-no">&nbsp;</span>
98
98
  <span class="cline-any cline-neutral">&nbsp;</span>
99
99
  <span class="cline-any cline-neutral">&nbsp;</span>
100
- <span class="cline-any cline-yes">58x</span>
101
- <span class="cline-any cline-yes">58x</span>
102
- <span class="cline-any cline-yes">3x</span>
100
+ <span class="cline-any cline-no">&nbsp;</span>
101
+ <span class="cline-any cline-no">&nbsp;</span>
102
+ <span class="cline-any cline-no">&nbsp;</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-yes">55x</span>
105
- <span class="cline-any cline-yes">55x</span>
104
+ <span class="cline-any cline-no">&nbsp;</span>
105
+ <span class="cline-any cline-no">&nbsp;</span>
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -110,79 +110,79 @@
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
113
- <span class="cline-any cline-yes">38x</span>
114
- <span class="cline-any cline-yes">38x</span>
115
- <span class="cline-any cline-yes">38x</span>
116
- <span class="cline-any cline-yes">38x</span>
117
- <span class="cline-any cline-yes">38x</span>
113
+ <span class="cline-any cline-no">&nbsp;</span>
114
+ <span class="cline-any cline-no">&nbsp;</span>
115
+ <span class="cline-any cline-no">&nbsp;</span>
116
+ <span class="cline-any cline-no">&nbsp;</span>
117
+ <span class="cline-any cline-no">&nbsp;</span>
118
118
  <span class="cline-any cline-neutral">&nbsp;</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">9x</span>
121
- <span class="cline-any cline-yes">2x</span>
120
+ <span class="cline-any cline-no">&nbsp;</span>
121
+ <span class="cline-any cline-no">&nbsp;</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-yes">7x</span>
123
+ <span class="cline-any cline-no">&nbsp;</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-yes">12x</span>
127
- <span class="cline-any cline-yes">4x</span>
126
+ <span class="cline-any cline-no">&nbsp;</span>
127
+ <span class="cline-any cline-no">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-yes">8x</span>
130
- <span class="cline-any cline-yes">8x</span>
129
+ <span class="cline-any cline-no">&nbsp;</span>
130
+ <span class="cline-any cline-no">&nbsp;</span>
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-yes">19x</span>
134
- <span class="cline-any cline-yes">19x</span>
133
+ <span class="cline-any cline-no">&nbsp;</span>
134
+ <span class="cline-any cline-no">&nbsp;</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
136
136
  <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-yes">19x</span>
138
- <span class="cline-any cline-yes">19x</span>
137
+ <span class="cline-any cline-no">&nbsp;</span>
138
+ <span class="cline-any cline-no">&nbsp;</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var stringRegex = /^(\d+):(\d+):(\d+)[,|.](\d{2,3})?$/;
140
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var stringRegex = <span class="cstat-no" title="statement not covered" >/^(\d+):(\d+):(\d+)[,|.](\d{2,3})?$/;</span>
141
141
  &nbsp;
142
142
  export default {
143
- isValidTime: function(time) {
144
- return !!time.match(stringRegex);
143
+ isValidTime: <span class="fstat-no" title="function not covered" >function(</span>time) {
144
+ <span class="cstat-no" title="statement not covered" > return !!time.match(stringRegex);</span>
145
145
  },
146
- timeToTimestamp: function(time) {
147
- var match = time.match(stringRegex);
148
- if (!match) {
149
- return 0;
146
+ timeToTimestamp: <span class="fstat-no" title="function not covered" >function(</span>time) {
147
+ var match = <span class="cstat-no" title="statement not covered" >time.match(stringRegex);</span>
148
+ <span class="cstat-no" title="statement not covered" > if (!match) {</span>
149
+ <span class="cstat-no" title="statement not covered" > return 0;</span>
150
150
  }
151
- var precision = match[4].length === 2 ? 100 : 1000;
152
- return (
151
+ var precision = <span class="cstat-no" title="statement not covered" >match[4].length === 2 ? 100 : 1000;</span>
152
+ <span class="cstat-no" title="statement not covered" > return (</span>
153
153
  (parseInt(match[1], 10) * 60 * 60) +
154
154
  (parseInt(match[2], 10) * 60) +
155
155
  parseInt(match[3], 10) +
156
156
  (parseInt(match[4], 10) / precision)
157
157
  );
158
158
  },
159
- timestampToTime: function(second, decimalMark) {
160
- var hours = ~~(second / 3600);
161
- var min = ~~(second / 60) % 60;
162
- var sec = second % 60;
163
- var fixedSec = sec.toFixed(3).replace('.', decimalMark ? <span class="branch-0 cbranch-no" title="branch not covered" >decimalMark </span>: ',');
164
- return (hours &lt; 10 ? '0' + hours : <span class="branch-1 cbranch-no" title="branch not covered" >hours)</span> + ":" + (min &lt; 10 ? '0' + min : <span class="branch-1 cbranch-no" title="branch not covered" >min)</span> + ':' + (sec &lt; 10 ? '0' + fixedSec : fixedSec);
159
+ timestampToTime: <span class="fstat-no" title="function not covered" >function(</span>second, decimalMark) {
160
+ var hours = <span class="cstat-no" title="statement not covered" >~~(second / 3600);</span>
161
+ var min = <span class="cstat-no" title="statement not covered" >~~(second / 60) % 60;</span>
162
+ var sec = <span class="cstat-no" title="statement not covered" >second % 60;</span>
163
+ var fixedSec = <span class="cstat-no" title="statement not covered" >sec.toFixed(3).replace('.', decimalMark ? decimalMark : ',');</span>
164
+ <span class="cstat-no" title="statement not covered" > return (hours &lt; 10 ? '0' + hours : hours) + ":" + (min &lt; 10 ? '0' + min : min) + ':' + (sec &lt; 10 ? '0' + fixedSec : fixedSec);</span>
165
165
  },
166
- timeDiff: function(time1, time2) {
167
- if (time1 === undefined || time2 === undefined) {
168
- return 0;
166
+ timeDiff: <span class="fstat-no" title="function not covered" >function(</span>time1, time2) {
167
+ <span class="cstat-no" title="statement not covered" > if (time1 === undefined || time2 === undefined) {</span>
168
+ <span class="cstat-no" title="statement not covered" > return 0;</span>
169
169
  }
170
- return this.timestampDiff(this.timeToTimestamp(time1), this.timeToTimestamp(time2));
170
+ <span class="cstat-no" title="statement not covered" > return this.timestampDiff(this.timeToTimestamp(time1), this.timeToTimestamp(time2));</span>
171
171
  },
172
- timestampDiff: function(time1, time2) {
173
- if (time1 === undefined || time2 === undefined || time1 === time2) {
174
- return 0;
172
+ timestampDiff: <span class="fstat-no" title="function not covered" >function(</span>time1, time2) {
173
+ <span class="cstat-no" title="statement not covered" > if (time1 === undefined || time2 === undefined || time1 === time2) {</span>
174
+ <span class="cstat-no" title="statement not covered" > return 0;</span>
175
175
  }
176
- var diff = time2 - time1;
177
- return Math.round(Math.max(-1, Math.min(1, diff)) * 10) / 10;
176
+ var diff = <span class="cstat-no" title="statement not covered" >time2 - time1;</span>
177
+ <span class="cstat-no" title="statement not covered" > return Math.round(Math.max(-1, Math.min(1, diff)) * 10) / 10;</span>
178
178
  },
179
- startTime: function(line) {
180
- var timestamp = this.timeToTimestamp(line.startTime) + (line.inOffset || 0);
181
- return this.timestampToTime(timestamp);
179
+ startTime: <span class="fstat-no" title="function not covered" >function(</span>line) {
180
+ var timestamp = <span class="cstat-no" title="statement not covered" >this.timeToTimestamp(line.startTime) + (line.inOffset || 0);</span>
181
+ <span class="cstat-no" title="statement not covered" > return this.timestampToTime(timestamp);</span>
182
182
  },
183
- stopTime: function(line) {
184
- var timestamp = this.timeToTimestamp(line.stopTime) + (line.outOffset || 0);
185
- return this.timestampToTime(timestamp);
183
+ stopTime: <span class="fstat-no" title="function not covered" >function(</span>line) {
184
+ var timestamp = <span class="cstat-no" title="statement not covered" >this.timeToTimestamp(line.stopTime) + (line.outOffset || 0);</span>
185
+ <span class="cstat-no" title="statement not covered" > return this.timestampToTime(timestamp);</span>
186
186
  }
187
187
  };</pre></td></tr>
188
188
  </table></pre>
@@ -190,7 +190,7 @@ export default {
190
190
  </div><!-- /wrapper -->
191
191
  <div class='footer quiet pad2 space-top1 center small'>
192
192
  Code coverage
193
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Aug 02 2019 14:14:15 GMT-0500 (Central Daylight Time)
193
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Aug 16 2019 15:01:51 GMT-0500 (Central Daylight Time)
194
194
  </div>
195
195
  </div>
196
196
  <script src="prettify.js"></script>
@@ -0,0 +1,188 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Code coverage report for fileType.js</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="stylesheet" href="prettify.css" />
7
+ <link rel="stylesheet" href="base.css" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <style type='text/css'>
10
+ .coverage-summary .sorter {
11
+ background-image: url(sort-arrow-sprite.png);
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+ <div class='wrapper'>
17
+ <div class='pad1'>
18
+ <h1>
19
+ <a href="index.html">All files</a> fileType.js
20
+ </h1>
21
+ <div class='clearfix'>
22
+ <div class='fl pad1y space-right2'>
23
+ <span class="strong">27.27% </span>
24
+ <span class="quiet">Statements</span>
25
+ <span class='fraction'>3/11</span>
26
+ </div>
27
+ <div class='fl pad1y space-right2'>
28
+ <span class="strong">0% </span>
29
+ <span class="quiet">Branches</span>
30
+ <span class='fraction'>0/4</span>
31
+ </div>
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Functions</span>
35
+ <span class='fraction'>0/3</span>
36
+ </div>
37
+ <div class='fl pad1y space-right2'>
38
+ <span class="strong">27.27% </span>
39
+ <span class="quiet">Lines</span>
40
+ <span class='fraction'>3/11</span>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class='status-line low'></div>
45
+ <pre><table class="coverage">
46
+ <tr><td class="line-count quiet">1
47
+ 2
48
+ 3
49
+ 4
50
+ 5
51
+ 6
52
+ 7
53
+ 8
54
+ 9
55
+ 10
56
+ 11
57
+ 12
58
+ 13
59
+ 14
60
+ 15
61
+ 16
62
+ 17
63
+ 18
64
+ 19
65
+ 20
66
+ 21
67
+ 22
68
+ 23
69
+ 24
70
+ 25
71
+ 26
72
+ 27
73
+ 28
74
+ 29
75
+ 30
76
+ 31
77
+ 32
78
+ 33
79
+ 34
80
+ 35
81
+ 36
82
+ 37
83
+ 38
84
+ 39
85
+ 40
86
+ 41
87
+ 42</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
88
+ <span class="cline-any cline-neutral">&nbsp;</span>
89
+ <span class="cline-any cline-yes">1x</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span>
91
+ <span class="cline-any cline-neutral">&nbsp;</span>
92
+ <span class="cline-any cline-neutral">&nbsp;</span>
93
+ <span class="cline-any cline-neutral">&nbsp;</span>
94
+ <span class="cline-any cline-neutral">&nbsp;</span>
95
+ <span class="cline-any cline-neutral">&nbsp;</span>
96
+ <span class="cline-any cline-neutral">&nbsp;</span>
97
+ <span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-neutral">&nbsp;</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
+ <span class="cline-any cline-no">&nbsp;</span>
103
+ <span class="cline-any cline-no">&nbsp;</span>
104
+ <span class="cline-any cline-no">&nbsp;</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-no">&nbsp;</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-neutral">&nbsp;</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-no">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-no">&nbsp;</span>
117
+ <span class="cline-any cline-no">&nbsp;</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-no">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-yes">1x</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const extname = require("path").extname;
129
+ &nbsp;
130
+ const TYPES = {
131
+ document: ["doc", "docx", "xls", "xlsx", "txt", "pdf", "ppt", "pptx"],
132
+ &nbsp;
133
+ video: ["mov", "mp4", "m4v", "mpg", "mxf"],
134
+ &nbsp;
135
+ audio: ["mp3", "wav", "m4a"],
136
+ &nbsp;
137
+ image: ["jpg", "jpeg", "png", "tif", "tiff", "ai", "psd", "eps"],
138
+ &nbsp;
139
+ zip: ["zip"]
140
+ };
141
+ &nbsp;
142
+ function <span class="fstat-no" title="function not covered" >extensionType(</span>extension) {
143
+ <span class="cstat-no" title="statement not covered" > for (var type in TYPES) {</span>
144
+ <span class="cstat-no" title="statement not covered" > if (TYPES[type].indexOf(extension) &gt; -1) {</span>
145
+ <span class="cstat-no" title="statement not covered" > return type;</span>
146
+ }
147
+ }
148
+ }
149
+ &nbsp;
150
+ function <span class="fstat-no" title="function not covered" >extension(</span>path) {
151
+ <span class="cstat-no" title="statement not covered" > return extname(path.split("?")[0].toLowerCase()).substring(1);</span>
152
+ }
153
+ &nbsp;
154
+ function <span class="fstat-no" title="function not covered" >mediaType(</span>path) {
155
+ var type = <span class="cstat-no" title="statement not covered" >extensionType(extension(path));</span>
156
+ &nbsp;
157
+ <span class="cstat-no" title="statement not covered" > if (type) {</span>
158
+ <span class="cstat-no" title="statement not covered" > return type;</span>
159
+ }
160
+ &nbsp;
161
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Unknown extension '${extension}'`);</span>
162
+ }
163
+ &nbsp;
164
+ module.exports = {
165
+ extension,
166
+ extensionType,
167
+ mediaType
168
+ };
169
+ &nbsp;</pre></td></tr>
170
+ </table></pre>
171
+ <div class='push'></div><!-- for sticky footer -->
172
+ </div><!-- /wrapper -->
173
+ <div class='footer quiet pad2 space-top1 center small'>
174
+ Code coverage
175
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Aug 16 2019 15:01:51 GMT-0500 (Central Daylight Time)
176
+ </div>
177
+ </div>
178
+ <script src="prettify.js"></script>
179
+ <script>
180
+ window.onload = function () {
181
+ if (typeof prettyPrint === 'function') {
182
+ prettyPrint();
183
+ }
184
+ };
185
+ </script>
186
+ <script src="sorter.js"></script>
187
+ </body>
188
+ </html>