UNPKG

@relative-ci/agent

Version:

Send bundle stats and CI build information to RelativeCI

62 lines (56 loc) 2.86 kB
'use strict'; var path = require('path'); var get = require('lodash/get'); var fsExtra = require('fs-extra'); var cosmiconfig = require('cosmiconfig'); var yargs = require('yargs/yargs'); var helpers = require('yargs/helpers'); var en = require('./locales/en.js'); var constants = require('./constants.js'); var filterArtifacts = require('./artifacts/filter-artifacts.js'); var validateWebpackStats = require('./artifacts/validate-webpack-stats.js'); var debug = require('./utils/debug.js'); var logResponse = require('./utils/log-response.js'); var normalizeParams = require('./utils/normalize-params.js'); var ingest = require('./ingest/ingest.js'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var path__default = /*#__PURE__*/_interopDefault(path); var get__default = /*#__PURE__*/_interopDefault(get); var yargs__default = /*#__PURE__*/_interopDefault(yargs); async function cli(processArgs) { const args = await yargs__default.default(helpers.hideBin(processArgs)) .usage('Usage: $0 OPTIONS') .option('config-dir', { describe: 'Config directory', default: '', alias: 'c' }) .option('commit', { describe: 'Commit SHA', default: '' }) .option('commit-message', { describe: 'Commit message', default: '', alias: 'commitMessage' }) .option('branch', { describe: 'Branch name', default: '' }) .option('pr', { describe: 'Pull Request number', default: '' }) .option('slug', { describe: 'Project slug', default: '' }) .help() .argv; const searchConfig = cosmiconfig.cosmiconfigSync('relativeci', { searchStrategy: 'global', }).search('config-dir' in args ? args['config-dir'] : undefined); debug.debug('Config', searchConfig); if (!searchConfig) { throw new Error(en.CLI_MISSING_CONFIGURATION_ERROR); } const { config } = searchConfig; if (!get__default.default(config, 'webpack.stats')) { throw new Error(en.CLI_INVALID_CONFIGURATION_ERROR); } // Load webpack stats file relative to the config file const webpackArtifactFilepath = path__default.default.join(path__default.default.dirname(searchConfig.filepath), get__default.default(config, 'webpack.stats')); if (!fsExtra.pathExistsSync(webpackArtifactFilepath)) { throw new Error(en.CLI_MISSING_STATS_FILE_ERROR); } const data = fsExtra.readJSONSync(webpackArtifactFilepath); validateWebpackStats.validateWebpackStats(data); debug.debug('CLI arguments', args); const params = normalizeParams.normalizeParams(args, config); const artifactsData = filterArtifacts.filterArtifacts([{ key: constants.SOURCE_WEBPACK_STATS, data }]); const response = await ingest(artifactsData, params, config); logResponse.logResponse(response); } module.exports = cli; //# sourceMappingURL=cli.js.map