import { escapeHTML } from '@wordpress/escape-html';
import { decodeEntities } from '@wordpress/html-entities';
import type { Attributes } from '../types';
export const encode = (code: string, { useDecodeURI }: Partial) => {
if (useDecodeURI) {
try {
// Here for bw compatability
return encodeURIComponent(code);
} catch (e) {
console.error(e);
return code;
}
}
return escapeHTML(code);
};
export const decode = (code: string, { useDecodeURI }: Partial) => {
if (useDecodeURI) {
try {
// Here for bw compatability
return decodeURIComponent(code);
} catch (e) {
console.error(e);
return code;
}
}
return decodeEntities(code);
};
export const escapeShortcodes = (content: string) =>
content.replaceAll(/\[([^[\]]+)\]/g, (match) =>
match.replace('[', '[').replace(']', ']'),
);