UNPKG

spinjs

Version:

<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spinjs/master/logo.svg"></a></p>

51 lines 1.97 kB
"use strict"; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var fs = require("fs"); var path = require("path"); var ConfigReader_1 = require("./ConfigReader"); var BuilderDiscoverer = (function () { function BuilderDiscoverer(spin, plugins, argv) { this.configReader = new ConfigReader_1.default(spin, plugins); this.cwd = spin.cwd; this.argv = argv; } BuilderDiscoverer.prototype.discover = function () { return this._discoverRecursively(this.cwd); }; BuilderDiscoverer.prototype._discoverRecursively = function (dir) { var builders; if (this.argv.c) { builders = this.configReader.readConfig(path.join(dir, this.argv.c)); } else { var candidates = ['package.json', '.spinrc.json', '.spinrc', '.spinrc.js']; for (var _i = 0, candidates_1 = candidates; _i < candidates_1.length; _i++) { var fileName = candidates_1[_i]; builders = this.configReader.readConfig(path.join(dir, fileName)); if (builders) { break; } } } var files = fs.readdirSync(dir); for (var _a = 0, files_1 = files; _a < files_1.length; _a++) { var name = files_1[_a]; var dirPath = path.join(dir, name); if (name !== 'node_modules' && fs.statSync(dirPath).isDirectory()) { builders = __assign({}, builders, this._discoverRecursively(dirPath)); } } return builders; }; return BuilderDiscoverer; }()); exports.default = BuilderDiscoverer; //# sourceMappingURL=BuilderDiscoverer.js.map