Merge branch 'master' of github.com:babel/babel

This commit is contained in:
Sebastian McKenzie
2015-04-24 19:28:58 +01:00
7 changed files with 31 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ import * as babel from "../node";
import each from "lodash/collection/each";
import * as util from "../../util";
import fs from "fs";
import slash from "slash";
sourceMapSupport.install({
handleUncaughtExceptions: false,
@@ -76,6 +77,7 @@ var compile = function (filename) {
};
var shouldIgnore = function (filename) {
filename = slash(filename);
return (ignoreRegex && ignoreRegex.test(filename)) || (onlyRegex && !onlyRegex.test(filename));
};

View File

@@ -17,9 +17,17 @@ function exists(filename) {
export default function (loc, opts = {}) {
var rel = ".babelrc";
if (!opts.babelrc) {
opts.babelrc = [];
}
function find(start, rel) {
var file = path.join(start, rel);
if (opts.babelrc.indexOf(file) >= 0) {
return;
}
if (exists(file)) {
var content = fs.readFileSync(file, "utf8");
var json;
@@ -31,10 +39,18 @@ export default function (loc, opts = {}) {
throw err;
}
opts.babelrc.push(file);
if (json.breakConfig) return;
merge(opts, json, function(a, b) {
if (Array.isArray(a)) {
return a.concat(b);
var c = a.slice(0);
for (var v of b) {
if (a.indexOf(v) < 0) {
c.push(v);
}
}
return c;
}
});
}
@@ -45,7 +61,7 @@ export default function (loc, opts = {}) {
}
}
if (opts.breakConfig !== true) {
if (opts.babelrc.indexOf(loc) < 0 && opts.breakConfig !== true) {
find(loc, rel);
}

View File

@@ -206,6 +206,11 @@
"default": false,
"hidden": true,
"description": "stop trying to load .babelrc files"
},
"babelrc": {
"hidden": true,
"description": "do not load the same .babelrc file twice"
}
}

View File

@@ -18,6 +18,7 @@ import each from "lodash/collection/each";
import has from "lodash/object/has";
import fs from "fs";
import * as t from "./types";
import slash from "slash";
export { inherits, inspect } from "util";
@@ -94,6 +95,7 @@ export function booleanify(val: any): boolean {
}
export function shouldIgnore(filename, ignore, only) {
filename = slash(filename);
if (only.length) {
for (var i = 0; i < only.length; i++) {
if (only[i].test(filename)) return false;