UNPKG

dev-stamp

Version:

💮 Stamp your dev footprint into HTML

4 lines • 2.31 kB
"use strict";var p=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var f=(t,e)=>{for(var n in e)p(t,n,{get:e[n],enumerable:!0})},u=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of S(e))!T.call(t,o)&&o!==n&&p(t,o,{get:()=>e[o],enumerable:!(a=l(e,o))||a.enumerable});return t};var w=t=>u(p({},"__esModule",{value:!0}),t);var A={};f(A,{stampInHtml:()=>x});module.exports=w(A);var M={innerDisplay:"inline"},y={name:"dev-stamp",strictValidation:!0,overwrite:!0},m={mode:"comment",targetSelector:"body",comment:M,metaTag:y};function s(){if(typeof window=="undefined"||typeof window.document=="undefined")throw new Error("This function can only be run in a browser environment.")}function c(t){let e=window.document.querySelector(t);if(!e)throw new Error(`Target element not found: ${t}`);return e}function E(t){return{...m.metaTag,...t.metaTag}}function v(t){return{...m.comment,...t.comment}}function d(t){return{...m,...t,comment:v(t),metaTag:E(t)}}function h(t,e){let{innerDisplay:n}=e;return n==="block"?` ${t} `:n==="spaced-inline"?` ${t} `:t}function O(t,e){let{targetSelector:n,comment:a}=e,o=c(n),r=h(t,a),i=window.document.createComment(r);o.appendChild(i)}function C(t,e,n){let{overwrite:a}=n;if(!a)throw new Error(`Meta tag with name "${n.name}" already exists. Use "metaTag.overwrite" option to replace it.`);e.setAttribute("content",t)}function P(t,e){if(!e.strictValidation)return;if(!t)throw new Error("Meta tag name cannot be empty. Set 'metaTag.strictValidation' to false to skip this check.");if(!/^[a-zA-Z0-9_\-:.]+$/u.test(t))throw new Error(`Invalid meta tag name: "${t}". Only alphanumeric characters, underscores, hyphens, colons, and periods are allowed. Set 'metaTag.strictValidation' to false to skip this check.`)}function g(t,e){let{head:n}=window.document,{name:a}=e.metaTag,o=a.trim();P(o,e.metaTag);let r=n.querySelector(`meta[name="${o}"]`);if(r){C(t,r,e.metaTag);return}let i=window.document.createElement("meta");i.setAttribute("name",o),i.setAttribute("content",t),n.appendChild(i)}function x(t,e=m){let n=d(e),a={comment:()=>O(t,n),"meta-tag":()=>g(t,n)};try{s(),a[n.mode]()}catch(o){console.error(o)}}0&&(module.exports={stampInHtml}); //# sourceMappingURL=index.cjs.map