Edit: /tmp/tsx-0/17887-eaf403c7f3270d5f1f5b250613a576261419b832 (4268B)
{"code":"__filename=\"/opt/canhelp/apps/api/src/routes/categories.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 categories_exports={};__export(categories_exports,{buildTree:()=>buildTree,default:()=>categories_default,rowToCategory:()=>rowToCategory});module.exports=__toCommonJS(categories_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=\"categories:tree:v2\";const CACHE_TTL=600;const app=new import_hono.Hono;function rowToCategory(row){return{id:row.id,slug:row.slug,icon:row.icon,names:{el:row.namesEl,en:row.namesEn,ru:row.namesRu,uk:row.namesUk??row.namesRu},parentId:row.parentId,order:row.order,isActive:row.isActive}}__name(rowToCategory,\"rowToCategory\");function buildTree(rows){const map={};const roots=[];for(const row of rows){map[row.id]={...rowToCategory(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.categories).where((0,import_drizzle_orm.eq)(import_db2.categories.isActive,true)).orderBy((0,import_drizzle_orm.asc)(import_db2.categories.order),(0,import_drizzle_orm.asc)(import_db2.categories.namesEl));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.categories).orderBy((0,import_drizzle_orm.asc)(import_db2.categories.order),(0,import_drizzle_orm.asc)(import_db2.categories.namesEl));return c.json(rows.map(rowToCategory))});var categories_default=app;0&&(module.exports={buildTree,rowToCategory});\n})()\n","warnings":[],"map":{"version":3,"mappings":";mvBAAA,gNAAqB,gBACrB,uBAAgC,uBAChC,cAAmB,oBACnB,IAAAA,WAA2B,uBAC3B,iBAAsB,uBAEtB,MAAM,UAAY,qBAClB,MAAM,UAAY,IAElB,MAAM,IAAM,IAAI,iBAEhB,SAAS,cAAc,IAAqC,CAC1D,MAAO,CACL,GAAI,IAAI,GACR,KAAM,IAAI,KACV,KAAM,IAAI,KACV,MAAO,CAAE,GAAI,IAAI,QAAS,GAAI,IAAI,QAAS,GAAI,IAAI,QAAS,GAAI,IAAI,SAAW,IAAI,OAAQ,EAC3F,SAAU,IAAI,SACd,MAAO,IAAI,MACX,SAAU,IAAI,QAChB,CACF,CAVS,sCAaT,SAAS,UAAU,KAAwC,CACzD,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,CAEA,OAAO,KACT,CAhBS,8BAmBT,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,qBAAU,EACf,SAAM,uBAAG,sBAAW,SAAU,IAAI,CAAC,EACnC,WAAQ,wBAAI,sBAAW,KAAK,KAAG,wBAAI,sBAAW,OAAO,CAAC,EAEzD,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,qBAAU,EACf,WAAQ,wBAAI,sBAAW,KAAK,KAAG,wBAAI,sBAAW,OAAO,CAAC,EACzD,OAAO,EAAE,KAAK,KAAK,IAAI,aAAa,CAAC,CACvC,CAAC,EAGD,IAAO,mBAAQ","names":["import_db"],"ignoreList":[],"sources":["/opt/canhelp/apps/api/src/routes/categories.ts"],"sourcesContent":[null]}}