UNPKG

osls

Version:

Open-source alternative to Serverless Framework

69 lines (58 loc) 2.24 kB
'use strict'; const { writeText, style } = require('@serverless/utils/log'); const { version } = require('../../../package'); const globalOptions = require('../commands-schema/common-options/global'); const resolveInput = require('../resolve-input'); const generateCommandUsage = require('./generate-command-usage'); const renderOptions = require('./options'); module.exports = (loadedPlugins) => { const { commandsSchema } = resolveInput(); writeText( `Serverless Framework v${version}`, null, style.aside('Usage'), 'serverless <command> <options>', 'sls <command> <options>', null, style.aside('Options') ); renderOptions(globalOptions, { shouldWriteModernOnly: true }); const allCommands = new Map( Array.from(commandsSchema).filter(([commandName, { isHidden }]) => commandName && !isHidden) ); const mainCommands = new Map( Array.from(allCommands).filter(([, { groupName }]) => groupName === 'main') ); if (mainCommands.size) { writeText(null, style.aside('Main commands')); for (const [commandName, commandSchema] of mainCommands) { writeText(generateCommandUsage(commandName, commandSchema)); } writeText(null, style.aside('Other commands')); } else { writeText(null, style.aside('All commands')); } const extensionCommandsSchema = new Map(); for (const [commandName, commandSchema] of allCommands) { if (commandSchema.isExtension) { if (!extensionCommandsSchema.has(commandSchema.sourcePlugin)) { extensionCommandsSchema.set(commandSchema.sourcePlugin, new Map()); } extensionCommandsSchema.get(commandSchema.sourcePlugin).set(commandName, commandSchema); continue; } if (commandSchema.groupName === 'main') continue; writeText(generateCommandUsage(commandName, commandSchema)); } if (loadedPlugins.size) { if (extensionCommandsSchema.size) { for (const [plugin, pluginCommandsSchema] of extensionCommandsSchema) { writeText(null, style.aside(plugin.constructor.name)); for (const [commandName, commandSchema] of pluginCommandsSchema) { writeText(generateCommandUsage(commandName, commandSchema)); } } } } writeText(); };