UNPKG

spinjs

Version:

[![Join the chat at https://gitter.im/sysgears/spinjs](https://badges.gitter.im/sysgears/spinjs.svg)](https://gitter.im/sysgears/spinjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![npm version](https://badge.fury.io/js/spi

57 lines 2.43 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 glob_1 = require("glob"); var _ = require("lodash"); 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 (builderOverrides) { var _this = this; var packageRootPaths = this._detectRootPaths(); return packageRootPaths.reduce(function (res, pathName) { return __assign({}, res, _this._discoverRecursively(pathName, builderOverrides)); }, {}); }; BuilderDiscoverer.prototype._discoverRecursively = function (dir, builderOverrides) { if (path.basename(dir) === '.expo') { return undefined; } var builders = this.configReader.readConfig({ filePath: this.argv.c ? path.join(dir, this.argv.c) : dir, builderOverrides: builderOverrides }); var files = fs.readdirSync(dir); for (var _i = 0, files_1 = files; _i < files_1.length; _i++) { var name = files_1[_i]; var dirPath = path.join(dir, name); if (name !== 'node_modules' && fs.statSync(dirPath).isDirectory()) { builders = __assign({}, builders, this._discoverRecursively(dirPath, builderOverrides)); } } return builders; }; BuilderDiscoverer.prototype._detectRootPaths = function () { var _this = this; var rootConfig = JSON.parse(fs.readFileSync(this.cwd + "/package.json", 'utf8')); return rootConfig.workspaces && rootConfig.workspaces.length ? _.flatten(rootConfig.workspaces.map(function (ws) { return glob_1.glob.sync(ws); })).map(function (ws) { return path.join(_this.cwd, ws); }) : [this.cwd]; }; return BuilderDiscoverer; }()); exports.default = BuilderDiscoverer; //# sourceMappingURL=BuilderDiscoverer.js.map