diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..795e4bd --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome" + } +} diff --git a/src/oc-client.js b/src/oc-client.js index af8d9cc..a47bd73 100644 --- a/src/oc-client.js +++ b/src/oc-client.js @@ -38,6 +38,8 @@ export function createOc(oc) { let renderedComponents = oc.renderedComponents; let dataRenderedAttribute = "data-rendered"; let dataRenderingAttribute = "data-rendering"; + let nonce = $document.currentScript?.nonce; + let logError = (msg) => console.log(msg); let logInfo = (msg) => ocConf.debug && console.log(msg); let handleFetchResponse = (response) => { @@ -124,6 +126,9 @@ export function createOc(oc) { for (let attribute of Array.from(script.attributes)) { newScript.setAttribute(attribute.name, attribute.value); } + if (nonce) { + newScript.setAttribute("nonce", nonce); + } script.parentNode?.replaceChild(newScript, script); } }; @@ -140,6 +145,9 @@ export function createOc(oc) { oc.addStylesToHead = (styles) => { let style = $document.createElement("style"); style.textContent = styles; + if (nonce) { + style.setAttribute("nonce", nonce); + } $document.head.appendChild(style); };