Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Jan 9, 2025. It is now read-only.

Commit c88a7a6

Browse files
rzhade3lgarron
andcommitted
Update to use variable instead of class
Co-authored-by: Lucas Garron <[email protected]>
1 parent 5269718 commit c88a7a6

File tree

4 files changed

+12
-14
lines changed

4 files changed

+12
-14
lines changed

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ export {html} from './html.js'
55
export {isDirective, directive} from './directive.js'
66
export {until} from './until.js'
77
export {unsafeHTML} from './unsafe-html.js'
8-
export {TrustedTypesPolicy} from './trusted-types.js'
8+
export {setCSPTrustedTypesPolicy} from './trusted-types.js'

src/template-result.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {TemplateInstance, NodeTemplatePart} from '@github/template-parts'
22
import type {TemplateTypeInit} from '@github/template-parts'
3-
import {TrustedTypesPolicy} from './trusted-types.js'
3+
import {getCSPTrustedTypesPolicy} from './trusted-types.js'
44

55
const templates = new WeakMap<TemplateStringsArray, HTMLTemplateElement>()
66
const renderedTemplates = new WeakMap<Node | NodeTemplatePart, HTMLTemplateElement>()
@@ -20,9 +20,7 @@ export class TemplateResult {
2020
const template = document.createElement('template')
2121
const end = this.strings.length - 1
2222
const html = this.strings.reduce((str, cur, i) => str + cur + (i < end ? `{{ ${i} }}` : ''), '')
23-
const trustedHtml = TrustedTypesPolicy.cspTrustedTypesPolicy
24-
? (TrustedTypesPolicy.cspTrustedTypesPolicy.createHTML(html) as string)
25-
: html
23+
const trustedHtml = getCSPTrustedTypesPolicy() ? (getCSPTrustedTypesPolicy()?.createHTML(html) as string) : html
2624
template.innerHTML = trustedHtml
2725
templates.set(this.strings, template)
2826
return template

src/trusted-types.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ interface CSPTrustedTypesPolicy {
66
createHTML: (s: string) => CSPTrustedHTMLToStringable
77
}
88

9-
export class TrustedTypesPolicy {
10-
static cspTrustedTypesPolicy: CSPTrustedTypesPolicy | null = null
9+
let cspTrustedTypesPolicy: CSPTrustedTypesPolicy | null = null
1110

12-
static setTrustedTypesPolicy(policy: CSPTrustedTypesPolicy | null): void {
13-
TrustedTypesPolicy.cspTrustedTypesPolicy = policy
14-
}
11+
export function getCSPTrustedTypesPolicy() {
12+
return cspTrustedTypesPolicy
13+
}
14+
15+
export function setCSPTrustedTypesPolicy(policy: CSPTrustedTypesPolicy | null) {
16+
cspTrustedTypesPolicy = policy
1517
}

src/unsafe-html.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
import {directive} from './directive.js'
22
import {NodeTemplatePart} from '@github/template-parts'
33
import type {TemplatePart} from '@github/template-parts'
4-
import {TrustedTypesPolicy} from './trusted-types.js'
4+
import {getCSPTrustedTypesPolicy} from './trusted-types.js'
55

66
export const unsafeHTML = directive((value: string) => (part: TemplatePart) => {
77
if (!(part instanceof NodeTemplatePart)) return
88
const template = document.createElement('template')
9-
const trustedValue = TrustedTypesPolicy.cspTrustedTypesPolicy
10-
? (TrustedTypesPolicy.cspTrustedTypesPolicy.createHTML(value) as string)
11-
: value
9+
const trustedValue = getCSPTrustedTypesPolicy() ? (getCSPTrustedTypesPolicy()?.createHTML(value) as string) : value
1210
template.innerHTML = trustedValue
1311
const fragment = document.importNode(template.content, true)
1412
part.replace(...fragment.childNodes)

0 commit comments

Comments
 (0)