isomorphic-dompurify
Version:
Makes it possible to use DOMPurify on server and client in the same way.
44 lines (43 loc) • 1.35 kB
JavaScript
// src/index.ts
import DOMPurifyFactory from "dompurify";
import { JSDOM } from "jsdom";
var window = new JSDOM("<!DOCTYPE html>").window;
var purify = DOMPurifyFactory(window);
var DOMPurify = new Proxy({}, {
get(_, prop) {
const value = purify[prop];
return typeof value === "function" ? value.bind(purify) : value;
}
});
var src_default = DOMPurify;
var sanitize = ((dirty, config) => purify.sanitize(dirty, config));
var isSupported = DOMPurify.isSupported;
var addHook = ((entryPoint, hookFunction) => purify.addHook(entryPoint, hookFunction));
var removeHook = ((entryPoint) => purify.removeHook(entryPoint));
var removeHooks = ((entryPoint) => purify.removeHooks(entryPoint));
var removeAllHooks = (() => purify.removeAllHooks());
var setConfig = ((config) => purify.setConfig(config));
var clearConfig = (() => purify.clearConfig());
var isValidAttribute = ((tag, attr, value) => purify.isValidAttribute(tag, attr, value));
var version = DOMPurify.version;
var removed = DOMPurify.removed;
function clearWindow() {
window.close();
window = new JSDOM("<!DOCTYPE html>").window;
purify = DOMPurifyFactory(window);
}
export {
addHook,
clearConfig,
clearWindow,
src_default as default,
isSupported,
isValidAttribute,
removeAllHooks,
removeHook,
removeHooks,
removed,
sanitize,
setConfig,
version
};