UNPKG

@nlabs/lex

Version:
47 lines (46 loc) 6.16 kB
/** * Copyright (c) 2018-Present, Nitrogen Labs, Inc. * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. */ import { writeFileSync } from 'fs'; import startCase from 'lodash/startCase.js'; import { relative as pathRelative } from 'path'; import { LexConfig } from '../../LexConfig.js'; import { createSpinner } from '../../utils/app.js'; import { log } from '../../utils/log.js'; export const config = async (type, cmd, callback = ()=>({}))=>{ const { cliName = 'Lex', json, quiet } = cmd; const validTypes = [ 'app', 'jest', 'webpack' ]; if (!validTypes.includes(type)) { log(`\n${cliName} Error: Option for ${type} not found. Configurations only available for app, jest, and webpack.`, 'error', quiet); callback(1); return Promise.resolve(1); } log(`${cliName} generating configuration for ${startCase(type)}...`, 'info', quiet); await LexConfig.parseConfig(cmd); let configOptions; switch(type){ case 'app': configOptions = LexConfig.config; break; case 'jest': configOptions = import('../../../jest.config.mjs'); break; case 'webpack': configOptions = import('../../../webpack.config.js'); break; } const jsonOutput = JSON.stringify(configOptions, null, 2); if (json) { const spinner = createSpinner(quiet); spinner.start('Creating JSON output...'); writeFileSync(json, jsonOutput); spinner.succeed(`Successfully saved JSON output to ${pathRelative(process.cwd(), json)}`); } callback(0); return Promise.resolve(0); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9jb25maWcvY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3dyaXRlRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCBzdGFydENhc2UgZnJvbSAnbG9kYXNoL3N0YXJ0Q2FzZS5qcyc7XG5pbXBvcnQge3JlbGF0aXZlIGFzIHBhdGhSZWxhdGl2ZX0gZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7TGV4Q29uZmlnfSBmcm9tICcuLi8uLi9MZXhDb25maWcuanMnO1xuaW1wb3J0IHtjcmVhdGVTcGlubmVyfSBmcm9tICcuLi8uLi91dGlscy9hcHAuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4uLy4uL3V0aWxzL2xvZy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGpzb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgQ29uZmlnQ2FsbGJhY2sgPSAoc3RhdHVzOiBudW1iZXIpPT4gdm9pZDtcblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IGFzeW5jIChcbiAgdHlwZTogc3RyaW5nLFxuICBjbWQ6IENvbmZpZ09wdGlvbnMsXG4gIGNhbGxiYWNrOiBDb25maWdDYWxsYmFjayA9ICgpID0+ICh7fSlcbik6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIGNvbnN0IHtjbGlOYW1lID0gJ0xleCcsIGpzb24sIHF1aWV0fSA9IGNtZDtcbiAgY29uc3QgdmFsaWRUeXBlczogc3RyaW5nW10gPSBbJ2FwcCcsICdqZXN0JywgJ3dlYnBhY2snXTtcblxuICBpZighdmFsaWRUeXBlcy5pbmNsdWRlcyh0eXBlKSkge1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogT3B0aW9uIGZvciAke3R5cGV9IG5vdCBmb3VuZC4gQ29uZmlndXJhdGlvbnMgb25seSBhdmFpbGFibGUgZm9yIGFwcCwgamVzdCwgYW5kIHdlYnBhY2suYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgIGNhbGxiYWNrKDEpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoMSk7XG4gIH1cblxuICBsb2coYCR7Y2xpTmFtZX0gZ2VuZXJhdGluZyBjb25maWd1cmF0aW9uIGZvciAke3N0YXJ0Q2FzZSh0eXBlKX0uLi5gLCAnaW5mbycsIHF1aWV0KTtcblxuICBhd2FpdCBMZXhDb25maWcucGFyc2VDb25maWcoY21kKTtcblxuICBsZXQgY29uZmlnT3B0aW9ucztcblxuICBzd2l0Y2godHlwZSkge1xuICAgIGNhc2UgJ2FwcCc6XG4gICAgICBjb25maWdPcHRpb25zID0gTGV4Q29uZmlnLmNvbmZpZztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2plc3QnOlxuICAgICAgY29uZmlnT3B0aW9ucyA9IGltcG9ydCgnLi4vLi4vLi4vamVzdC5jb25maWcubWpzJyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd3ZWJwYWNrJzpcbiAgICAgIGNvbmZpZ09wdGlvbnMgPSBpbXBvcnQoJy4uLy4uLy4uL3dlYnBhY2suY29uZmlnLmpzJyk7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGNvbnN0IGpzb25PdXRwdXQ6IHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZ09wdGlvbnMsIG51bGwsIDIpO1xuXG4gIGlmKGpzb24pIHtcbiAgICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgICBzcGlubmVyLnN0YXJ0KCdDcmVhdGluZyBKU09OIG91dHB1dC4uLicpO1xuXG4gICAgd3JpdGVGaWxlU3luYyhqc29uLCBqc29uT3V0cHV0KTtcblxuICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IHNhdmVkIEpTT04gb3V0cHV0IHRvICR7cGF0aFJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIGpzb24pfWApO1xuICB9XG5cbiAgY2FsbGJhY2soMCk7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoMCk7XG59OyJdLCJuYW1lcyI6WyJ3cml0ZUZpbGVTeW5jIiwic3RhcnRDYXNlIiwicmVsYXRpdmUiLCJwYXRoUmVsYXRpdmUiLCJMZXhDb25maWciLCJjcmVhdGVTcGlubmVyIiwibG9nIiwiY29uZmlnIiwidHlwZSIsImNtZCIsImNhbGxiYWNrIiwiY2xpTmFtZSIsImpzb24iLCJxdWlldCIsInZhbGlkVHlwZXMiLCJpbmNsdWRlcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicGFyc2VDb25maWciLCJjb25maWdPcHRpb25zIiwianNvbk91dHB1dCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzcGlubmVyIiwic3RhcnQiLCJzdWNjZWVkIiwicHJvY2VzcyIsImN3ZCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsYUFBYSxRQUFPLEtBQUs7QUFDakMsT0FBT0MsZUFBZSxzQkFBc0I7QUFDNUMsU0FBUUMsWUFBWUMsWUFBWSxRQUFPLE9BQU87QUFFOUMsU0FBUUMsU0FBUyxRQUFPLHFCQUFxQjtBQUM3QyxTQUFRQyxhQUFhLFFBQU8scUJBQXFCO0FBQ2pELFNBQVFDLEdBQUcsUUFBTyxxQkFBcUI7QUFVdkMsT0FBTyxNQUFNQyxTQUFTLE9BQ3BCQyxNQUNBQyxLQUNBQyxXQUEyQixJQUFPLENBQUEsQ0FBQyxDQUFBLENBQUU7SUFFckMsTUFBTSxFQUFDQyxVQUFVLEtBQUssRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUMsR0FBR0o7SUFDdkMsTUFBTUssYUFBdUI7UUFBQztRQUFPO1FBQVE7S0FBVTtJQUV2RCxJQUFHLENBQUNBLFdBQVdDLFFBQVEsQ0FBQ1AsT0FBTztRQUM3QkYsSUFBSSxDQUFDLEVBQUUsRUFBRUssUUFBUSxtQkFBbUIsRUFBRUgsS0FBSyxxRUFBcUUsQ0FBQyxFQUFFLFNBQVNLO1FBQzVISCxTQUFTO1FBQ1QsT0FBT00sUUFBUUMsT0FBTyxDQUFDO0lBQ3pCO0lBRUFYLElBQUksR0FBR0ssUUFBUSw4QkFBOEIsRUFBRVYsVUFBVU8sTUFBTSxHQUFHLENBQUMsRUFBRSxRQUFRSztJQUU3RSxNQUFNVCxVQUFVYyxXQUFXLENBQUNUO0lBRTVCLElBQUlVO0lBRUosT0FBT1g7UUFDTCxLQUFLO1lBQ0hXLGdCQUFnQmYsVUFBVUcsTUFBTTtZQUNoQztRQUNGLEtBQUs7WUFDSFksZ0JBQWdCLE1BQU0sQ0FBQztZQUN2QjtRQUNGLEtBQUs7WUFDSEEsZ0JBQWdCLE1BQU0sQ0FBQztZQUN2QjtJQUNKO0lBRUEsTUFBTUMsYUFBcUJDLEtBQUtDLFNBQVMsQ0FBQ0gsZUFBZSxNQUFNO0lBRS9ELElBQUdQLE1BQU07UUFDUCxNQUFNVyxVQUFVbEIsY0FBY1E7UUFFOUJVLFFBQVFDLEtBQUssQ0FBQztRQUVkeEIsY0FBY1ksTUFBTVE7UUFFcEJHLFFBQVFFLE9BQU8sQ0FBQyxDQUFDLGtDQUFrQyxFQUFFdEIsYUFBYXVCLFFBQVFDLEdBQUcsSUFBSWYsT0FBTztJQUMxRjtJQUVBRixTQUFTO0lBQ1QsT0FBT00sUUFBUUMsT0FBTyxDQUFDO0FBQ3pCLEVBQUUifQ==