dragonfly_chrome_headless 0.2.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 (228) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +12 -0
  4. data/Gemfile +4 -0
  5. data/README.md +53 -0
  6. data/Rakefile +10 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +8 -0
  9. data/dragonfly_chrome_headless.gemspec +27 -0
  10. data/lib/dragonfly_chrome_headless.rb +9 -0
  11. data/lib/dragonfly_chrome_headless/plugin.rb +17 -0
  12. data/lib/dragonfly_chrome_headless/processors/rasterize.rb +33 -0
  13. data/lib/dragonfly_chrome_headless/version.rb +3 -0
  14. data/node_modules/.bin/chrome-remote-interface +1 -0
  15. data/node_modules/.bin/mkdirp +1 -0
  16. data/node_modules/.bin/rimraf +1 -0
  17. data/node_modules/@types/core-js/LICENSE +21 -0
  18. data/node_modules/@types/core-js/README.md +16 -0
  19. data/node_modules/@types/core-js/index.d.ts +2452 -0
  20. data/node_modules/@types/core-js/package.json +85 -0
  21. data/node_modules/@types/mkdirp/README.md +18 -0
  22. data/node_modules/@types/mkdirp/index.d.ts +14 -0
  23. data/node_modules/@types/mkdirp/package.json +77 -0
  24. data/node_modules/@types/mkdirp/types-metadata.json +25 -0
  25. data/node_modules/@types/node/README.md +16 -0
  26. data/node_modules/@types/node/index.d.ts +4132 -0
  27. data/node_modules/@types/node/package.json +84 -0
  28. data/node_modules/balanced-match/.npmignore +5 -0
  29. data/node_modules/balanced-match/LICENSE.md +21 -0
  30. data/node_modules/balanced-match/README.md +91 -0
  31. data/node_modules/balanced-match/index.js +59 -0
  32. data/node_modules/balanced-match/package.json +112 -0
  33. data/node_modules/brace-expansion/README.md +123 -0
  34. data/node_modules/brace-expansion/index.js +201 -0
  35. data/node_modules/brace-expansion/package.json +114 -0
  36. data/node_modules/chrome-launcher/.clang-format +6 -0
  37. data/node_modules/chrome-launcher/.npmignore +11 -0
  38. data/node_modules/chrome-launcher/README.md +123 -0
  39. data/node_modules/chrome-launcher/ask.js +32 -0
  40. data/node_modules/chrome-launcher/ask.ts +35 -0
  41. data/node_modules/chrome-launcher/chrome-finder.js +157 -0
  42. data/node_modules/chrome-launcher/chrome-finder.ts +186 -0
  43. data/node_modules/chrome-launcher/chrome-launcher.js +245 -0
  44. data/node_modules/chrome-launcher/chrome-launcher.ts +312 -0
  45. data/node_modules/chrome-launcher/compiled-check.js +14 -0
  46. data/node_modules/chrome-launcher/flags.js +27 -0
  47. data/node_modules/chrome-launcher/flags.ts +26 -0
  48. data/node_modules/chrome-launcher/index.js +7 -0
  49. data/node_modules/chrome-launcher/index.ts +1 -0
  50. data/node_modules/chrome-launcher/manual-chrome-launcher.js +30 -0
  51. data/node_modules/chrome-launcher/package.json +116 -0
  52. data/node_modules/chrome-launcher/random-port.js +24 -0
  53. data/node_modules/chrome-launcher/random-port.ts +23 -0
  54. data/node_modules/chrome-launcher/tsconfig.json +19 -0
  55. data/node_modules/chrome-launcher/utils.js +52 -0
  56. data/node_modules/chrome-launcher/utils.ts +44 -0
  57. data/node_modules/chrome-launcher/yarn.lock +1486 -0
  58. data/node_modules/chrome-remote-interface/LICENSE +18 -0
  59. data/node_modules/chrome-remote-interface/README.md +849 -0
  60. data/node_modules/chrome-remote-interface/bin/client.js +337 -0
  61. data/node_modules/chrome-remote-interface/chrome-remote-interface.js +11 -0
  62. data/node_modules/chrome-remote-interface/index.js +39 -0
  63. data/node_modules/chrome-remote-interface/lib/api.js +84 -0
  64. data/node_modules/chrome-remote-interface/lib/chrome.js +307 -0
  65. data/node_modules/chrome-remote-interface/lib/defaults.js +4 -0
  66. data/node_modules/chrome-remote-interface/lib/devtools.js +245 -0
  67. data/node_modules/chrome-remote-interface/lib/external-request.js +28 -0
  68. data/node_modules/chrome-remote-interface/lib/protocol.json +13780 -0
  69. data/node_modules/chrome-remote-interface/lib/websocket-wrapper.js +32 -0
  70. data/node_modules/chrome-remote-interface/package.json +128 -0
  71. data/node_modules/chrome-remote-interface/webpack.config.js +55 -0
  72. data/node_modules/commander/Readme.md +195 -0
  73. data/node_modules/commander/index.js +851 -0
  74. data/node_modules/commander/package.json +92 -0
  75. data/node_modules/concat-map/.travis.yml +4 -0
  76. data/node_modules/concat-map/LICENSE +18 -0
  77. data/node_modules/concat-map/README.markdown +62 -0
  78. data/node_modules/concat-map/example/map.js +6 -0
  79. data/node_modules/concat-map/index.js +13 -0
  80. data/node_modules/concat-map/package.json +117 -0
  81. data/node_modules/concat-map/test/map.js +39 -0
  82. data/node_modules/debug/.coveralls.yml +1 -0
  83. data/node_modules/debug/.eslintrc +11 -0
  84. data/node_modules/debug/.npmignore +9 -0
  85. data/node_modules/debug/.travis.yml +14 -0
  86. data/node_modules/debug/CHANGELOG.md +357 -0
  87. data/node_modules/debug/LICENSE +19 -0
  88. data/node_modules/debug/Makefile +50 -0
  89. data/node_modules/debug/Readme.md +312 -0
  90. data/node_modules/debug/component.json +19 -0
  91. data/node_modules/debug/karma.conf.js +70 -0
  92. data/node_modules/debug/node.js +1 -0
  93. data/node_modules/debug/package.json +124 -0
  94. data/node_modules/debug/src/browser.js +185 -0
  95. data/node_modules/debug/src/debug.js +202 -0
  96. data/node_modules/debug/src/index.js +10 -0
  97. data/node_modules/debug/src/node.js +246 -0
  98. data/node_modules/fs.realpath/LICENSE +43 -0
  99. data/node_modules/fs.realpath/README.md +33 -0
  100. data/node_modules/fs.realpath/index.js +66 -0
  101. data/node_modules/fs.realpath/old.js +303 -0
  102. data/node_modules/fs.realpath/package.json +94 -0
  103. data/node_modules/glob/LICENSE +15 -0
  104. data/node_modules/glob/README.md +368 -0
  105. data/node_modules/glob/changelog.md +67 -0
  106. data/node_modules/glob/common.js +240 -0
  107. data/node_modules/glob/glob.js +790 -0
  108. data/node_modules/glob/package.json +112 -0
  109. data/node_modules/glob/sync.js +486 -0
  110. data/node_modules/html-pdf-chrome/.npmignore +9 -0
  111. data/node_modules/html-pdf-chrome/LICENSE +21 -0
  112. data/node_modules/html-pdf-chrome/README.md +165 -0
  113. data/node_modules/html-pdf-chrome/lib/src/ChromePrintOptions.d.ts +87 -0
  114. data/node_modules/html-pdf-chrome/lib/src/ChromePrintOptions.js +4 -0
  115. data/node_modules/html-pdf-chrome/lib/src/ChromePrintOptions.js.map +1 -0
  116. data/node_modules/html-pdf-chrome/lib/src/CompletionTrigger.d.ts +120 -0
  117. data/node_modules/html-pdf-chrome/lib/src/CompletionTrigger.js +206 -0
  118. data/node_modules/html-pdf-chrome/lib/src/CompletionTrigger.js.map +1 -0
  119. data/node_modules/html-pdf-chrome/lib/src/CreateResult.d.ts +70 -0
  120. data/node_modules/html-pdf-chrome/lib/src/CreateResult.js +98 -0
  121. data/node_modules/html-pdf-chrome/lib/src/CreateResult.js.map +1 -0
  122. data/node_modules/html-pdf-chrome/lib/src/index.d.ts +72 -0
  123. data/node_modules/html-pdf-chrome/lib/src/index.js +123 -0
  124. data/node_modules/html-pdf-chrome/lib/src/index.js.map +1 -0
  125. data/node_modules/html-pdf-chrome/package.json +133 -0
  126. data/node_modules/html-pdf-chrome/src/ChromePrintOptions.ts +99 -0
  127. data/node_modules/html-pdf-chrome/src/CompletionTrigger.ts +201 -0
  128. data/node_modules/html-pdf-chrome/src/CreateResult.ts +100 -0
  129. data/node_modules/html-pdf-chrome/src/index.ts +179 -0
  130. data/node_modules/inflight/LICENSE +15 -0
  131. data/node_modules/inflight/README.md +37 -0
  132. data/node_modules/inflight/inflight.js +54 -0
  133. data/node_modules/inflight/package.json +105 -0
  134. data/node_modules/inherits/LICENSE +16 -0
  135. data/node_modules/inherits/README.md +42 -0
  136. data/node_modules/inherits/inherits.js +7 -0
  137. data/node_modules/inherits/inherits_browser.js +23 -0
  138. data/node_modules/inherits/package.json +97 -0
  139. data/node_modules/lighthouse-logger/README.md +4 -0
  140. data/node_modules/lighthouse-logger/index.js +212 -0
  141. data/node_modules/lighthouse-logger/package.json +69 -0
  142. data/node_modules/lighthouse-logger/yarn.lock +13 -0
  143. data/node_modules/minimatch/LICENSE +15 -0
  144. data/node_modules/minimatch/README.md +209 -0
  145. data/node_modules/minimatch/minimatch.js +923 -0
  146. data/node_modules/minimatch/package.json +99 -0
  147. data/node_modules/minimist/.travis.yml +4 -0
  148. data/node_modules/minimist/LICENSE +18 -0
  149. data/node_modules/minimist/example/parse.js +2 -0
  150. data/node_modules/minimist/index.js +187 -0
  151. data/node_modules/minimist/package.json +101 -0
  152. data/node_modules/minimist/readme.markdown +73 -0
  153. data/node_modules/minimist/test/dash.js +24 -0
  154. data/node_modules/minimist/test/default_bool.js +20 -0
  155. data/node_modules/minimist/test/dotted.js +16 -0
  156. data/node_modules/minimist/test/long.js +31 -0
  157. data/node_modules/minimist/test/parse.js +318 -0
  158. data/node_modules/minimist/test/parse_modified.js +9 -0
  159. data/node_modules/minimist/test/short.js +67 -0
  160. data/node_modules/minimist/test/whitespace.js +8 -0
  161. data/node_modules/mkdirp/.travis.yml +8 -0
  162. data/node_modules/mkdirp/LICENSE +21 -0
  163. data/node_modules/mkdirp/bin/cmd.js +33 -0
  164. data/node_modules/mkdirp/bin/usage.txt +12 -0
  165. data/node_modules/mkdirp/examples/pow.js +6 -0
  166. data/node_modules/mkdirp/index.js +98 -0
  167. data/node_modules/mkdirp/package.json +93 -0
  168. data/node_modules/mkdirp/readme.markdown +100 -0
  169. data/node_modules/mkdirp/test/chmod.js +41 -0
  170. data/node_modules/mkdirp/test/clobber.js +38 -0
  171. data/node_modules/mkdirp/test/mkdirp.js +28 -0
  172. data/node_modules/mkdirp/test/opts_fs.js +29 -0
  173. data/node_modules/mkdirp/test/opts_fs_sync.js +27 -0
  174. data/node_modules/mkdirp/test/perm.js +32 -0
  175. data/node_modules/mkdirp/test/perm_sync.js +36 -0
  176. data/node_modules/mkdirp/test/race.js +37 -0
  177. data/node_modules/mkdirp/test/rel.js +32 -0
  178. data/node_modules/mkdirp/test/return.js +25 -0
  179. data/node_modules/mkdirp/test/return_sync.js +24 -0
  180. data/node_modules/mkdirp/test/root.js +19 -0
  181. data/node_modules/mkdirp/test/sync.js +32 -0
  182. data/node_modules/mkdirp/test/umask.js +28 -0
  183. data/node_modules/mkdirp/test/umask_sync.js +32 -0
  184. data/node_modules/ms/README.md +51 -0
  185. data/node_modules/ms/index.js +152 -0
  186. data/node_modules/ms/license.md +21 -0
  187. data/node_modules/ms/package.json +109 -0
  188. data/node_modules/once/LICENSE +15 -0
  189. data/node_modules/once/README.md +79 -0
  190. data/node_modules/once/once.js +42 -0
  191. data/node_modules/once/package.json +101 -0
  192. data/node_modules/path-is-absolute/index.js +20 -0
  193. data/node_modules/path-is-absolute/license +21 -0
  194. data/node_modules/path-is-absolute/package.json +111 -0
  195. data/node_modules/path-is-absolute/readme.md +59 -0
  196. data/node_modules/rimraf/LICENSE +15 -0
  197. data/node_modules/rimraf/README.md +101 -0
  198. data/node_modules/rimraf/bin.js +50 -0
  199. data/node_modules/rimraf/package.json +99 -0
  200. data/node_modules/rimraf/rimraf.js +363 -0
  201. data/node_modules/ultron/LICENSE +22 -0
  202. data/node_modules/ultron/index.js +138 -0
  203. data/node_modules/ultron/package.json +112 -0
  204. data/node_modules/wrappy/LICENSE +15 -0
  205. data/node_modules/wrappy/README.md +36 -0
  206. data/node_modules/wrappy/package.json +97 -0
  207. data/node_modules/wrappy/wrappy.js +33 -0
  208. data/node_modules/ws/LICENSE +21 -0
  209. data/node_modules/ws/README.md +259 -0
  210. data/node_modules/ws/SECURITY.md +33 -0
  211. data/node_modules/ws/index.js +15 -0
  212. data/node_modules/ws/lib/BufferUtil.fallback.js +56 -0
  213. data/node_modules/ws/lib/BufferUtil.js +15 -0
  214. data/node_modules/ws/lib/ErrorCodes.js +28 -0
  215. data/node_modules/ws/lib/EventTarget.js +158 -0
  216. data/node_modules/ws/lib/Extensions.js +69 -0
  217. data/node_modules/ws/lib/PerMessageDeflate.js +339 -0
  218. data/node_modules/ws/lib/Receiver.js +520 -0
  219. data/node_modules/ws/lib/Sender.js +438 -0
  220. data/node_modules/ws/lib/Validation.fallback.js +9 -0
  221. data/node_modules/ws/lib/Validation.js +17 -0
  222. data/node_modules/ws/lib/WebSocket.js +705 -0
  223. data/node_modules/ws/lib/WebSocketServer.js +336 -0
  224. data/node_modules/ws/package.json +122 -0
  225. data/package.json +26 -0
  226. data/samples/sample.html +13 -0
  227. data/script/rasterize.js +18 -0
  228. metadata +325 -0
