ohwow 0.4.4 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api.js CHANGED
@@ -1,2 +1,2 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- function F(s,e){return{message:s,code:e}}function q(s,e){return{data:s,error:null,count:e}}function f(s,e){return{data:null,error:F(s,e)}}function A(s){let e=s.split(","),i=[],o=[];for(let p of e){let c=p.trim().split(".");if(c.length<3)continue;let l=c[0],t=c[1],r=c.slice(2).join(".");switch(t){case"eq":i.push(`${l} = ?`),o.push(r);break;case"neq":i.push(`${l} != ?`),o.push(r);break;case"gt":i.push(`${l} > ?`),o.push(r);break;case"gte":i.push(`${l} >= ?`),o.push(r);break;case"lt":i.push(`${l} < ?`),o.push(r);break;case"lte":i.push(`${l} <= ?`),o.push(r);break;case"is":r==="null"?i.push(`${l} IS NULL`):r==="true"?i.push(`${l} = 1`):r==="false"&&i.push(`${l} = 0`);break;case"ilike":i.push(`${l} LIKE ? COLLATE NOCASE`),o.push(r.replace(/%25/g,"%"));break;case"like":i.push(`${l} LIKE ?`),o.push(r);break;case"in":{let n=r.replace(/^\(/,"").replace(/\)$/,"").split(",");i.push(`${l} IN (${n.map(()=>"?").join(",")})`),o.push(...n)}break;default:i.push(`${l} ${t} ?`),o.push(r)}}return{sql:`(${i.join(" OR ")})`,params:o}}function O(s){if(s.conditions.length===0)return{sql:"",params:[]};let e=[],i=[];for(let o of s.conditions)e.push(o.sql),i.push(...o.params);return{sql:` WHERE ${e.join(" AND ")}`,params:i}}function B(s){return s.orderClauses.length===0?"":` ORDER BY ${s.orderClauses.join(", ")}`}function C(s){if(s.rangeFrom!==void 0&&s.rangeTo!==void 0)return` LIMIT ${s.rangeTo-s.rangeFrom+1} OFFSET ${s.rangeFrom}`;if(s.limitValue!==void 0){let e=s.offsetValue?` OFFSET ${s.offsetValue}`:"";return` LIMIT ${s.limitValue}${e}`}return""}function S(s){if(!s)return s;let e={...s};for(let[i,o]of Object.entries(e))if(typeof o=="string"&&(o.startsWith("{")&&o.endsWith("}")||o.startsWith("[")&&o.endsWith("]")))try{e[i]=JSON.parse(o)}catch{}return e}function y(s,e,i,o,p,c,l){let t={eq(r,n){return e.conditions.push({sql:`${r} = ?`,params:[n]}),t},neq(r,n){return e.conditions.push({sql:`${r} != ?`,params:[n]}),t},gt(r,n){return e.conditions.push({sql:`${r} > ?`,params:[n]}),t},gte(r,n){return e.conditions.push({sql:`${r} >= ?`,params:[n]}),t},lt(r,n){return e.conditions.push({sql:`${r} < ?`,params:[n]}),t},lte(r,n){return e.conditions.push({sql:`${r} <= ?`,params:[n]}),t},in(r,n){if(n.length===0)e.conditions.push({sql:"1 = 0",params:[]});else{let a=n.map(()=>"?").join(", ");e.conditions.push({sql:`${r} IN (${a})`,params:n})}return t},is(r,n){return n===null?e.conditions.push({sql:`${r} IS NULL`,params:[]}):e.conditions.push({sql:`${r} = ?`,params:[n?1:0]}),t},or(r){let n=A(r);return e.conditions.push(n),t},not(r,n,a){switch(n){case"eq":e.conditions.push({sql:`${r} != ?`,params:[a]});break;case"is":a===null&&e.conditions.push({sql:`${r} IS NOT NULL`,params:[]});break;default:e.conditions.push({sql:`NOT (${r} ${n} ?)`,params:[a]})}return t},order(r,n){let a=n?.ascending===!1?"DESC":"ASC";return e.orderClauses.push(`${r} ${a}`),t},limit(r){return e.limitValue=r,t},range(r,n){return e.rangeFrom=r,e.rangeTo=n,t},single(){return{then(r,n){try{let a=w(s,e,i,o,p,c,l),u=a.data;if(!u||Array.isArray(u)&&u.length===0){let d=f("Row not found","PGRST116");return Promise.resolve(d).then(r,n)}if(Array.isArray(u)&&u.length>1){let d=f("Multiple rows returned","PGRST116");return Promise.resolve(d).then(r,n)}let m=Array.isArray(u)?u[0]:u;return Promise.resolve(q(m,a.count)).then(r,n)}catch(a){let u=f(a.message);return n?Promise.resolve(u).then(r,n):Promise.resolve(u).then(r)}}}},maybeSingle(){return{then(r,n){try{let a=w(s,e,i,o,p,c,l),u=a.data;if(!u||Array.isArray(u)&&u.length===0)return Promise.resolve(q(null,a.count)).then(r,n);let m=Array.isArray(u)?u[0]:u;return Promise.resolve(q(m,a.count)).then(r,n)}catch(a){let u=f(a.message);return Promise.resolve(u).then(r,n)}}}},then(r,n){try{let a=w(s,e,i,o,p,c,l);return Promise.resolve(a).then(r,n)}catch(a){let u=f(a.message);return Promise.resolve(u).then(r,n)}}};return t}function w(s,e,i,o,p,c,l){let t=O(e),r=B(e),n=C(e);switch(i){case"select":{let a=o||"*";if(p?.head===!0&&p?.count==="exact"){let g=`SELECT COUNT(*) as count FROM ${e.table}${t.sql}`,h=s.prepare(g).get(...t.params);return{data:[],error:null,count:h.count}}let m=`SELECT ${a} FROM ${e.table}${t.sql}${r}${n}`,d=s.prepare(m).all(...t.params);d=d.map(g=>S(g));let T=null;if(p?.count==="exact"){let g=`SELECT COUNT(*) as count FROM ${e.table}${t.sql}`;T=s.prepare(g).get(...t.params).count}return{data:d,error:null,count:T}}case"insert":{let a=Array.isArray(c)?c:[c],u=[];for(let m of a){let d=m,T=Object.keys(d),g=T.map(R=>{let k=d[R];return k!==null&&typeof k=="object"?JSON.stringify(k):k}),h=T.map(()=>"?").join(", "),$=`INSERT INTO ${e.table} (${T.join(", ")}) VALUES (${h})`;s.prepare($).run(...g);let b=s.prepare("SELECT last_insert_rowid() as id").get(),E=s.prepare(`SELECT * FROM ${e.table} WHERE rowid = ?`).get(b.id);E&&u.push(S(E))}return{data:u,error:null}}case"update":{let a=l,u=Object.keys(a),m=u.map($=>`${$} = ?`).join(", "),d=u.map($=>{let b=a[$];return b!==null&&typeof b=="object"?JSON.stringify(b):b}),T=`UPDATE ${e.table} SET ${m}${t.sql}`;s.prepare(T).run(...d,...t.params);let g=`SELECT * FROM ${e.table}${t.sql}${r}${n}`,h=s.prepare(g).all(...t.params);return h=h.map($=>S($)),{data:h,error:null}}case"delete":{let a=`DELETE FROM ${e.table}${t.sql}`;return s.prepare(a).run(...t.params),{data:[],error:null}}}}function P(s,e){let i=e?.rpcHandlers??{};return{from(o){return{select(p,c){return y(s,{table:o,conditions:[],orderClauses:[]},"select",p,c)},insert(p){let c={table:o,conditions:[],orderClauses:[]};return{select(t){return y(s,c,"insert",t,void 0,p)},then(t,r){try{let n=w(s,c,"insert",void 0,void 0,p);return Promise.resolve({data:null,error:n.error}).then(t,r)}catch(n){let a=f(n.message);return Promise.resolve(a).then(t,r)}}}},update(p){let c={table:o,conditions:[],orderClauses:[]},t=y(s,c,"update",void 0,void 0,void 0,p);return t.select=r=>y(s,c,"update",r,void 0,void 0,p),t},delete(){return y(s,{table:o,conditions:[],orderClauses:[]},"delete")}}},rpc(o,p){let c=i[o];if(!c)return Promise.resolve(f(`RPC function '${o}' not registered`));try{let l=c(p??{});return Promise.resolve(q(l))}catch(l){return Promise.resolve(f(l.message))}}}}export{P as createSqliteAdapter};
2
+ function A(s,n){return{message:s,code:n}}function w(s,n){return{data:s,error:null,count:n}}function f(s,n){return{data:null,error:A(s,n)}}function O(s){let n=s.split(","),i=[],o=[];for(let p of n){let c=p.trim().split(".");if(c.length<3)continue;let l=c[0],t=c[1],r=c.slice(2).join(".");switch(t){case"eq":i.push(`${l} = ?`),o.push(r);break;case"neq":i.push(`${l} != ?`),o.push(r);break;case"gt":i.push(`${l} > ?`),o.push(r);break;case"gte":i.push(`${l} >= ?`),o.push(r);break;case"lt":i.push(`${l} < ?`),o.push(r);break;case"lte":i.push(`${l} <= ?`),o.push(r);break;case"is":r==="null"?i.push(`${l} IS NULL`):r==="true"?i.push(`${l} = 1`):r==="false"&&i.push(`${l} = 0`);break;case"ilike":i.push(`${l} LIKE ? COLLATE NOCASE`),o.push(r.replace(/%25/g,"%"));break;case"like":i.push(`${l} LIKE ?`),o.push(r);break;case"in":{let e=r.replace(/^\(/,"").replace(/\)$/,"").split(",");i.push(`${l} IN (${e.map(()=>"?").join(",")})`),o.push(...e)}break;default:i.push(`${l} ${t} ?`),o.push(r)}}return{sql:`(${i.join(" OR ")})`,params:o}}function B(s){if(s.conditions.length===0)return{sql:"",params:[]};let n=[],i=[];for(let o of s.conditions)n.push(o.sql),i.push(...o.params);return{sql:` WHERE ${n.join(" AND ")}`,params:i}}function C(s){return s.orderClauses.length===0?"":` ORDER BY ${s.orderClauses.join(", ")}`}function P(s){if(s.rangeFrom!==void 0&&s.rangeTo!==void 0)return` LIMIT ${s.rangeTo-s.rangeFrom+1} OFFSET ${s.rangeFrom}`;if(s.limitValue!==void 0){let n=s.offsetValue?` OFFSET ${s.offsetValue}`:"";return` LIMIT ${s.limitValue}${n}`}return""}function S(s){if(!s)return s;let n={...s};for(let[i,o]of Object.entries(n))if(typeof o=="string"&&(o.startsWith("{")&&o.endsWith("}")||o.startsWith("[")&&o.endsWith("]")))try{n[i]=JSON.parse(o)}catch{}return n}function y(s,n,i,o,p,c,l){let t={eq(r,e){return n.conditions.push({sql:`${r} = ?`,params:[e]}),t},neq(r,e){return n.conditions.push({sql:`${r} != ?`,params:[e]}),t},gt(r,e){return n.conditions.push({sql:`${r} > ?`,params:[e]}),t},gte(r,e){return n.conditions.push({sql:`${r} >= ?`,params:[e]}),t},lt(r,e){return n.conditions.push({sql:`${r} < ?`,params:[e]}),t},lte(r,e){return n.conditions.push({sql:`${r} <= ?`,params:[e]}),t},in(r,e){if(e.length===0)n.conditions.push({sql:"1 = 0",params:[]});else{let a=e.map(()=>"?").join(", ");n.conditions.push({sql:`${r} IN (${a})`,params:e})}return t},is(r,e){return e===null?n.conditions.push({sql:`${r} IS NULL`,params:[]}):n.conditions.push({sql:`${r} = ?`,params:[e?1:0]}),t},or(r){let e=O(r);return n.conditions.push(e),t},not(r,e,a){switch(e){case"eq":n.conditions.push({sql:`${r} != ?`,params:[a]});break;case"is":a===null&&n.conditions.push({sql:`${r} IS NOT NULL`,params:[]});break;default:n.conditions.push({sql:`NOT (${r} ${e} ?)`,params:[a]})}return t},order(r,e){let a=e?.ascending===!1?"DESC":"ASC";return n.orderClauses.push(`${r} ${a}`),t},limit(r){return n.limitValue=r,t},range(r,e){return n.rangeFrom=r,n.rangeTo=e,t},single(){return{then(r,e){try{let a=q(s,n,i,o,p,c,l),u=a.data;if(!u||Array.isArray(u)&&u.length===0){let m=f("Row not found","PGRST116");return Promise.resolve(m).then(r,e)}if(Array.isArray(u)&&u.length>1){let m=f("Multiple rows returned","PGRST116");return Promise.resolve(m).then(r,e)}let h=Array.isArray(u)?u[0]:u;return Promise.resolve(w(h,a.count)).then(r,e)}catch(a){let u=f(a.message);return e?Promise.resolve(u).then(r,e):Promise.resolve(u).then(r)}}}},maybeSingle(){return{then(r,e){try{let a=q(s,n,i,o,p,c,l),u=a.data;if(!u||Array.isArray(u)&&u.length===0)return Promise.resolve(w(null,a.count)).then(r,e);let h=Array.isArray(u)?u[0]:u;return Promise.resolve(w(h,a.count)).then(r,e)}catch(a){let u=f(a.message);return Promise.resolve(u).then(r,e)}}}},then(r,e){try{let a=q(s,n,i,o,p,c,l);return Promise.resolve(a).then(r,e)}catch(a){let u=f(a.message);return Promise.resolve(u).then(r,e)}}};return t}function q(s,n,i,o,p,c,l){let t=B(n),r=C(n),e=P(n);switch(i){case"select":{let a=o||"*";if(p?.head===!0&&p?.count==="exact"){let d=`SELECT COUNT(*) as count FROM ${n.table}${t.sql}`,T=s.prepare(d).get(...t.params);return{data:[],error:null,count:T.count}}let h=`SELECT ${a} FROM ${n.table}${t.sql}${r}${e}`,m=s.prepare(h).all(...t.params);m=m.map(d=>S(d));let g=null;if(p?.count==="exact"){let d=`SELECT COUNT(*) as count FROM ${n.table}${t.sql}`;g=s.prepare(d).get(...t.params).count}return{data:m,error:null,count:g}}case"insert":{let a=Array.isArray(c)?c:[c],u=[],h=m=>{let g=m,d=Object.keys(g),T=d.map(F=>{let k=g[F];return k!==null&&typeof k=="object"?JSON.stringify(k):k}),$=d.map(()=>"?").join(", "),b=`INSERT INTO ${n.table} (${d.join(", ")}) VALUES (${$})`;s.prepare(b).run(...T);let R=s.prepare("SELECT last_insert_rowid() as id").get(),E=s.prepare(`SELECT * FROM ${n.table} WHERE rowid = ?`).get(R.id);E&&u.push(S(E))};return a.length>1?s.transaction(g=>{for(let d of g)h(d)})(a):h(a[0]),{data:u,error:null}}case"update":{let a=l,u=Object.keys(a),h=u.map($=>`${$} = ?`).join(", "),m=u.map($=>{let b=a[$];return b!==null&&typeof b=="object"?JSON.stringify(b):b}),g=`UPDATE ${n.table} SET ${h}${t.sql}`;s.prepare(g).run(...m,...t.params);let d=`SELECT * FROM ${n.table}${t.sql}${r}${e}`,T=s.prepare(d).all(...t.params);return T=T.map($=>S($)),{data:T,error:null}}case"delete":{let a=`DELETE FROM ${n.table}${t.sql}`;return s.prepare(a).run(...t.params),{data:[],error:null}}}}function L(s,n){let i=n?.rpcHandlers??{};return{from(o){return{select(p,c){return y(s,{table:o,conditions:[],orderClauses:[]},"select",p,c)},insert(p){let c={table:o,conditions:[],orderClauses:[]};return{select(t){return y(s,c,"insert",t,void 0,p)},then(t,r){try{let e=q(s,c,"insert",void 0,void 0,p);return Promise.resolve({data:null,error:e.error}).then(t,r)}catch(e){let a=f(e.message);return Promise.resolve(a).then(t,r)}}}},update(p){let c={table:o,conditions:[],orderClauses:[]},t=y(s,c,"update",void 0,void 0,void 0,p);return t.select=r=>y(s,c,"update",r,void 0,void 0,p),t},delete(){return y(s,{table:o,conditions:[],orderClauses:[]},"delete")}}},rpc(o,p){let c=i[o];if(!c)return Promise.resolve(f(`RPC function '${o}' not registered`));try{let l=c(p??{});return Promise.resolve(w(l))}catch(l){return Promise.resolve(f(l.message))}}}}export{L as createSqliteAdapter};