mirror of
https://github.com/serverless/serverless.git
synced 2026-01-18 14:58:43 +00:00
feat(CLI): Add deprecation summary for modern logs
This commit is contained in:
parent
7828cc77f1
commit
7eba95fcb7
@ -4,6 +4,7 @@ const chalk = require('chalk');
|
||||
const weakMemoizee = require('memoizee/weak');
|
||||
const _ = require('lodash');
|
||||
const ServerlessError = require('../serverless-error');
|
||||
const { style, legacy, log } = require('@serverless/utils/log');
|
||||
|
||||
const disabledDeprecationCodesByEnv = extractCodes(process.env.SLS_DEPRECATION_DISABLE);
|
||||
|
||||
@ -12,6 +13,8 @@ const notificationModeByEnv = process.env.SLS_DEPRECATION_NOTIFICATION_MODE;
|
||||
const triggeredDeprecations = new Set();
|
||||
const bufferedDeprecations = [];
|
||||
|
||||
const deprecationLogger = log.get('deprecation');
|
||||
|
||||
function extractCodes(codesStr) {
|
||||
if (!codesStr) {
|
||||
return new Set();
|
||||
@ -54,11 +57,9 @@ function writeDeprecation(code, message) {
|
||||
messageLines[i] = followingLinesPrefix + messageLines[i];
|
||||
}
|
||||
message = messageLines.join('\n');
|
||||
process.stdout.write(
|
||||
`Serverless: ${chalk.keyword('orange')(`Deprecation warning: ${message}`)}\n`
|
||||
);
|
||||
legacy.write(`Serverless: ${chalk.keyword('orange')(`Deprecation warning: ${message}`)}\n`);
|
||||
if (!code.startsWith('EXT_')) {
|
||||
process.stdout.write(
|
||||
legacy.write(
|
||||
` ${chalk.keyword('orange')(
|
||||
`More Info: https://www.serverless.com/framework/docs/deprecations/#${code}`
|
||||
)}\n`
|
||||
@ -113,15 +114,27 @@ module.exports.flushBuffered = () => {
|
||||
|
||||
module.exports.printSummary = () => {
|
||||
if (!bufferedDeprecations.length) return;
|
||||
|
||||
deprecationLogger.warning();
|
||||
|
||||
try {
|
||||
if (bufferedDeprecations.length === 1) {
|
||||
deprecationLogger.warning(
|
||||
style.aside("1 deprecation found: run 'serverless doctor' for more details")
|
||||
);
|
||||
const { code, message } = bufferedDeprecations[0];
|
||||
writeDeprecation(code, message);
|
||||
return;
|
||||
}
|
||||
|
||||
deprecationLogger.warning(
|
||||
style.aside(
|
||||
`${bufferedDeprecations.length} deprecations found: run 'serverless doctor' for more details`
|
||||
)
|
||||
);
|
||||
|
||||
const prefix = 'Serverless: ';
|
||||
process.stdout.write(`${prefix}${chalk.bold.keyword('orange')('Deprecation warnings:')}\n\n`);
|
||||
legacy.write(`${prefix}${chalk.bold.keyword('orange')('Deprecation warnings:')}\n\n`);
|
||||
for (const { code, message } of bufferedDeprecations) {
|
||||
const messageLines = chalk.bold(message).split('\n');
|
||||
if (!code.startsWith('EXT_')) {
|
||||
@ -130,7 +143,7 @@ module.exports.printSummary = () => {
|
||||
);
|
||||
}
|
||||
|
||||
process.stdout.write(chalk.keyword('orange')(`${messageLines.join('\n')}\n\n`));
|
||||
legacy.write(chalk.keyword('orange')(`${messageLines.join('\n')}\n\n`));
|
||||
}
|
||||
} finally {
|
||||
bufferedDeprecations.length = 0;
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
"@serverless/components": "^3.17.0",
|
||||
"@serverless/dashboard-plugin": "^5.4.4",
|
||||
"@serverless/platform-client": "^4.3.0",
|
||||
"@serverless/utils": "^5.12.0",
|
||||
"@serverless/utils": "^5.13.0",
|
||||
"ajv": "^6.12.6",
|
||||
"ajv-keywords": "^3.5.2",
|
||||
"archiver": "^5.3.0",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user