UNPKG

@datawheel/bespoke-cms-warmup

Version:

Warmup utility for Bespoke CMS pages

9 lines 2.8 kB
'use strict';var p=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var d=(r,t)=>()=>(r&&(t=r(r=0)),t);var C=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports);var u=d(()=>{});var m=C((P,w)=>{u();var i=p("fs"),a=p("path"),h=class{errorCount;failures;outputPath;successCount;writer;constructor(t){this.resetCounters(),t&&this.setOutput(t);}setOutput(t){let e=a.resolve(process.cwd(),t);i.existsSync(e)||i.mkdirSync(e),process.stdout.write(`Reports will be saved on: ${e} `),this.outputPath=e;let s=a.resolve(e,"results.json");this.writer=i.createWriteStream(s,{flags:"w"});}log(t){this.writer.write(`${t} `);}close(){return new Promise((t,e)=>{this.writer?(this.writer.end(()=>t()),this.writer.on("error",e)):t();})}writeReport(t){let e=f(this.failures),s=a.resolve(this.outputPath,`profile_${t}.json`);return i.promises.writeFile(s,e)}print(t,e=true){process.stdout.write(`${t}${e?` `:""}`);}printLine(t="-"){let e=process.stdout.columns*1||80,s=new Array(e).fill(t).join("").slice(0,e);process.stdout.write(`${s} `);}countResult(t){t.status==="ERROR"&&this.errorCount++,t.status==="SUCCESS"&&this.successCount++,t.status==="FAILURE"&&this.failures.push(t);}resetCounters(){this.errorCount=0,this.failures=[],this.successCount=0;}printCount(t){let e="";this.errorCount>0&&(e=`with ${this.errorCount} errors`),this.failures.length>0&&(e=`${e?", and":"with"} ${this.failures.length} failures`),this.print(` Profile "${t}" completed ${e||"without errors"}.`);}step(t){return process.stdout.write(`WAIT: ${t}...`),{reject(e){throw process.stdout.write("\r\x1B[K"),process.stdout.write(`ERR : ${t} `),e},resolve(e){return process.stdout.write("\r\x1B[K"),process.stdout.write(`OK : ${t} `),e}}}};function f(r){let t=new Map([["",[""].slice(0,0)]]);t.clear();let e=s=>{let n=t.get(s);if(n!==void 0)return n;let o=[];return t.set(s,o),o};for(let s of r){let{test_na:n}=s.result;if(n&&n.length>0){let{url:o}=s.job;for(let c of n)e(c).push(o);}}return JSON.stringify([...t.entries()],null,2)}function $(r){return [].concat(r).reduce((t,e)=>{let s=e.indexOf(":"),n=e.substr(0,s).trim();return t[n]=e.substr(s+1).trim(),t},{})}var l=class{constructor(){this.cache=new Map;}getCanonicalKey(t,e){let[s,n]=[t,e].sort((o,c)=>o-c);return `${s}-${n}`}hasBeenProcessed(t,e,s){if(!this.cache.has(t))return false;let n=this.getCanonicalKey(e,s);return this.cache.get(t).has(n)}markAsProcessed(t,e,s){this.cache.has(t)||this.cache.set(t,new Set);let n=this.getCanonicalKey(e,s);this.cache.get(t).add(n);}};w.exports={Reporter:h,parseHeaders:$,transposeResults:f,BilateralCache:l};});var common = m();module.exports=common;