@snap/camera-kit
Version:
Camera Kit Web
30 lines • 1.17 kB
JavaScript
const handlers = new Map();
export function getTrustedTypesHandler(trustedTypesPolicyName) {
const cached = handlers.get(trustedTypesPolicyName);
if (cached)
return cached;
const handler = createHandler(trustedTypesPolicyName);
handlers.set(trustedTypesPolicyName, handler);
return handler;
}
function createHandler(trustedTypesPolicyName) {
const trustedUrls = new Set();
const trustedTypes = globalThis.trustedTypes;
const policy = trustedTypes === null || trustedTypes === void 0 ? void 0 : trustedTypes.createPolicy(trustedTypesPolicyName, {
createScriptURL: (url) => {
if (trustedUrls.has(url))
return url;
throw new TypeError("Blocked by Trusted Types: " + url);
},
});
return {
policyName: trustedTypesPolicyName,
getTrustedUrls: () => [...trustedUrls],
trustUrl: (url) => {
var _a;
trustedUrls.add(url);
return (_a = policy === null || policy === void 0 ? void 0 : policy.createScriptURL(url)) !== null && _a !== void 0 ? _a : url;
},
};
}
//# sourceMappingURL=trustedTypesHandler.js.map