21 lines
581 B
TypeScript
21 lines
581 B
TypeScript
/**
|
|
* This source code is derived from code from Meta Platforms, Inc.
|
|
* and affiliates, licensed under the MIT license located in the
|
|
* LICENSE file in the /src/features/compose/editor directory.
|
|
*/
|
|
|
|
const SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:']);
|
|
|
|
export const sanitizeUrl = (url: string): string => {
|
|
try {
|
|
const parsedUrl = new URL(url);
|
|
// eslint-disable-next-line no-script-url
|
|
if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {
|
|
return 'about:blank';
|
|
}
|
|
} catch {
|
|
return url;
|
|
}
|
|
return url;
|
|
};
|