import {disableJavaScriptURLs} from 'shared/ReactFeatureFlags';
const isJavaScriptProtocol = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i;
let didWarn = false;
function sanitizeURL(url: string) {
if (disableJavaScriptURLs) {
if (isJavaScriptProtocol.test(url)) {
throw new Error(
'React has blocked a javascript: URL as a security precaution.',
);
}
} else if (__DEV__) {
if (!didWarn && isJavaScriptProtocol.test(url)) {
didWarn = true;
console.error(
'A future version of React will block javascript: URLs as a security precaution. ' +
'Use event handlers instead if you can. If you need to generate unsafe HTML try ' +
'using dangerouslySetInnerHTML instead. React was passed %s.',
JSON.stringify(url),
);
}
}
}
export default sanitizeURL;