Skip to content

Commit

Permalink
One more approach
Browse files Browse the repository at this point in the history
  • Loading branch information
Georgiy Abbasov committed Feb 15, 2017
1 parent 219fe15 commit 5e0f21d
Showing 1 changed file with 7 additions and 44 deletions.
51 changes: 7 additions & 44 deletions src/compiler/es-next/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,17 @@ export default class ESNextCompiler {
return Module._nodeModulePaths(dir);
}

static _getBabelOptions1 (filename) {
static _getBabelOptions (filename) {
var { presetStage2, transformRuntime, presetEnv } = loadBabelLibs();

// NOTE: passPrePreset and complex presets is a workaround for https://github.com/babel/babel/issues/2877
// Fixes https://github.com/DevExpress/testcafe/issues/969
return {
passPerPreset: true,
presets: [
{ plugins: transformRuntime },
{
passPerPreset: false,
presets: [presetStage2, presetEnv]
presets: [{ plugins: [transformRuntime] }, presetStage2, presetEnv]
}
],
filename: filename,
Expand Down Expand Up @@ -69,39 +68,6 @@ export default class ESNextCompiler {
};
}

static _getBabelOptions2 (filename) {
var { presetStage2, transformRuntime, presetEnv } = loadBabelLibs();

// NOTE: passPrePreset and complex presets is a workaround for https://github.com/babel/babel/issues/2877
// Fixes https://github.com/DevExpress/testcafe/issues/969
return {
presets: [presetStage2, presetEnv],
plugins: [[transformRuntime, { polyfill: false }]],
filename: filename,
sourceMaps: true,
retainLines: true,
ast: false,
babelrc: false,
highlightCode: false,

resolveModuleSource: source => {
if (source === 'testcafe')
return COMMON_API_PATH;

if (BABEL_RUNTIME_RE.test(source)) {
try {
return require.resolve(source);
}
catch (err) {
return source;
}
}

return source;
}
};
}

static _isNodeModulesDep (filename) {
return relative(CWD, filename)
.split(pathSep)
Expand Down Expand Up @@ -136,16 +102,13 @@ export default class ESNextCompiler {
if (this.cache[filename])
return this.cache[filename];

var opts1 = ESNextCompiler._getBabelOptions2(filename);
var compiled1 = babel.transform(code, opts1);

var opts2 = ESNextCompiler._getBabelOptions1(filename);
var compiled2 = babel.transform(compiled1.code, opts2);
var opts = ESNextCompiler._getBabelOptions(filename);
var compiled = babel.transform(code, opts);

this.cache[filename] = compiled2.code;
this.sourceMaps[filename] = compiled2.map;
this.cache[filename] = compiled.code;
this.sourceMaps[filename] = compiled.map;

return compiled2.code;
return compiled.code;
}

_setupRequireHook (globals) {
Expand Down

0 comments on commit 5e0f21d

Please sign in to comment.