resolve-rc.js 559 B

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. var path = require("path");
  3. var exists = require("./utils/exists")({});
  4. var read = require("./utils/read")({});
  5. var cache = {};
  6. var find = function find(start, rel) {
  7. var file = path.join(start, rel);
  8. if (exists(file)) {
  9. return read(file);
  10. }
  11. var up = path.dirname(start);
  12. if (up !== start) {
  13. return find(up, rel);
  14. }
  15. };
  16. module.exports = function (loc, rel) {
  17. rel = rel || ".babelrc";
  18. var cacheKey = loc + "/" + rel;
  19. if (!(cacheKey in cache)) {
  20. cache[cacheKey] = find(loc, rel);
  21. }
  22. return cache[cacheKey];
  23. };