1 | const path = require('path');
|
2 | const resolve = require('resolve');
|
3 | const interpret = require('interpret');
|
4 |
|
5 | exports.registerFor = function (filepath, cwd) {
|
6 | var ext = path.extname(filepath);
|
7 | if (Object.keys(require.extensions).indexOf(ext) !== -1) {
|
8 | return;
|
9 | }
|
10 | if (!cwd) {
|
11 | cwd = path.dirname(path.resolve(filepath));
|
12 | }
|
13 | var moduleName = interpret.extensions[ext];
|
14 | if (moduleName) {
|
15 | var compiler = require(resolve.sync(moduleName, {basedir: cwd}));
|
16 | var register = interpret.register[moduleName];
|
17 | if (register) {
|
18 | register(compiler);
|
19 | }
|
20 | }
|
21 | }
|
22 |
|
23 | exports.load = function (filepath) {
|
24 | exports.registerFor(filepath);
|
25 | return require(filepath);
|
26 | };
|