internal: add emitExperimentalWarning function

Adds a new emitExperimentalWarning function to internal/util to warn
users that they are using an experimental feature and that feature can
change at any time.

PR-URL: https://github.com/nodejs/node/pull/16497
Refs: https://github.com/nodejs/node/issues/9036
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
This commit is contained in:
Cody Deckard 2017-10-25 12:11:10 -07:00 committed by Michaël Zasso
parent e5d4aeb6ac
commit b08c7321bd

View File

@ -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,