@@ -0,0 +1,28 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var exists = fs.exists || path.exists;
5
+ var test = require('tap').test;
6
+ var _0777 = parseInt('0777', 8);
7
+ var _0755 = parseInt('0755', 8);
8
+
9
+ test('woo', function (t) {
10
+ t.plan(5);
11
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
12
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
13
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
14
+
15
+ var file = '/tmp/' + [x,y,z].join('/');
16
+
17
+ mkdirp(file, _0755, function (err) {
18
+ t.ifError(err);
19
+ exists(file, function (ex) {
20
+ t.ok(ex, 'file created');
21
+ fs.stat(file, function (err, stat) {
22
+ t.ifError(err);
23
+ t.equal(stat.mode & _0777, _0755);
24
+ t.ok(stat.isDirectory(), 'target not a directory');
25
+ })
26
+ })
27
+ });
28
+ });
@@ -0,0 +1,29 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var test = require('tap').test;
4
+ var mockfs = require('mock-fs');
5
+ var _0777 = parseInt('0777', 8);
6
+ var _0755 = parseInt('0755', 8);
7
+
8
+ test('opts.fs', function (t) {
9
+ t.plan(5);
10
+
11
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
12
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
13
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
14
+
15
+ var file = '/beep/boop/' + [x,y,z].join('/');
16
+ var xfs = mockfs.fs();
17
+
18
+ mkdirp(file, { fs: xfs, mode: _0755 }, function (err) {
19
+ t.ifError(err);
20
+ xfs.exists(file, function (ex) {
21
+ t.ok(ex, 'created file');
22
+ xfs.stat(file, function (err, stat) {
23
+ t.ifError(err);
24
+ t.equal(stat.mode & _0777, _0755);
25
+ t.ok(stat.isDirectory(), 'target not a directory');
26
+ });
27
+ });
28
+ });
29
+ });
@@ -0,0 +1,27 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var test = require('tap').test;
4
+ var mockfs = require('mock-fs');
5
+ var _0777 = parseInt('0777', 8);
6
+ var _0755 = parseInt('0755', 8);
7
+
8
+ test('opts.fs sync', function (t) {
9
+ t.plan(4);
10
+
11
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
12
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
13
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
14
+
15
+ var file = '/beep/boop/' + [x,y,z].join('/');
16
+ var xfs = mockfs.fs();
17
+
18
+ mkdirp.sync(file, { fs: xfs, mode: _0755 });
19
+ xfs.exists(file, function (ex) {
20
+ t.ok(ex, 'created file');
21
+ xfs.stat(file, function (err, stat) {
22
+ t.ifError(err);
23
+ t.equal(stat.mode & _0777, _0755);
24
+ t.ok(stat.isDirectory(), 'target not a directory');
25
+ });
26
+ });
27
+ });
@@ -0,0 +1,32 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var exists = fs.exists || path.exists;
5
+ var test = require('tap').test;
6
+ var _0777 = parseInt('0777', 8);
7
+ var _0755 = parseInt('0755', 8);
8
+
9
+ test('async perm', function (t) {
10
+ t.plan(5);
11
+ var file = '/tmp/' + (Math.random() * (1<<30)).toString(16);
12
+
13
+ mkdirp(file, _0755, function (err) {
14
+ t.ifError(err);
15
+ exists(file, function (ex) {
16
+ t.ok(ex, 'file created');
17
+ fs.stat(file, function (err, stat) {
18
+ t.ifError(err);
19
+ t.equal(stat.mode & _0777, _0755);
20
+ t.ok(stat.isDirectory(), 'target not a directory');
21
+ })
22
+ })
23
+ });
24
+ });
25
+
26
+ test('async root perm', function (t) {
27
+ mkdirp('/tmp', _0755, function (err) {
28
+ if (err) t.fail(err);
29
+ t.end();
30
+ });
31
+ t.end();
32
+ });
@@ -0,0 +1,36 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var exists = fs.exists || path.exists;
5
+ var test = require('tap').test;
6
+ var _0777 = parseInt('0777', 8);
7
+ var _0755 = parseInt('0755', 8);
8
+
9
+ test('sync perm', function (t) {
10
+ t.plan(4);
11
+ var file = '/tmp/' + (Math.random() * (1<<30)).toString(16) + '.json';
12
+
13
+ mkdirp.sync(file, _0755);
14
+ exists(file, function (ex) {
15
+ t.ok(ex, 'file created');
16
+ fs.stat(file, function (err, stat) {
17
+ t.ifError(err);
18
+ t.equal(stat.mode & _0777, _0755);
19
+ t.ok(stat.isDirectory(), 'target not a directory');
20
+ });
21
+ });
22
+ });
23
+
24
+ test('sync root perm', function (t) {
25
+ t.plan(3);
26
+
27
+ var file = '/tmp';
28
+ mkdirp.sync(file, _0755);
29
+ exists(file, function (ex) {
30
+ t.ok(ex, 'file created');
31
+ fs.stat(file, function (err, stat) {
32
+ t.ifError(err);
33
+ t.ok(stat.isDirectory(), 'target not a directory');
34
+ })
35
+ });
36
+ });
@@ -0,0 +1,37 @@
1
+ var mkdirp = require('../').mkdirp;
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var exists = fs.exists || path.exists;
5
+ var test = require('tap').test;
6
+ var _0777 = parseInt('0777', 8);
7
+ var _0755 = parseInt('0755', 8);
8
+
9
+ test('race', function (t) {
10
+ t.plan(10);
11
+ var ps = [ '', 'tmp' ];
12
+
13
+ for (var i = 0; i < 25; i++) {
14
+ var dir = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
15
+ ps.push(dir);
16
+ }
17
+ var file = ps.join('/');
18
+
19
+ var res = 2;
20
+ mk(file);
21
+
22
+ mk(file);
23
+
24
+ function mk (file, cb) {
25
+ mkdirp(file, _0755, function (err) {
26
+ t.ifError(err);
27
+ exists(file, function (ex) {
28
+ t.ok(ex, 'file created');
29
+ fs.stat(file, function (err, stat) {
30
+ t.ifError(err);
31
+ t.equal(stat.mode & _0777, _0755);
32
+ t.ok(stat.isDirectory(), 'target not a directory');
33
+ });
34
+ })
35
+ });
36
+ }
37
+ });
@@ -0,0 +1,32 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var exists = fs.exists || path.exists;
5
+ var test = require('tap').test;
6
+ var _0777 = parseInt('0777', 8);
7
+ var _0755 = parseInt('0755', 8);
8
+
9
+ test('rel', function (t) {
10
+ t.plan(5);
11
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
12
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
13
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
14
+
15
+ var cwd = process.cwd();
16
+ process.chdir('/tmp');
17
+
18
+ var file = [x,y,z].join('/');
19
+
20
+ mkdirp(file, _0755, function (err) {
21
+ t.ifError(err);
22
+ exists(file, function (ex) {
23
+ t.ok(ex, 'file created');
24
+ fs.stat(file, function (err, stat) {
25
+ t.ifError(err);
26
+ process.chdir(cwd);
27
+ t.equal(stat.mode & _0777, _0755);
28
+ t.ok(stat.isDirectory(), 'target not a directory');
29
+ })
30
+ })
31
+ });
32
+ });
@@ -0,0 +1,25 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var test = require('tap').test;
5
+
6
+ test('return value', function (t) {
7
+ t.plan(4);
8
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
9
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
11
+
12
+ var file = '/tmp/' + [x,y,z].join('/');
13
+
14
+ // should return the first dir created.
15
+ // By this point, it would be profoundly surprising if /tmp didn't
16
+ // already exist, since every other test makes things in there.
17
+ mkdirp(file, function (err, made) {
18
+ t.ifError(err);
19
+ t.equal(made, '/tmp/' + x);
20
+ mkdirp(file, function (err, made) {
21
+ t.ifError(err);
22
+ t.equal(made, null);
23
+ });
24
+ });
25
+ });
@@ -0,0 +1,24 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var test = require('tap').test;
5
+
6
+ test('return value', function (t) {
7
+ t.plan(2);
8
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
9
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
10
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
11
+
12
+ var file = '/tmp/' + [x,y,z].join('/');
13
+
14
+ // should return the first dir created.
15
+ // By this point, it would be profoundly surprising if /tmp didn't
16
+ // already exist, since every other test makes things in there.
17
+ // Note that this will throw on failure, which will fail the test.
18
+ var made = mkdirp.sync(file);
19
+ t.equal(made, '/tmp/' + x);
20
+
21
+ // making the same file again should have no effect.
22
+ made = mkdirp.sync(file);
23
+ t.equal(made, null);
24
+ });
@@ -0,0 +1,19 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var test = require('tap').test;
5
+ var _0755 = parseInt('0755', 8);
6
+
7
+ test('root', function (t) {
8
+ // '/' on unix, 'c:/' on windows.
9
+ var file = path.resolve('/');
10
+
11
+ mkdirp(file, _0755, function (err) {
12
+ if (err) throw err
13
+ fs.stat(file, function (er, stat) {
14
+ if (er) throw er
15
+ t.ok(stat.isDirectory(), 'target is a directory');
16
+ t.end();
17
+ })
18
+ });
19
+ });
@@ -0,0 +1,32 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var exists = fs.exists || path.exists;
5
+ var test = require('tap').test;
6
+ var _0777 = parseInt('0777', 8);
7
+ var _0755 = parseInt('0755', 8);
8
+
9
+ test('sync', function (t) {
10
+ t.plan(4);
11
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
12
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
13
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
14
+
15
+ var file = '/tmp/' + [x,y,z].join('/');
16
+
17
+ try {
18
+ mkdirp.sync(file, _0755);
19
+ } catch (err) {
20
+ t.fail(err);
21
+ return t.end();
22
+ }
23
+
24
+ exists(file, function (ex) {
25
+ t.ok(ex, 'file created');
26
+ fs.stat(file, function (err, stat) {
27
+ t.ifError(err);
28
+ t.equal(stat.mode & _0777, _0755);
29
+ t.ok(stat.isDirectory(), 'target not a directory');
30
+ });
31
+ });
32
+ });
@@ -0,0 +1,28 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var exists = fs.exists || path.exists;
5
+ var test = require('tap').test;
6
+ var _0777 = parseInt('0777', 8);
7
+ var _0755 = parseInt('0755', 8);
8
+
9
+ test('implicit mode from umask', function (t) {
10
+ t.plan(5);
11
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
12
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
13
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
14
+
15
+ var file = '/tmp/' + [x,y,z].join('/');
16
+
17
+ mkdirp(file, function (err) {
18
+ t.ifError(err);
19
+ exists(file, function (ex) {
20
+ t.ok(ex, 'file created');
21
+ fs.stat(file, function (err, stat) {
22
+ t.ifError(err);
23
+ t.equal(stat.mode & _0777, _0777 & (~process.umask()));
24
+ t.ok(stat.isDirectory(), 'target not a directory');
25
+ });
26
+ })
27
+ });
28
+ });
@@ -0,0 +1,32 @@
1
+ var mkdirp = require('../');
2
+ var path = require('path');
3
+ var fs = require('fs');
4
+ var exists = fs.exists || path.exists;
5
+ var test = require('tap').test;
6
+ var _0777 = parseInt('0777', 8);
7
+ var _0755 = parseInt('0755', 8);
8
+
9
+ test('umask sync modes', function (t) {
10
+ t.plan(4);
11
+ var x = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
12
+ var y = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
13
+ var z = Math.floor(Math.random() * Math.pow(16,4)).toString(16);
14
+
15
+ var file = '/tmp/' + [x,y,z].join('/');
16
+
17
+ try {
18
+ mkdirp.sync(file);
19
+ } catch (err) {
20
+ t.fail(err);
21
+ return t.end();
22
+ }
23
+
24
+ exists(file, function (ex) {
25
+ t.ok(ex, 'file created');
26
+ fs.stat(file, function (err, stat) {
27
+ t.ifError(err);
28
+ t.equal(stat.mode & _0777, (_0777 & (~process.umask())));
29
+ t.ok(stat.isDirectory(), 'target not a directory');
30
+ });
31
+ });
32
+ });
@@ -0,0 +1,51 @@
1
+ # ms
2
+
3
+ [![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
4
+ [![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
5
+
6
+ Use this package to easily convert various time formats to milliseconds.
7
+
8
+ ## Examples
9
+
10
+ ```js
11
+ ms('2 days') // 172800000
12
+ ms('1d') // 86400000
13
+ ms('10h') // 36000000
14
+ ms('2.5 hrs') // 9000000
15
+ ms('2h') // 7200000
16
+ ms('1m') // 60000
17
+ ms('5s') // 5000
18
+ ms('1y') // 31557600000
19
+ ms('100') // 100
20
+ ```
21
+
22
+ ### Convert from milliseconds
23
+
24
+ ```js
25
+ ms(60000) // "1m"
26
+ ms(2 * 60000) // "2m"
27
+ ms(ms('10 hours')) // "10h"
28
+ ```
29
+
30
+ ### Time format written-out
31
+
32
+ ```js
33
+ ms(60000, { long: true }) // "1 minute"
34
+ ms(2 * 60000, { long: true }) // "2 minutes"
35
+ ms(ms('10 hours'), { long: true }) // "10 hours"
36
+ ```
37
+
38
+ ## Features
39
+
40
+ - Works both in [node](https://nodejs.org) and in the browser.
41
+ - If a number is supplied to `ms`, a string with a unit is returned.
42
+ - If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
43
+ - If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
44
+
45
+ ## Caught a bug?
46
+
47
+ 1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
48
+ 2. Link the package to the global module directory: `npm link`
49
+ 3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
50
+
51
+ As always, you can run the tests using: `npm test`