Files
machartaa_admin_dist/dist/assets/adminDb-3e7064ba.js
T
2026-08-25 16:12:17 +03:30

2 lines
4.4 KiB
JavaScript

var c=Object.defineProperty;var f=(l,e,t)=>e in l?c(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var n=(l,e,t)=>(f(l,typeof e!="symbol"?e+"":e,t),t);import{I as u,H as p,J as d,T as w}from"./index-0ae7844c.js";class g{constructor(e){n(this,"table");n(this,"filters",[]);n(this,"includeIn");n(this,"orderSpec");n(this,"secondaryOrders",[]);n(this,"limitN");n(this,"rangeStart");n(this,"rangeEnd");n(this,"selectCols",["*"]);n(this,"mode","select");n(this,"payload",null);n(this,"wantSingle",!1);n(this,"wantMaybeSingle",!1);n(this,"wantCountHead",!1);this.table=e}select(e="*",t){return this.selectCols=e.split(",").map(r=>r.trim()).filter(Boolean),(t==null?void 0:t.count)==="exact"&&(t!=null&&t.head)&&(this.wantCountHead=!0),this.mode==="update"||this.mode==="insert"||this.mode==="upsert"||this.mode==="delete"?this:(this.mode="select",this)}insert(e){return this.mode="insert",this.payload=e,this}upsert(e){return this.mode="upsert",this.payload=e,this}update(e){return this.mode="update",this.payload=e,this}delete(){return this.mode="delete",this}eq(e,t){return this.filters.push({field:e,op:"eq",value:t}),this}neq(e,t){return this.filters.push({field:e,op:"neq",value:t}),this}gt(e,t){return this.filters.push({field:e,op:"gt",value:t}),this}gte(e,t){return this.filters.push({field:e,op:"gte",value:t}),this}lt(e,t){return this.filters.push({field:e,op:"lt",value:t}),this}lte(e,t){return this.filters.push({field:e,op:"lte",value:t}),this}is(e,t){return this.filters.push({field:e,op:"eq",value:t}),this}in(e,t){return this.includeIn={field:e,values:t},this}ilike(e,t){return this.filters.push({field:e,op:"has",value:String(t).replace(/%/g,"")}),this}like(e,t){return this.ilike(e,t)}or(e){return this}not(e,t,r){return t==="is"&&r===null?this.filters.push({field:e,op:"nn",value:null}):t==="in"||this.filters.push({field:e,op:"neq",value:r}),this}order(e,t){const r=(t==null?void 0:t.ascending)!==!1;return this.orderSpec?this.secondaryOrders.push({key:e,ascending:r}):this.orderSpec=r?e:`-${e}`,this}limit(e){return this.limitN=e,this}range(e,t){return this.rangeStart=e,this.rangeEnd=t,this}single(){return this.wantSingle=!0,this.limitN=1,this}maybeSingle(){return this.wantMaybeSingle=!0,this.limitN=1,this}then(e,t){return this.execute().then(e,t)}async execute(){var e;try{if(this.mode==="insert"||this.mode==="upsert"){const r=Array.isArray(this.payload)?this.payload:[this.payload],i=[];for(const a of r){if(this.mode==="upsert"&&(a==null?void 0:a.id)!=null)try{const h=await u(this.table,a.id,a);i.push(Array.isArray(h)?h[0]:h);continue}catch{}const o=await p(this.table,a);i.push(Array.isArray(o)?o[0]:o)}const s=Array.isArray(this.payload)?i:i[0];return this.wantSingle||this.wantMaybeSingle?{data:Array.isArray(s)?s[0]:s,error:null}:{data:s,error:null}}if(this.mode==="update"){const r=this.filters.find(s=>s.field==="id"&&s.op==="eq");if(!r){const s=await this.listRows(),a=[];for(const o of s.rows){const h=await u(this.table,o.id,this.payload);a.push(h)}return this.wantSingle||this.wantMaybeSingle?{data:a[0]??null,error:null}:{data:a,error:null,count:a.length}}const i=await u(this.table,r.value,this.payload);return this.wantSingle||this.wantMaybeSingle?{data:Array.isArray(i)?i[0]:i,error:null}:{data:Array.isArray(i)?i:[i],error:null}}if(this.mode==="delete"){const r=this.filters.find(s=>s.field==="id"&&s.op==="eq");if(r)return await d(this.table,r.value),{data:null,error:null};const i=await this.listRows(!0);for(const s of i.rows)await d(this.table,s.id);return{data:null,error:null,count:i.rows.length}}const t=await this.listRows(this.wantCountHead);return this.wantCountHead?{data:null,error:null,count:t.total}:this.wantSingle?t.rows[0]?{data:t.rows[0],error:null,count:t.total}:{data:null,error:{message:"Not found"}}:this.wantMaybeSingle?{data:t.rows[0]??null,error:null,count:t.total}:{data:t.rows,error:null,count:t.total}}catch(t){return{data:null,error:((e=t==null?void 0:t.response)==null?void 0:e.data)||t}}}async listRows(e=!1){var a;let t=1,r=this.limitN??1e3;this.rangeStart!=null&&this.rangeEnd!=null&&(r=this.rangeEnd-this.rangeStart+1,t=Math.floor(this.rangeStart/r)+1);const i={filters:this.filters,page:t,limit:r,select:e?["id"]:this.selectCols};this.includeIn&&(i.includeIn=this.includeIn),typeof this.orderSpec=="string"?i.order=this.orderSpec:this.orderSpec&&(i.sort=this.orderSpec);const s=await w(this.table,i);return{rows:s.rows||[],total:s.total??((a=s.rows)==null?void 0:a.length)??0}}}const S={from(l){return new g(l)}};export{S as adminDb};