Edit: /tmp/tsx-0/17887-fa36ac6b7343d28a8fe59aadeacc7da8f7ca1767 (4323B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/routes/locations.ts\";(()=>{\n\"use strict\";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,\"name\",{value,configurable:true});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from===\"object\"||typeof from===\"function\"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},\"__esModule\",{value:true}),mod);var locations_exports={};__export(locations_exports,{buildTree:()=>buildTree,default:()=>locations_default,rowToLocation:()=>rowToLocation});module.exports=__toCommonJS(locations_exports);var import_hono=require(\"hono\");var import_drizzle_orm=require(\"drizzle-orm\");var import_db=require(\"../db.js\");var import_db2=require(\"@canhelp/db\");var import_redis=require(\"../redis.js\");const CACHE_KEY=\"locations:tree:v2\";const CACHE_TTL=600;const app=new import_hono.Hono;function rowToLocation(row){return{id:row.id,slug:row.slug,names:{el:row.nameEl,en:row.nameEn,ru:row.nameRu,uk:row.nameUk??row.nameRu},parentId:row.parentId,order:row.order,isActive:row.isActive}}__name(rowToLocation,\"rowToLocation\");function buildTree(rows){const map={};const roots=[];for(const row of rows){map[row.id]={...rowToLocation(row),children:[]}}for(const row of rows){if(row.parentId&&map[row.parentId]){map[row.parentId].children.push(map[row.id])}else{roots.push(map[row.id])}}return roots}__name(buildTree,\"buildTree\");app.get(\"/\",async c=>{const cached=await import_redis.redis.get(CACHE_KEY).catch(()=>null);if(cached)return c.json(JSON.parse(cached));const rows=await import_db.db.select().from(import_db2.locations).where((0,import_drizzle_orm.eq)(import_db2.locations.isActive,true)).orderBy((0,import_drizzle_orm.asc)(import_db2.locations.order),(0,import_drizzle_orm.asc)(import_db2.locations.nameEl));const tree=buildTree(rows);await import_redis.redis.set(CACHE_KEY,JSON.stringify(tree),\"EX\",CACHE_TTL).catch(()=>{});return c.json(tree)});app.get(\"/flat\",async c=>{const rows=await import_db.db.select().from(import_db2.locations).where((0,import_drizzle_orm.eq)(import_db2.locations.isActive,true)).orderBy((0,import_drizzle_orm.asc)(import_db2.locations.order),(0,import_drizzle_orm.asc)(import_db2.locations.nameEl));return c.json(rows.map(rowToLocation))});var locations_default=app;0&&(module.exports={buildTree,rowToLocation});\n})()\n","warnings":[],"map":{"version":3,"mappings":";mvBAAA,4MAAqB,gBACrB,uBAAwB,uBACxB,cAAmB,oBACnB,IAAAA,WAA0B,uBAC1B,iBAAsB,uBAEtB,MAAM,UAAY,oBAClB,MAAM,UAAY,IAElB,MAAM,IAAM,IAAI,iBAEhB,SAAS,cAAc,IAAoC,CACzD,MAAO,CACL,GAAI,IAAI,GACR,KAAM,IAAI,KACV,MAAO,CAAE,GAAI,IAAI,OAAQ,GAAI,IAAI,OAAQ,GAAI,IAAI,OAAQ,GAAI,IAAI,QAAU,IAAI,MAAO,EACtF,SAAU,IAAI,SACd,MAAO,IAAI,MACX,SAAU,IAAI,QAChB,CACF,CATS,sCAWT,SAAS,UAAU,KAAuC,CACxD,MAAM,IAA2B,CAAC,EAClC,MAAM,MAAe,CAAC,EAEtB,UAAW,OAAO,KAAM,CACtB,IAAI,IAAI,EAAE,EAAI,CAAE,GAAG,cAAc,GAAG,EAAG,SAAU,CAAC,CAAE,CACtD,CACA,UAAW,OAAO,KAAM,CACtB,GAAI,IAAI,UAAY,IAAI,IAAI,QAAQ,EAAG,CACrC,IAAI,IAAI,QAAQ,EAAE,SAAS,KAAK,IAAI,IAAI,EAAE,CAAC,CAC7C,KAAO,CACL,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC,CACxB,CACF,CACA,OAAO,KACT,CAfS,8BAkBT,IAAI,IAAI,IAAK,MAAO,GAAM,CACxB,MAAM,OAAS,MAAM,mBAAM,IAAI,SAAS,EAAE,MAAM,IAAM,IAAI,EAC1D,GAAI,OAAQ,OAAO,EAAE,KAAK,KAAK,MAAM,MAAM,CAAC,EAE5C,MAAM,KAAO,MAAM,aAChB,OAAO,EACP,KAAK,oBAAS,EACd,SAAM,uBAAG,qBAAU,SAAU,IAAI,CAAC,EAClC,WAAQ,wBAAI,qBAAU,KAAK,KAAG,wBAAI,qBAAU,MAAM,CAAC,EAEtD,MAAM,KAAO,UAAU,IAAI,EAC3B,MAAM,mBAAM,IAAI,UAAW,KAAK,UAAU,IAAI,EAAG,KAAM,SAAS,EAAE,MAAM,IAAM,CAAC,CAAC,EAChF,OAAO,EAAE,KAAK,IAAI,CACpB,CAAC,EAGD,IAAI,IAAI,QAAS,MAAO,GAAM,CAC5B,MAAM,KAAO,MAAM,aAChB,OAAO,EACP,KAAK,oBAAS,EACd,SAAM,uBAAG,qBAAU,SAAU,IAAI,CAAC,EAClC,WAAQ,wBAAI,qBAAU,KAAK,KAAG,wBAAI,qBAAU,MAAM,CAAC,EACtD,OAAO,EAAE,KAAK,KAAK,IAAI,aAAa,CAAC,CACvC,CAAC,EAGD,IAAO,kBAAQ","names":["import_db"],"ignoreList":[],"sources":["/opt/canhelp/apps/api/src/routes/locations.ts"],"sourcesContent":[null]}}