|
|
@ -6,6 +6,7 @@ var cachingTransform = require('caching-transform'); |
|
|
|
var objectAssign = require('object-assign'); |
|
|
|
var stripBom = require('strip-bom'); |
|
|
|
var md5Hex = require('md5-hex'); |
|
|
|
var packageHash = require('package-hash'); |
|
|
|
var enhanceAssert = require('./enhance-assert'); |
|
|
|
|
|
|
|
function CachingPrecompiler(cacheDirPath, babelConfig) { |
|
|
@ -13,7 +14,7 @@ function CachingPrecompiler(cacheDirPath, babelConfig) { |
|
|
|
throw new TypeError('Class constructor CachingPrecompiler cannot be invoked without \'new\''); |
|
|
|
} |
|
|
|
|
|
|
|
this.babelConfig = babelConfig; |
|
|
|
this.babelConfig = babelConfig || 'default'; |
|
|
|
this.cacheDirPath = cacheDirPath; |
|
|
|
this.fileHashes = {}; |
|
|
|
|
|
|
@ -93,7 +94,7 @@ CachingPrecompiler.prototype._transform = function (code, filePath, hash) { |
|
|
|
CachingPrecompiler.prototype._buildOptions = function (filePath, code) { |
|
|
|
var options = {babelrc: false}; |
|
|
|
|
|
|
|
if (!this.babelConfig || this.babelConfig === 'default') { |
|
|
|
if (this.babelConfig === 'default') { |
|
|
|
objectAssign(options, {presets: this.defaultPresets}); |
|
|
|
} else if (this.babelConfig === 'inherit') { |
|
|
|
objectAssign(options, {babelrc: true}); |
|
|
@ -159,14 +160,11 @@ CachingPrecompiler.prototype._createEspowerPlugin = function () { |
|
|
|
}; |
|
|
|
|
|
|
|
CachingPrecompiler.prototype._createTransform = function () { |
|
|
|
var dependencies = { |
|
|
|
'babel-plugin-espower': require('babel-plugin-espower/package.json').version, |
|
|
|
'ava': require('../package.json').version, |
|
|
|
'babel-core': require('babel-core/package.json').version, |
|
|
|
'babelConfig': this.babelConfig |
|
|
|
}; |
|
|
|
|
|
|
|
var salt = new Buffer(JSON.stringify(dependencies)); |
|
|
|
var salt = packageHash.sync([ |
|
|
|
require.resolve('../package.json'), |
|
|
|
require.resolve('babel-core/package.json'), |
|
|
|
require.resolve('babel-plugin-espower/package.json') |
|
|
|
], JSON.stringify(this.babelConfig)); |
|
|
|
|
|
|
|
return cachingTransform({ |
|
|
|
factory: this._factory, |
|
|
|