@flatfile/plugin-view-mapped
Version:
A plugin for making the view post mapping show only mapped columns.
9 lines (7 loc) • 2.14 kB
JavaScript
import { FlatfileClient } from '@flatfile/api';
import { jobHandler } from '@flatfile/plugin-job-handler';
import { logError } from '@flatfile/util-common';
var i=new FlatfileClient,w=r=>new Promise(s=>setTimeout(s,r));function C(r){return s=>{s.on("job:completed",{job:"workbook:map"},async l=>{let{jobId:o}=l.context,p=(await i.jobs.getExecutionPlan(o)).data.job.config.destinationSheetId;await i.jobs.create({type:"sheet",operation:"viewMappedFieldsOnly",source:p,trigger:"immediate",mode:"foreground",input:{mappingJobId:o}});}),s.use(jobHandler("sheet:viewMappedFieldsOnly",async(l,o)=>{let{jobId:g,workbookId:p}=l.context;try{await o(10,"plugins.viewMapped.updatingTable");let b=(await i.jobs.get(g)).data.input.mappingJobId,d=await i.jobs.getExecutionPlan(b),f=d.data.job.config.destinationSheetId,u=[];for(let e=0;e<d.data.plan.fieldMapping.length;e++){let t=d.data.plan.fieldMapping[e].destinationField.key;u.push(t);}await o(30,"plugins.viewMapped.updatingTable");let{data:a}=await i.workbooks.get(p);if(!a.settings?.trackChanges){console.log("Skipping because trackChanges is not enabled");return}a.sheets.forEach(e=>{e.id===f&&e.config.fields.forEach(t=>{u.includes(t.key)&&(t.metadata={mapped:!0});});});let h=a.sheets.map(e=>{let t=e.config.fields.filter(n=>{if(n.metadata?.mapped===!0)return !0;let F=n.constraints?.some(M=>M.type==="required");return r.keepRequiredFields&&F});return t.length>0?t:null});await o(50,"plugins.viewMapped.halfway");let k=a.sheets.map((e,t)=>{let n=h[t];return n?{...e,config:{...e.config,fields:n}}:e});await o(80,"plugins.viewMapped.almostDone");let c=!0;do{let{data:e}=await i.sheets.getSheetCommits(f,{completed:!1});console.log(`Waiting on ${e.length} commits to complete...`),c=e.length>0,c&&await w(200);}while(c);return await w(300),await i.workbooks.update(p,{...a,sheets:k}),{outcome:{message:"plugins.viewMapped.complete",acknowledge:!1}}}catch(m){throw logError("@flatfile/plugin-view-mapped",JSON.stringify(m,null,2)),new Error("plugins.viewMapped.error")}}));}}
export { C as viewMappedPlugin };
//# sourceMappingURL=index.browser.js.map
//# sourceMappingURL=index.browser.js.map