-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathguess.js
executable file
·61 lines (50 loc) · 1.6 KB
/
guess.js
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const COMPILER_NAME = require('./package.json').name + '/guess';
var path = require('path'),
resolveBabelrc = require('./lib/babelrc-util').resolveBabelrc,
pattern = 'test/**/*.js',
packageData,
testDir,
babelrc,
extension = '.js';
// When guess.js is loaded in a process
// with an argument like <extension>:espower-babel/guess,
// such as `mocha --compilers <extension>:espower-babel/guess`,
// override extension with the specified one.
process.argv.forEach(function (arg) {
if (arg.indexOf(':') === -1) {
return;
}
var parts = arg.split(':');
var ext = parts[0];
var compilerPath = parts[1];
// We should handle the relative path `./guess`
// to make our very own tests work.
if (compilerPath === './guess') {
var compilerFullPath;
try {
compilerFullPath = require.resolve(compilerPath);
} catch(err) {}
if (compilerFullPath !== module.filename) {
return;
}
compilerPath = COMPILER_NAME;
}
if (compilerPath !== COMPILER_NAME) {
return;
}
extension = '.' + ext;
});
packageData = require(path.join(process.cwd(), 'package.json'));
if (packageData &&
typeof packageData.directories === 'object' &&
typeof packageData.directories.test === 'string') {
testDir = packageData.directories.test;
pattern = testDir + ((testDir.lastIndexOf('/', 0) === 0) ? '' : '/') + '**/*' + extension;
}
babelrc = resolveBabelrc(process.cwd(), {});
require('./index')({
cwd: process.cwd(),
pattern: pattern,
babelrc: babelrc,
extension: extension
});