UNPKG

@datawheel/bespoke-cms-warmup

Version:

Warmup utility for Bespoke CMS pages

2 lines 2.87 kB
'use strict';var l=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,a)=>(typeof require<"u"?require:e)[a]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var U=(n,e)=>()=>(n&&(e=n(n=0)),e);var $=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var m=U(()=>{});var S=$((I,j)=>{m();var p=l("path"),b=__dirname.endsWith("models")?__dirname:p.resolve(__dirname,"models");j.exports={modelPaths:{report:p.resolve(b,"report.js"),dimension:p.resolve(b,"dimension.js"),variant:p.resolve(b,"variant.js"),search:p.resolve(b,"search.js")}};});var D=$((O,C)=>{m();var{Sequelize:y,DataTypes:q}=l("sequelize");C.exports={hydrateModels:x};async function x(n,e){let a=y.Op,w=n.db||"postgresql://".concat(n["db-user"],":",n["db-pass"],"@",n["db-host"],"/",n["db-name"]);e.print(`Database Connection: ${w}`);let d;d=e.step("Creating new sequelize instance");let f=new y(w,{logging:false,pool:{max:10,min:1,acquire:5*1e3,idle:10*1e3,evict:1*1e3}});d.resolve(),d=e.step("Testing connection"),await f.authenticate().then(d.resolve,d.reject),d=e.step("Retrieving database models");let{modelPaths:v}=S(),c=l(v.report)(f,q),h=l(v.dimension)(f,q),g=l(v.variant)(f,q),t=l(v.search)(f,q);return c.associate&&c.associate({dimension:h}),h.associate&&h.associate({report:c,variant:g}),g.associate&&g.associate({dimension:h}),t.associate&&t.associate({dimension:h,report:c,variant:g}),d.resolve(),c.findAllIn=function(r=[],i=[]){let s=e.step("Requesting configured profiles");return c.findAll({where:{id:r&&r.length>0?{[a.in]:r}:{[a.ne]:0},visible:true},include:[{association:"dimensions",separate:true,include:[{association:"variants",separate:true,where:{id:i&&Array.isArray(i)&&i.length>0?{[a.in]:i}:{[a.ne]:0}}}],order:[["ordering","ASC"]]}]}).then(s.resolve,s.reject).then(A=>(r.length>0&&e.print(`User requested for profiles: ${r.join(", ")}`),i.length>0&&e.print(`User requested for variants: ${i.join(", ")}`),A.sort((o,u)=>r.indexOf(o.id)-r.indexOf(u.id)).map(o=>(e.print(`Profile found: ${o.id} ${o.name}`),o.dimensions.forEach(u=>{e.print(` Dimension found: ${u.id} ${u.name}`),u.variants.forEach(_=>{e.print(` Variant found: ${_.id} ${_.name}`);});}),o))))},t.findAllFromProfile=function(r,i){let s={};return i&&Array.isArray(i)&&i.length>0&&(s.variant_id={[a.in]:i}),t.findAll({where:{report_id:r.id,visible:true,...s},order:[["zvalue","DESC"]]})},t.findAllMembers=function(r,i,s){return t.findAll({where:{report_id:r,dimension_id:i,variant_id:s,visible:true},attributes:["id","slug"],raw:true})},t.findAllFromBilateralPair=function(r,i,s,A,o,u,_){return t.findAll({where:{report_id:r,[a.or]:[{dimension_id:i,variant_id:s,id:A},{dimension_id:o,variant_id:u,id:_}],visible:true},order:[["zvalue","DESC"]]})},{Report:c,Search:t}}});var database = D(); module.exports=database;