/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* License GNU General Public License version 2 or later;
* Copyright 2013-2019 Valeriy Chupurnov https://xdsoft.net
*/
import { isURL } from './checker/isURL';
import { parseQuery } from './parseQuery';
/**
* Javascript url pattern converter replace youtube/vimeo url in embed code.
*
* @param {string} url
* @param {int} [width=400]
* @param {int} [height=345]
* return {string} embed code
*/
export const convertMediaURLToVideoEmbed = (
url: string,
width: number = 400,
height: number = 345
): string => {
if (!isURL(url)) {
return url;
}
const parser: HTMLAnchorElement = document.createElement('a'),
pattern1: RegExp = /(?:http?s?:\/\/)?(?:www\.)?(?:vimeo\.com)\/?(.+)/g;
parser.href = url;
if (!width) {
width = 400;
}
if (!height) {
height = 345;
}
const protocol: string = parser.protocol || '';
switch (parser.hostname) {
case 'www.vimeo.com':
case 'vimeo.com':
return pattern1.test(url)
? url.replace(
pattern1,
''
)
: url;
case 'youtube.com':
case 'www.youtube.com':
case 'youtu.be':
case 'www.youtu.be':
const query: any = parser.search
? parseQuery(parser.search)
: { v: parser.pathname.substr(1) };
return query.v
? ''
: url;
}
return url;
};