presta
Version:
Hyper minimal framework for the modern web.
3 lines (2 loc) • 15.2 kB
JavaScript
var L=Object.create;var p=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames,m=Object.getOwnPropertySymbols,S=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var E=(e,t,i)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,u=(e,t)=>{for(var i in t||(t={}))d.call(t,i)&&E(e,i,t[i]);if(m)for(var i of m(t))$.call(t,i)&&E(e,i,t[i]);return e};var T=e=>p(e,"__esModule",{value:!0});var b=(e,t)=>{var i={};for(var r in e)d.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(e!=null&&m)for(var r of m(e))t.indexOf(r)<0&&$.call(e,r)&&(i[r]=e[r]);return i};var C=(e,t)=>{T(e);for(var i in t)p(e,i,{get:t[i],enumerable:!0})},W=(e,t,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of v(t))!d.call(e,r)&&r!=="default"&&p(e,r,{get:()=>t[r],enumerable:!(i=j(t,r))||i.enumerable});return e},D=e=>W(T(p(e!=null?L(S(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);C(exports,{createFootTags:()=>w,createHeadTags:()=>x,filterUnique:()=>l,html:()=>G,prefixToObjects:()=>H,pruneEmpty:()=>k,tag:()=>o});var h=D(require("deepmerge")),F={title:"Presta",description:"",image:"",url:"",og:{},twitter:{},meta:[{charset:"UTF-8"},{name:"viewport",content:"width=device-width,initial-scale=1"}],link:[],script:[],style:[]};function k(e){let t={};for(let i of Object.keys(e))e[i]&&(t[i]=e[i]);return t}function l(e){let t=[];t:for(let i of e.reverse()){for(let r of t)if(typeof i=="string"||typeof r=="string"){if(i===r)continue t}else if(i.name&&i.name===r.name||i.src&&i.src===r.src||i.href&&i.href===r.href)continue t;t.push(i)}return t.reverse()}function o(e){return t=>{if(typeof t=="string")return t;let i=Object.keys(t).filter(a=>a!=="children").map(a=>`${a}="${t[a]}"`).join(" "),r=i?" "+i:"";return/script|style/.test(e)?`<${e}${r}>${t.children||""}</${e}>`:`<${e}${r} />`}}function H(e,t){return Object.keys(t).map(i=>({[e==="og"?"property":"name"]:`${e}:${i}`,content:t[i]}))}function x(e={}){let P=(0,h.default)(F,e),{title:t,description:i,image:r,url:a}=P,s=b(P,["title","description","image","url"]),f=s.meta?l(s.meta):[],y=s.link?l(s.link):[],g=s.script?l(s.script):[],n=s.style?l(s.style):[],c=k(u({title:t,description:i,url:a,image:r},s.og||{})),M=k(u({title:t,description:i,url:a,image:r},s.twitter||{})),O=[f.concat(i?{name:"description",content:i}:[]).map(o("meta")),H("og",c).map(o("meta")),H("twitter",M).map(o("meta")),y.map(o("link")),g.map(o("script")),n.map(o("style"))].flat(2);return`<title>${t}</title>${O.join("")}`}function w(e={}){let t=(0,h.default)({script:[],style:[]},e),i=l(t.script),r=l(t.style);return[i.map(o("script")),r.map(o("style"))].flat().join("")}function G({body:e="",head:t={},foot:i={},htmlAttributes:r={},bodyAttributes:a={}}){t.link||(t.link=[]),t.link.find(n=>typeof n=="object"?n.rel==="icon":/rel="icon/.test(n))||(t.link.push({rel:"icon",type:"image/png",href:"https://presta.run/favicon.png"}),t.link.push({rel:"icon",type:"image/svg",href:"https://presta.run/favicon.svg"})),t.meta||(t.meta=[]),t.meta&&(t.meta.find(n=>!!n.charset)||t.meta.push({charset:"UTF-8"}),t.meta.find(n=>typeof n=="object"?n.name==="viewport":/name="viewport/.test(n))||t.meta.push({name:"viewport",content:"width=device-width,initial-scale=1"}));let s=x(t),f=w(i),y=Object.keys(r).reduce((n,c)=>n+=` ${c}="${r[c]}"`,""),g=Object.keys(a).reduce((n,c)=>n+=` ${c}="${a[c]}"`,"");return`<!DOCTYPE html><html${y}><head><!-- built with presta https://npm.im/presta -->${s}</head><body${g}>${e}${f}</body></html>`}0&&(module.exports={createFootTags,createHeadTags,filterUnique,html,prefixToObjects,pruneEmpty,tag});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibGliL2h0bWwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXG5cbnR5cGUgR2VuZXJpY09iamVjdCA9IHsgW2tleTogc3RyaW5nXTogYW55IH1cblxuZXhwb3J0IHR5cGUgSGVhZEVsZW1lbnRXaXRoQ2hpbGRyZW48VD4gPSB7XG4gIGNoaWxkcmVuPzogc3RyaW5nXG59ICYgVFxuXG5leHBvcnQgdHlwZSBNZXRhID0gUGFydGlhbDxPbWl0PEhUTUxNZXRhRWxlbWVudCwgJ2NoaWxkcmVuJz4+IHwgc3RyaW5nXG5leHBvcnQgdHlwZSBMaW5rID0gUGFydGlhbDxPbWl0PEhUTUxMaW5rRWxlbWVudCwgJ2NoaWxkcmVuJz4+IHwgc3RyaW5nXG5leHBvcnQgdHlwZSBTdHlsZSA9IFBhcnRpYWw8SGVhZEVsZW1lbnRXaXRoQ2hpbGRyZW48T21pdDxIVE1MU3R5bGVFbGVtZW50LCAnY2hpbGRyZW4nPj4+IHwgc3RyaW5nXG5leHBvcnQgdHlwZSBTY3JpcHQgPSBQYXJ0aWFsPEhlYWRFbGVtZW50V2l0aENoaWxkcmVuPE9taXQ8SFRNTFNjcmlwdEVsZW1lbnQsICdjaGlsZHJlbic+Pj4gfCBzdHJpbmdcbmV4cG9ydCB0eXBlIEhlYWRFbGVtZW50ID0gTWV0YSB8IExpbmsgfCBTdHlsZSB8IFNjcmlwdFxuXG50eXBlIFNvY2lhbCA9IHtcbiAgdGl0bGU/OiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaW1hZ2U/OiBzdHJpbmdcbiAgdXJsPzogc3RyaW5nXG4gIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgdHlwZSBQcmVzdGFIZWFkID0ge1xuICB0aXRsZTogc3RyaW5nXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmdcbiAgaW1hZ2U6IHN0cmluZ1xuICB1cmw6IHN0cmluZ1xuICBvZzogU29jaWFsXG4gIHR3aXR0ZXI6IFNvY2lhbFxuICBtZXRhOiBNZXRhW11cbiAgbGluazogTGlua1tdXG4gIHNjcmlwdDogU2NyaXB0W11cbiAgc3R5bGU6IFN0eWxlW11cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRQcm9wZXJ0aWVzID0ge1xuICBib2R5Pzogc3RyaW5nXG4gIGhlYWQ/OiBQYXJ0aWFsPFByZXN0YUhlYWQ+XG4gIGZvb3Q/OiBQYXJ0aWFsPFBpY2s8UHJlc3RhSGVhZCwgJ3NjcmlwdCcgfCAnc3R5bGUnPj5cbiAgaHRtbEF0dHJpYnV0ZXM/OiBQYXJ0aWFsPHsgW2tleSBpbiBrZXlvZiBIVE1MSHRtbEVsZW1lbnRdOiBzdHJpbmcgfT5cbiAgYm9keUF0dHJpYnV0ZXM/OiBQYXJ0aWFsPEhUTUxCb2R5RWxlbWVudD5cbn1cblxuY29uc3QgZGVmYXVsdHM6IFByZXN0YUhlYWQgPSB7XG4gIHRpdGxlOiAnUHJlc3RhJyxcbiAgZGVzY3JpcHRpb246ICcnLFxuICBpbWFnZTogJycsXG4gIHVybDogJycsXG4gIG9nOiB7fSxcbiAgdHdpdHRlcjoge30sXG4gIG1ldGE6IFtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgeyBjaGFyc2V0OiAnVVRGLTgnIH0sXG4gICAgeyBuYW1lOiAndmlld3BvcnQnLCBjb250ZW50OiAnd2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MScgfSxcbiAgXSxcbiAgbGluazogW10sXG4gIHNjcmlwdDogW10sXG4gIHN0eWxlOiBbXSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBydW5lRW1wdHkob2JqOiBHZW5lcmljT2JqZWN0KSB7XG4gIGxldCByZXM6IEdlbmVyaWNPYmplY3QgPSB7fVxuXG4gIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhvYmopKSB7XG4gICAgaWYgKCEhb2JqW2tdKSByZXNba10gPSBvYmpba11cbiAgfVxuXG4gIHJldHVybiByZXNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclVuaXF1ZShhcnI6IEhlYWRFbGVtZW50W10pIHtcbiAgbGV0IHJlczogSGVhZEVsZW1lbnRbXSA9IFtdXG5cbiAgb3V0ZXI6IGZvciAoY29uc3QgYSBvZiBhcnIucmV2ZXJzZSgpKSB7XG4gICAgZm9yIChjb25zdCByIG9mIHJlcykge1xuICAgICAgaWYgKHR5cGVvZiBhID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKGEgPT09IHIpIGNvbnRpbnVlIG91dGVyXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmIChhLm5hbWUgJiYgYS5uYW1lID09PSByLm5hbWUpIGNvbnRpbnVlIG91dGVyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKGEuc3JjICYmIGEuc3JjID09PSByLnNyYykgY29udGludWUgb3V0ZXJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAoYS5ocmVmICYmIGEuaHJlZiA9PT0gci5ocmVmKSBjb250aW51ZSBvdXRlclxuICAgICAgfVxuICAgIH1cblxuICAgIHJlcy5wdXNoKGEpXG4gIH1cblxuICByZXR1cm4gcmVzLnJldmVyc2UoKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFnKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4gKHByb3BzOiBIZWFkRWxlbWVudCkgPT4ge1xuICAgIGlmICh0eXBlb2YgcHJvcHMgPT09ICdzdHJpbmcnKSByZXR1cm4gcHJvcHNcblxuICAgIGNvbnN0IGF0dHIgPSBPYmplY3Qua2V5cyhwcm9wcylcbiAgICAgIC5maWx0ZXIoKHApID0+IHAgIT09ICdjaGlsZHJlbicpXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAubWFwKChwKSA9PiBgJHtwfT1cIiR7cHJvcHNbcF19XCJgKVxuICAgICAgLmpvaW4oJyAnKVxuXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IGF0dHIgPyAnICcgKyBhdHRyIDogJydcblxuICAgIGlmICgvc2NyaXB0fHN0eWxlLy50ZXN0KG5hbWUpKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gYDwke25hbWV9JHthdHRyaWJ1dGVzfT4ke3Byb3BzLmNoaWxkcmVuIHx8ICcnfTwvJHtuYW1lfT5gXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgPCR7bmFtZX0ke2F0dHJpYnV0ZXN9IC8+YFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4VG9PYmplY3RzKHByZWZpeDogc3RyaW5nLCBwcm9wczogU29jaWFsKTogSGVhZEVsZW1lbnRXaXRoQ2hpbGRyZW48UGFydGlhbDxIVE1MTWV0YUVsZW1lbnQ+PltdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHByb3BzKS5tYXAoKHApID0+ICh7XG4gICAgW3ByZWZpeCA9PT0gJ29nJyA/ICdwcm9wZXJ0eScgOiAnbmFtZSddOiBgJHtwcmVmaXh9OiR7cH1gLFxuICAgIGNvbnRlbnQ6IHByb3BzW3BdLFxuICB9KSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhlYWRUYWdzKGNvbmZpZzogUGFydGlhbDxQcmVzdGFIZWFkPiA9IHt9KSB7XG4gIGNvbnN0IHsgdGl0bGUsIGRlc2NyaXB0aW9uLCBpbWFnZSwgdXJsLCAuLi5vIH0gPSBtZXJnZShkZWZhdWx0cywgY29uZmlnKVxuXG4gIGNvbnN0IG1ldGEgPSBvLm1ldGEgPyBmaWx0ZXJVbmlxdWUoby5tZXRhKSA6IFtdXG4gIGNvbnN0IGxpbmsgPSBvLmxpbmsgPyBmaWx0ZXJVbmlxdWUoby5saW5rKSA6IFtdXG4gIGNvbnN0IHNjcmlwdCA9IG8uc2NyaXB0ID8gZmlsdGVyVW5pcXVlKG8uc2NyaXB0KSA6IFtdXG4gIGNvbnN0IHN0eWxlID0gby5zdHlsZSA/IGZpbHRlclVuaXF1ZShvLnN0eWxlKSA6IFtdXG4gIGNvbnN0IG9nID0gcHJ1bmVFbXB0eSh7XG4gICAgdGl0bGUsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgdXJsLFxuICAgIGltYWdlLFxuICAgIC4uLihvLm9nIHx8IHt9KSxcbiAgfSlcbiAgY29uc3QgdHdpdHRlciA9IHBydW5lRW1wdHkoe1xuICAgIHRpdGxlLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIHVybCxcbiAgICBpbWFnZSxcbiAgICAuLi4oby50d2l0dGVyIHx8IHt9KSxcbiAgfSlcblxuICBjb25zdCB0YWdzID0gW1xuICAgIG1ldGEuY29uY2F0KGRlc2NyaXB0aW9uID8geyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBkZXNjcmlwdGlvbiB9IDogW10pLm1hcCh0YWcoJ21ldGEnKSksXG4gICAgcHJlZml4VG9PYmplY3RzKCdvZycsIG9nKS5tYXAodGFnKCdtZXRhJykpLFxuICAgIHByZWZpeFRvT2JqZWN0cygndHdpdHRlcicsIHR3aXR0ZXIpLm1hcCh0YWcoJ21ldGEnKSksXG4gICAgbGluay5tYXAodGFnKCdsaW5rJykpLFxuICAgIHNjcmlwdC5tYXAodGFnKCdzY3JpcHQnKSksXG4gICAgc3R5bGUubWFwKHRhZygnc3R5bGUnKSksXG4gIF0uZmxhdCgyKVxuXG4gIHJldHVybiBgPHRpdGxlPiR7dGl0bGV9PC90aXRsZT4ke3RhZ3Muam9pbignJyl9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9vdFRhZ3MoY29uZmlnOiBQYXJ0aWFsPFBpY2s8UHJlc3RhSGVhZCwgJ3NjcmlwdCcgfCAnc3R5bGUnPj4gPSB7fSkge1xuICBjb25zdCBvID0gbWVyZ2UoeyBzY3JpcHQ6IFtdLCBzdHlsZTogW10gfSwgY29uZmlnKVxuICBjb25zdCBzY3JpcHQgPSBmaWx0ZXJVbmlxdWUoby5zY3JpcHQpXG4gIGNvbnN0IHN0eWxlID0gZmlsdGVyVW5pcXVlKG8uc3R5bGUpXG5cbiAgY29uc3QgdGFncyA9IFtzY3JpcHQubWFwKHRhZygnc2NyaXB0JykpLCBzdHlsZS5tYXAodGFnKCdzdHlsZScpKV0uZmxhdCgpXG5cbiAgcmV0dXJuIHRhZ3Muam9pbignJylcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgY29tcGxldGUgSFRNTCBkb2N1bWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gaHRtbCh7XG4gIGJvZHkgPSAnJyxcbiAgaGVhZCA9IHt9LFxuICBmb290ID0ge30sXG4gIGh0bWxBdHRyaWJ1dGVzID0ge30sXG4gIGJvZHlBdHRyaWJ1dGVzID0ge30sXG59OiBEb2N1bWVudFByb3BlcnRpZXMpIHtcbiAgLy8gaW5zZXJ0IGZhdmljb24gZHVyaW5nIGRldiwgaWYgbm90IG90aGVyd2lzZSBzcGVjaWZpZWRcbiAgaWYgKCFoZWFkLmxpbmspIGhlYWQubGluayA9IFtdXG4gIGlmICghaGVhZC5saW5rLmZpbmQoKG0pID0+ICh0eXBlb2YgbSA9PT0gJ29iamVjdCcgPyBtLnJlbCA9PT0gJ2ljb24nIDogL3JlbD1cImljb24vLnRlc3QobSkpKSkge1xuICAgIGhlYWQubGluay5wdXNoKHsgcmVsOiAnaWNvbicsIHR5cGU6ICdpbWFnZS9wbmcnLCBocmVmOiAnaHR0cHM6Ly9wcmVzdGEucnVuL2Zhdmljb24ucG5nJyB9KVxuICAgIGhlYWQubGluay5wdXNoKHsgcmVsOiAnaWNvbicsIHR5cGU6ICdpbWFnZS9zdmcnLCBocmVmOiAnaHR0cHM6Ly9wcmVzdGEucnVuL2Zhdmljb24uc3ZnJyB9KVxuICB9XG5cbiAgLy8gaW5zZXJ0IGRlZmF1bHQgY2hhcnNldCBhbmQgdmlld3BvcnQsIGlmIG5vdCBvdGhlcndpc2Ugc3BlY2lmaWVkXG4gIGlmICghaGVhZC5tZXRhKSBoZWFkLm1ldGEgPSBbXVxuICBpZiAoaGVhZC5tZXRhKSB7XG4gICAgLy8gQHRzLWlnbm9yZSBUT0RPIHd0ZlxuICAgIGlmICghaGVhZC5tZXRhLmZpbmQoKG0pID0+ICEhbS5jaGFyc2V0KSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaGVhZC5tZXRhLnB1c2goeyBjaGFyc2V0OiAnVVRGLTgnIH0pXG4gICAgfVxuICAgIGlmICghaGVhZC5tZXRhLmZpbmQoKG0pID0+ICh0eXBlb2YgbSA9PT0gJ29iamVjdCcgPyBtLm5hbWUgPT09ICd2aWV3cG9ydCcgOiAvbmFtZT1cInZpZXdwb3J0Ly50ZXN0KG0pKSkpIHtcbiAgICAgIGhlYWQubWV0YS5wdXNoKHtcbiAgICAgICAgbmFtZTogJ3ZpZXdwb3J0JyxcbiAgICAgICAgY29udGVudDogJ3dpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEnLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoZWFkVGFncyA9IGNyZWF0ZUhlYWRUYWdzKGhlYWQpXG4gIGNvbnN0IGZvb3RUYWdzID0gY3JlYXRlRm9vdFRhZ3MoZm9vdClcbiAgY29uc3QgaHRtbEF0dHIgPSBPYmplY3Qua2V5cyhodG1sQXR0cmlidXRlcykucmVkdWNlKChhdHRyLCBrZXkpID0+IHtcbiAgICByZXR1cm4gKGF0dHIgKz0gYCAke2tleX09XCIke2h0bWxBdHRyaWJ1dGVzW2tleSBhcyBrZXlvZiBIVE1MSHRtbEVsZW1lbnRdfVwiYClcbiAgfSwgJycpXG4gIGNvbnN0IGJvZHlBdHRyID0gT2JqZWN0LmtleXMoYm9keUF0dHJpYnV0ZXMpLnJlZHVjZSgoYXR0ciwga2V5KSA9PiB7XG4gICAgcmV0dXJuIChhdHRyICs9IGAgJHtrZXl9PVwiJHtib2R5QXR0cmlidXRlc1trZXkgYXMga2V5b2YgSFRNTEJvZHlFbGVtZW50XX1cImApXG4gIH0sICcnKVxuXG4gIHJldHVybiBgPCFET0NUWVBFIGh0bWw+PGh0bWwke2h0bWxBdHRyfT48aGVhZD48IS0tIGJ1aWx0IHdpdGggcHJlc3RhIGh0dHBzOi8vbnBtLmltL3ByZXN0YSAtLT4ke2hlYWRUYWdzfTwvaGVhZD48Ym9keSR7Ym9keUF0dHJ9PiR7Ym9keX0ke2Zvb3RUYWdzfTwvYm9keT48L2h0bWw+YFxufVxuIl0sCiAgIm1hcHBpbmdzIjogIm9nQ0FBQSw0SUFBa0Isd0JBMkNaLEVBQXVCLENBQzNCLE1BQU8sU0FDUCxZQUFhLEdBQ2IsTUFBTyxHQUNQLElBQUssR0FDTCxHQUFJLEdBQ0osUUFBUyxHQUNULEtBQU0sQ0FFSixDQUFFLFFBQVMsU0FDWCxDQUFFLEtBQU0sV0FBWSxRQUFTLHVDQUUvQixLQUFNLEdBQ04sT0FBUSxHQUNSLE1B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