UNPKG

@nithin93/sri-js

Version:

A lightweight library to enforce Subresource Integrity (SRI) for dynamically loaded scripts in the browser and to update script tags in HTML using Cheerio.

2 lines (1 loc) 797 B
"use strict";var SRIJS=(()=>{var f=!1;function p(S,i){if(f)return;f=!0;let a=document.createElement;document.createElement=function(n){let o=a.call(document,n);if(n.toLowerCase()==="script"){let e=Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"src");e&&e.set&&Object.defineProperty(o,"src",{set:function(r){var c;let t=r;typeof t!="string"&&t.toString&&(t=t.toString());let I=((c=t==null?void 0:t.split("/"))==null?void 0:c.pop())||"",s=S[I];(!i||i&&(t!=null&&t.includes(i)))&&s&&!this.hasAttribute("integrity")&&(this.setAttribute("integrity",s),this.setAttribute("crossorigin","anonymous")),e.set.call(this,r)},get:e.get,configurable:!0})}return o}}var g,d;typeof window!="undefined"&&(g=window.SRI)!=null&&g.config&&p(window.SRI.config,(d=window.SRI)==null?void 0:d.prefix);})();