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