| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- "use strict";
- exports.__esModule = true;
- var _keys = require("babel-runtime/core-js/object/keys");
- var _keys2 = _interopRequireDefault(_keys);
- var _stringify = require("babel-runtime/core-js/json/stringify");
- var _stringify2 = _interopRequireDefault(_stringify);
- exports.default = function () {
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- if (opts.only != null) only = _babelCore.util.arrayify(opts.only, _babelCore.util.regexify);
- if (opts.ignore != null) ignore = _babelCore.util.arrayify(opts.ignore, _babelCore.util.regexify);
- if (opts.extensions) hookExtensions(_babelCore.util.arrayify(opts.extensions));
- if (opts.cache === false) cache = null;
- delete opts.extensions;
- delete opts.ignore;
- delete opts.cache;
- delete opts.only;
- (0, _extend2.default)(transformOpts, opts);
- };
- var _cloneDeep = require("lodash/cloneDeep");
- var _cloneDeep2 = _interopRequireDefault(_cloneDeep);
- var _sourceMapSupport = require("source-map-support");
- var _sourceMapSupport2 = _interopRequireDefault(_sourceMapSupport);
- var _cache = require("./cache");
- var registerCache = _interopRequireWildcard(_cache);
- var _extend = require("lodash/extend");
- var _extend2 = _interopRequireDefault(_extend);
- var _babelCore = require("babel-core");
- var babel = _interopRequireWildcard(_babelCore);
- var _fs = require("fs");
- var _fs2 = _interopRequireDefault(_fs);
- var _path = require("path");
- var _path2 = _interopRequireDefault(_path);
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- _sourceMapSupport2.default.install({
- handleUncaughtExceptions: false,
- environment: "node",
- retrieveSourceMap: function retrieveSourceMap(source) {
- var map = maps && maps[source];
- if (map) {
- return {
- url: null,
- map: map
- };
- } else {
- return null;
- }
- }
- });
- registerCache.load();
- var cache = registerCache.get();
- var transformOpts = {};
- var ignore = void 0;
- var only = void 0;
- var oldHandlers = {};
- var maps = {};
- var cwd = process.cwd();
- function getRelativePath(filename) {
- return _path2.default.relative(cwd, filename);
- }
- function mtime(filename) {
- return +_fs2.default.statSync(filename).mtime;
- }
- function compile(filename) {
- var result = void 0;
- var opts = new _babelCore.OptionManager().init((0, _extend2.default)({ sourceRoot: _path2.default.dirname(filename) }, (0, _cloneDeep2.default)(transformOpts), { filename: filename }));
- var cacheKey = (0, _stringify2.default)(opts) + ":" + babel.version;
- var env = process.env.BABEL_ENV || process.env.NODE_ENV;
- if (env) cacheKey += ":" + env;
- if (cache) {
- var cached = cache[cacheKey];
- if (cached && cached.mtime === mtime(filename)) {
- result = cached;
- }
- }
- if (!result) {
- result = babel.transformFileSync(filename, (0, _extend2.default)(opts, {
- babelrc: false,
- sourceMaps: "both",
- ast: false
- }));
- }
- if (cache) {
- cache[cacheKey] = result;
- result.mtime = mtime(filename);
- }
- maps[filename] = result.map;
- return result.code;
- }
- function shouldIgnore(filename) {
- if (!ignore && !only) {
- return getRelativePath(filename).split(_path2.default.sep).indexOf("node_modules") >= 0;
- } else {
- return _babelCore.util.shouldIgnore(filename, ignore || [], only);
- }
- }
- function loader(m, filename) {
- m._compile(compile(filename), filename);
- }
- function registerExtension(ext) {
- var old = oldHandlers[ext] || oldHandlers[".js"] || require.extensions[".js"];
- require.extensions[ext] = function (m, filename) {
- if (shouldIgnore(filename)) {
- old(m, filename);
- } else {
- loader(m, filename, old);
- }
- };
- }
- function hookExtensions(_exts) {
- (0, _keys2.default)(oldHandlers).forEach(function (ext) {
- var old = oldHandlers[ext];
- if (old === undefined) {
- delete require.extensions[ext];
- } else {
- require.extensions[ext] = old;
- }
- });
- oldHandlers = {};
- _exts.forEach(function (ext) {
- oldHandlers[ext] = require.extensions[ext];
- registerExtension(ext);
- });
- }
- hookExtensions(_babelCore.util.canCompile.EXTENSIONS);
- module.exports = exports["default"];
|