diff --git a/lib/internal/util.js b/lib/internal/util.js index c0050c930b4142..4b5fa21e7ac474 100644 --- a/lib/internal/util.js +++ b/lib/internal/util.js @@ -15,6 +15,8 @@ const { const noCrypto = !process.versions.openssl; +const experimentalWarnings = new Set(); + function isError(e) { return objectToString(e) === '[object Error]' || e instanceof Error; } @@ -127,6 +129,14 @@ function normalizeEncoding(enc) { } } +function emitExperimentalWarning(feature) { + if (experimentalWarnings.has(feature)) return; + const msg = `${feature} is an experimental feature. This feature could ` + + 'change at any time'; + experimentalWarnings.add(feature); + process.emitWarning(msg, 'ExperimentalWarning'); +} + function filterDuplicateStrings(items, low) { const map = new Map(); for (var i = 0; i < items.length; i++) { @@ -297,6 +307,7 @@ module.exports = { createClassWrapper, decorateErrorStack, deprecate, + emitExperimentalWarning, filterDuplicateStrings, getConstructorOf, isError,