Export

Generates an Algolia transformation script with your current rules, synonyms and labels baked in. Paste it into the Algolia transformation editor.

// Algolia transform (auto-generated)
const D="en",SL=["ar","bg","hr","da","nl","en","fi","fr","de","it","nn","pl","pt","ro","ru","es","sv"],L={"":{"nl":{"crane":"Laadkraan","craneTruck":"Kraanwagen","grapple":"Grijper","pto":"PTO","retarder":"Retarder","airSuspension":"Lucht","fullAirSuspension":"Luchtvering","steelSuspension":"Parabolisch","fullSteelSuspension":"Full Steel vering","lift":"Lift","damaged":"Schade","truck":"Bakwagen","tractorUnit":"Trekker","semiTrailer":"Oplegger","yes":"Ja","no":"Nee","adr":"ADR","mega":"Mega","hydraulics":"Hydrauliek","compressor":"Compressor","tailLift":"Laadklep","meatHang":"Vleeshangrails","loadfloorExtendable":"Laadvloer uitschuifbaar","coolingEngineMultiTemp":"Multi-Temp","heavyDuty":"Uitzonderlijk vervoer","quickCouplerFunction":"Snelwisselfunctie","hammerFunction":"Hamerfunctie","rotationFunction":"Rotatiefunctie","gps":"GPS","blade":"Dozerblad","outriggers":"Steunpoten","liftAxle":"Lift as"},"en":{"crane":"Loading crane","craneTruck":"Crane truck","grapple":"Grapple","pto":"PTO","retarder":"Retarder","airSuspension":"Air","fullAirSuspension":"Full air suspension","steelSuspension":"Parabolic","fullSteelSuspension":"Full steel suspension","lift":"Lift","damaged":"Damaged","truck":"Truck","tractorUnit":"Tractorhead","semiTrailer":"Semi-trailer","yes":"Yes","no":"No","adr":"ADR","mega":"Mega","hydraulics":"Hydraulics","compressor":"Compressor","tailLift":"Taillift","meatHang":"Meat hang","loadfloorExtendable":"Loadfloor extendable","coolingEngineMultiTemp":"Multi Temp","heavyDuty":"Heavy duty","quickCouplerFunction":"Quick coupler function","hammerFunction":"Hammer Function","rotationFunction":"Rotation Function","gps":"GPS","blade":"Blade","outriggers":"Outriggers","liftAxle":"Lift axle"},"fr":{"crane":"Grue de chargement","craneTruck":"Camion grue","grapple":"Grappin","pto":"Prise de force","retarder":"Ralentisseur","airSuspension":"Air","fullAirSuspension":"Suspension pneumatique intégrale","steelSuspension":"Parabolique","fullSteelSuspension":"Suspension acier intégrale","lift":"Levage","damaged":"Endommagé","truck":"Camion","tractorUnit":"Tracteur","semiTrailer":"Semi-remorques","yes":"Oui","no":"Non","adr":"ADR","mega":"Méga","hydraulics":"Hydraulique","compressor":"Compresseur","tailLift":"Hayon élévateur","meatHang":"Rails viande","loadfloorExtendable":"Plancher extensible","coolingEngineMultiTemp":"Multi-Temp","heavyDuty":"Transport exceptionnel","quickCouplerFunction":"Fonction attache rapide","hammerFunction":"Fonction marteau","rotationFunction":"Fonction rotation","gps":"GPS","blade":"Lame","outriggers":"Stabilisateurs","liftAxle":"Essieu relevable"},"de":{"crane":"Ladekran","craneTruck":"Kranwagen","grapple":"Greifer","pto":"Zapfwelle","retarder":"Retarder","airSuspension":"Luft","fullAirSuspension":"Luftfederung","steelSuspension":"Parabolisch","fullSteelSuspension":"Vollstahlfederung","lift":"Hub","damaged":"Beschädigt","truck":"LKW","tractorUnit":"SZM","semiTrailer":"Auflieger","yes":"Ja","no":"Nein","adr":"ADR","mega":"Mega","hydraulics":"Hydraulik","compressor":"Kompressor","tailLift":"Ladebordwand","meatHang":"Fleischhang","loadfloorExtendable":"Ladeboden ausschiebbar","coolingEngineMultiTemp":"Multi-Temp","heavyDuty":"Schwerlast","quickCouplerFunction":"Schnellwechsler-Funktion","hammerFunction":"Hammerfunktion","rotationFunction":"Rotationsfunktion","gps":"GPS","blade":"Schild","outriggers":"Abstützungen","liftAxle":"Liftachse"},"it":{"crane":"Gru di carico","craneTruck":"Camion con gru","grapple":"Pinza","pto":"Presa di forza","retarder":"Rallentatore","airSuspension":"Aria","fullAirSuspension":"Sospensioni pneumatiche integrali","steelSuspension":"Parabolico","fullSteelSuspension":"Sospensioni in acciaio integrali","lift":"Sollevabile","damaged":"Danneggiato","truck":"Motrice","tractorUnit":"Trattore","semiTrailer":"Semirimorchio","yes":"Sì","no":"No","adr":"ADR","mega":"Ribassato","hydraulics":"Idraulica","compressor":"Compressore","tailLift":"Sponda idraulica","meatHang":"Ganci carne","loadfloorExtendable":"Pianale estensibile","coolingEngineMultiTemp":"Multi-Temp","heavyDuty":"Eccezionale","quickCouplerFunction":"Funzione attacco rapido","hammerFunction":"Funzione martello","rotationFunction":"Funzione rotazione","gps":"GPS","blade":"Lama","outriggers":"Stabilizzatori","liftAxle":"Asse sollevabile"},"pt":{"crane":"Grua de carga","craneTruck":"Caminhão guindaste","grapple":"Garra","pto":"Tomada de força","retarder":"Retardador","airSuspension":"Ar","fullAirSuspension":"Suspensão pneumática integral","steelSuspension":"Parabólica","fullSteelSuspension":"Suspensão de aço integral","lift":"Elevação","damaged":"Danificado","truck":"Camião","tractorUnit":"Tractor","semiTrailer":"semi-reboque","yes":"Sim","no":"Não","adr":"ADR","mega":"Mega","hydraulics":"Hidráulica","compressor":"Compressor","tailLift":"Plataforma traseira","meatHang":"Trilho de carne","loadfloorExtendable":"Piso extensível","coolingEngineMultiTemp":"Multi-Temp","heavyDuty":"Serviço pesado","quickCouplerFunction":"Função engate rápido","hammerFunction":"Função martelo","rotationFunction":"Função rotação","gps":"GPS","blade":"Lâmina","outriggers":"Estabilizadores","liftAxle":"Eixo elevatório"},"es":{"crane":"Grúa de carga","craneTruck":"Camion grua","grapple":"Pinza","pto":"Toma de fuerza","retarder":"Ralentizador","airSuspension":"Aire","fullAirSuspension":"Suspensión neumática integral","steelSuspension":"Parabólico","fullSteelSuspension":"Suspensión de acero integral","lift":"Elevable","damaged":"Dañado","truck":"Camiones","tractorUnit":"Cabeza tractora","semiTrailer":"Semirremolque","yes":"Sí","no":"No","adr":"ADR","mega":"Mega","hydraulics":"Hidráulica","compressor":"Compresor","tailLift":"Plataforma elevadora","meatHang":"Barras para carne","loadfloorExtendable":"Suelo extensible","coolingEngineMultiTemp":"Multi-Temp","heavyDuty":"Transporte de alta resistencia","quickCouplerFunction":"Función acoplador rápido","hammerFunction":"Función martillo","rotationFunction":"Función rotación","gps":"GPS","blade":"Hoja","outriggers":"Estabilizadores","liftAxle":"Eje elevable"}}},S={},R=[];
function gL(s,l,k){if(s&&L[s]){const m=L[s];const v=(m[l]&&m[l][k])||(m[D]&&m[D][k]);if(v)return v}for(const src in L){if(src===s)continue;const m=L[src];const v=(m[l]&&m[l][k])||(m[D]&&m[D][k]);if(v)return v}return null}
function u(a){return Array.from(new Set(a.filter(v=>v!==null&&v!==undefined&&v!=="")))}
function rv(x,l){return x.vl?gL(x.vls,l,x.vl):x.v}
function co(a,e){if(typeof a===typeof e)return e;if(typeof a==="number"&&typeof e==="string"&&e.trim()!==""&&!isNaN(Number(e)))return Number(e);if(typeof a==="string"&&typeof e==="number")return String(e);if(typeof a==="boolean"&&typeof e==="string"){if(e==="true")return true;if(e==="false")return false}return e}
function ec(c,r,l){const a=r==null?undefined:r[c.f],eR=rv(c,l),e=co(a,eR);switch(c.o){case"isTrue":return a===true;case"isFalse":return a===false;case"exists":return a!==undefined&&a!==null&&a!=="";case"equals":return a===e;case"notEquals":return a!==e;case"contains":return Array.isArray(a)?a.indexOf(e)!==-1:(typeof a==="string"&&typeof e==="string"&&a.indexOf(e)!==-1);case"in":{const L=Array.isArray(eR)?eR:[eR];return L.some(v=>co(a,v)===a)}}return false}
function en(n,rec,l){if(n&&n.g){if(!n.c||!n.c.length)return true;const x=n.c.map(c=>en(c,rec,l));return n.l==="OR"?x.some(Boolean):x.every(Boolean)}return ec(n,rec,l)}
function er(r,rec,l){if(!r.c.length)return true;const x=r.c.map(c=>en(c,rec,l));return r.l==="OR"?x.some(Boolean):x.every(Boolean)}
function rl(n){if(!n)return D;const p=n.toLowerCase().split(/[_-]/);return p.find(x=>SL.indexOf(x)!==-1)||D}
async function transform(record,helper){try{const{indexName}=helper.getMetadata();const l=rl(indexName);const kf=Array.isArray(record&&record.keyFeatures)?record.keyFeatures.slice():[],sy=Array.isArray(record&&record.synonyms)?record.synonyms.slice():[],co=Array.isArray(record&&record.collections)?record.collections.slice():[];let c2=[];if(record&&record.categoryLevel2)c2=Array.isArray(record.categoryLevel2)?record.categoryLevel2.slice():[record.categoryLevel2];for(const r of R){if(!er(r,record,l))continue;for(const a of r.a){const lit=a.vl?gL(a.vls,l,a.vl):a.v;switch(a.t){case"pushKeyFeature":if(lit)kf.push(lit);break;case"pushCategoryLevel2":if(lit)c2.push(lit);break;case"pushCollection":if(a.ci)co.push.apply(co,a.ci);break;case"pushSynonym":if(a.sk){const t=(S[l]&&S[l][a.sk])||(S[D]&&S[D][a.sk])||[];sy.push.apply(sy,t)}else if(lit)sy.push(lit);break}}}return Object.assign({},record,{keyFeatures:u(kf),synonyms:u(sy),collections:u(co),categoryLevel2:u(c2)})}catch(e){return record}}