Sha256: 4df4597b6b459653773f29a79897500522699aca1977933987308f240d29d8ab
Contents?: true
Size: 1.89 KB
Versions: 37
Compression:
Stored size: 1.89 KB
Contents
/** * @fileoverview Provide the function that emits deprecation warnings. * @author Toru Nagashima <http://github.com/mysticatea> */ "use strict"; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const path = require("path"); //------------------------------------------------------------------------------ // Private //------------------------------------------------------------------------------ // Definitions for deprecation warnings. const deprecationWarningMessages = { ESLINT_LEGACY_ECMAFEATURES: "The 'ecmaFeatures' config file property is deprecated and has no effect." }; const sourceFileErrorCache = new Set(); /** * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted * for each unique file path, but repeated invocations with the same file path have no effect. * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active. * @param {string} source The name of the configuration source to report the warning for. * @param {string} errorCode The warning message to show. * @returns {void} */ function emitDeprecationWarning(source, errorCode) { const cacheKey = JSON.stringify({ source, errorCode }); if (sourceFileErrorCache.has(cacheKey)) { return; } sourceFileErrorCache.add(cacheKey); const rel = path.relative(process.cwd(), source); const message = deprecationWarningMessages[errorCode]; process.emitWarning( `${message} (found in "${rel}")`, "DeprecationWarning", errorCode ); } //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ module.exports = { emitDeprecationWarning };
Version data entries
37 entries across 27 versions & 2 rubygems