UNPKG

@pankod/refine-supabase

Version:

refine Supabase data provider. refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.

2 lines 4.82 kB
var p=Object.defineProperty,L=Object.defineProperties,O=Object.getOwnPropertyDescriptor,$=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols;var P=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable;var S=(e,r,s)=>r in e?p(e,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[r]=s,T=(e,r)=>{for(var s in r||(r={}))P.call(r,s)&&S(e,s,r[s]);if(f)for(var s of f(r))q.call(r,s)&&S(e,s,r[s]);return e},b=(e,r)=>L(e,$(r));var M=(e,r)=>{for(var s in r)p(e,s,{get:r[s],enumerable:!0})},N=(e,r,s,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let c of k(r))!P.call(e,c)&&c!==s&&p(e,c,{get:()=>r[c],enumerable:!(n=O(r,c))||n.enumerable});return e};var x=e=>N(p({},"__esModule",{value:!0}),e);var j={};M(j,{createClient:()=>h.createClient,dataProvider:()=>I,liveProvider:()=>U});module.exports=x(j);var h=require("@supabase/supabase-js"),E={INSERT:"created",UPDATE:"updated",DELETE:"deleted","*":"*"},g={created:"INSERT",updated:"UPDATE",deleted:"DELETE","*":"*"},A=e=>{switch(e){case"ne":return"neq";case"nin":return"not.in";case"contains":return"ilike";case"ncontains":return"not.ilike";case"containss":return"like";case"ncontainss":return"not.like";case"null":return"is";case"nnull":return"not.is";case"between":case"nbetween":throw Error(`Operator ${e} is not supported`);default:return e}},F=(e,r)=>{switch(e.operator){case"eq":return r.eq(e.field,e.value);case"ne":return r.neq(e.field,e.value);case"in":return r.in(e.field,e.value);case"gt":return r.gt(e.field,e.value);case"gte":return r.gte(e.field,e.value);case"lt":return r.lt(e.field,e.value);case"lte":return r.lte(e.field,e.value);case"contains":return r.ilike(e.field,`%${e.value}%`);case"containss":return r.like(e.field,`%${e.value}%`);case"null":return r.is(e.field,null);case"or":let s=e.value.map(n=>`${n.field}.${n.operator}.${n.value}`).join(",");return r.or(s);default:return r.filter(e.field,A(e.operator),e.value)}},t=e=>{let r=b(T({},e),{message:e.message,statusCode:parseInt(e.code)});return Promise.reject(r)},I=e=>({getList:async({resource:r,pagination:s,filters:n,sort:c,metaData:u})=>{var y;let o=(s==null?void 0:s.current)||1,i=(s==null?void 0:s.pageSize)||10,d=e.from(r).select((y=u==null?void 0:u.select)!=null?y:"*",{count:"exact"}).range((o-1)*i,o*i-1);c==null||c.map(v=>{d.order(v.field,{ascending:v.order==="asc"})}),n==null||n.map(v=>{F(v,d)});let{data:l,count:R,error:w}=await d;return w?t(w):{data:l||[],total:R||0}},getMany:async({resource:r,ids:s,metaData:n})=>{var o,i;let{data:c,error:u}=await e.from(r).select((o=n==null?void 0:n.select)!=null?o:"*").in((i=n==null?void 0:n.id)!=null?i:"id",s);return u?t(u):{data:c||[]}},create:async({resource:r,variables:s})=>{let{data:n,error:c}=await e.from(r).insert(s);return c?t(c):{data:(n||[])[0]}},createMany:async({resource:r,variables:s})=>{let{data:n,error:c}=await e.from(r).insert(s);return c?t(c):{data:n}},update:async({resource:r,id:s,variables:n,metaData:c})=>{let u=e.from(r).update(n);c!=null&&c.id?u.eq(c==null?void 0:c.id,s):u.match({id:s});let{data:o,error:i}=await u;return i?t(i):{data:(o||[])[0]}},updateMany:async({resource:r,ids:s,variables:n,metaData:c})=>({data:await Promise.all(s.map(async o=>{let i=e.from(r).update(n);c!=null&&c.id?i.eq(c==null?void 0:c.id,o):i.match({id:o});let{data:d,error:l}=await i;return l?t(l):(d||[])[0]}))}),getOne:async({resource:r,id:s,metaData:n})=>{var i;let c=e.from(r).select((i=n==null?void 0:n.select)!=null?i:"*");n!=null&&n.id?c.eq(n==null?void 0:n.id,s):c.match({id:s});let{data:u,error:o}=await c;return o?t(o):{data:(u||[])[0]}},deleteOne:async({resource:r,id:s,metaData:n})=>{let c=e.from(r).delete();n!=null&&n.id?c.eq(n==null?void 0:n.id,s):c.match({id:s});let{data:u,error:o}=await c;return o?t(o):{data:(u||[])[0]}},deleteMany:async({resource:r,ids:s,metaData:n})=>({data:await Promise.all(s.map(async u=>{let o=e.from(r).delete();n!=null&&n.id?o.eq(n==null?void 0:n.id,u):o.match({id:u});let{data:i,error:d}=await o;return d?t(d):(i||[])[0]}))}),getApiUrl:()=>{throw Error("Not implemented on refine-supabase data provider.")},custom:()=>{throw Error("Not implemented on refine-supabase data provider.")}}),U=e=>({subscribe:({channel:r,types:s,params:n,callback:c})=>{let u=r.replace("resources/",""),o=d=>{var l;(s.includes("*")||s.includes(E[d.eventType]))&&(E[d.eventType]!=="created"&&(n==null?void 0:n.ids)!==void 0&&((l=d.new)==null?void 0:l.id)!==void 0?n.ids.map(String).includes(d.new.id.toString())&&c({channel:r,type:E[d.eventType],date:new Date(d.commit_timestamp),payload:d.new}):c({channel:r,type:E[d.eventType],date:new Date(d.commit_timestamp),payload:d.new}))},i=e.from(u).on(g[s[0]],o);return s.slice(1).map(d=>i.on(g[d],o)),i.subscribe()},unsubscribe:async r=>{e.removeSubscription(r)}}); //# sourceMappingURL=index.js.map