1 | 'use strict';
|
2 |
|
3 | var through = require('through')
|
4 | , findDependencies = require('./find-dependencies')
|
5 | ;
|
6 |
|
7 | function requireDependencies(src) {
|
8 | var deps = findDependencies(src);
|
9 | if (!deps.length) return '';
|
10 | return '/* proxyquireify injected requires to make browserify include dependencies in the bundle */;' +
|
11 | deps.map(function (x) { return 'require(\'' + x + '\')'; }).join(';') + ';';
|
12 | }
|
13 |
|
14 | module.exports = function (file) {
|
15 | if (file === require.resolve('../index')) return through();
|
16 | if (!/\.js$/.test(file)) return through();
|
17 | var data = '';
|
18 |
|
19 | return through(write, end);
|
20 |
|
21 | function write (buf) { data += buf; }
|
22 | function end() {
|
23 | var deps = requireDependencies(data);
|
24 | this.queue(deps);
|
25 | this.queue(data);
|
26 | this.queue(null);
|
27 | }
|
28 | };
|