azion
Version:
Azion Packages for Edge Computing.
2 lines (1 loc) • 13.4 kB
JavaScript
Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;var A=(t,e)=>_optionalChain([t, 'optionalAccess', _2 => _2.length])>e?t.slice(0,e):t;async function m(t,e,n,r=!0){let s=await fetch(t,e);if(!s.ok){let o=`HTTP error! Status: ${s.status} - ${s.statusText}`;throw n&&console.log(`Error in fetch: ${o}`),new Error(o)}if(r){let o=s.headers.get("content-type");if(!o||!o.includes("application/json")){let u=`Expected JSON response, but got: ${await s.text()}`;throw n&&console.log(`Error in fetch: ${u}`),new Error(u)}return await s.json()}else return await s.text()}var S=t=>t.map(e=>_optionalChain([e, 'optionalAccess', _3 => _3.error])?{message:e.error}:null).find(e=>e!==null);var f=(t="production")=>({production:"https://api.azion.com/v4/edge_sql/databases",development:"/v4/edge_sql/databases",staging:"https://stage-api.azion.com/v4/edge_sql/databases"})[t],z=(t,e={})=>{let n={Accept:"application/json",...e};return t?{...n,Authorization:`Token ${t}`}:n},R=(t,e,n)=>{let r={method:t,headers:e,credentials:"include"};return n&&(r.body=n),r},E=(t,e,n)=>{let r={message:"Error unknown",operation:n};return t.forEach(s=>{e[s]&&(r={message:Array.isArray(e[s])?e[s].join(", "):e[s],operation:n})}),r},v=async(t,e,n,r="production")=>{try{let s=f(r),o=z(t,{"Content-Type":"application/json"}),i=R("POST",o,JSON.stringify({name:e})),a=await m(s,i,n);return a.state?(n&&console.log("Response Post Database",JSON.stringify(a)),{state:a.state,data:{clientId:a.data.client_id,createdAt:a.data.created_at,deletedAt:a.data.deleted_at,id:a.data.id,isActive:a.data.is_active,name:a.data.name,status:a.data.status,updatedAt:a.data.updated_at}}):(a.error=E(["detail"],a,"post database"),{error:_nullishCoalesce(a.error, () => (JSON.stringify(a)))})}catch(s){return n&&console.error("Error creating EdgeDB:",s),{error:{message:s.toString(),operation:"post database"}}}},q=async(t,e,n,r="production")=>{try{let s=f(r),o=z(t),i=R("DELETE",o),a=await m(`${s}/${e}`,i,n);return a.state?{state:a.state,data:{id:e}}:(a.error=E(["detail"],a,"delete database"),{error:_nullishCoalesce(a.error, () => (JSON.stringify(a)))})}catch(s){return n&&console.error("Error deleting EdgeDB:",s),{error:{message:s.toString(),operation:"delete database"}}}},N=async(t,e,n,r,s="production")=>{try{let o=f(s),i=z(t,{"Content-Type":"application/json"}),a=R("POST",i,JSON.stringify({statements:n})),u=await m(`${o}/${e}/query`,a,r);if(!u.data||!Array.isArray(u.data))return u.error=E(["detail"],u,"post query"),{error:_nullishCoalesce(u.error, () => (JSON.stringify(u)))};let l=S(u.data);if(l)return{error:{message:_optionalChain([l, 'optionalAccess', _4 => _4.message]),operation:"post query"},state:u.state,data:u.data.filter(p=>_optionalChain([p, 'optionalAccess', _5 => _5.results]))};if(r){let p={...u,data:_optionalChain([u, 'optionalAccess', _6 => _6.data, 'optionalAccess', _7 => _7.map, 'call', _8 => _8(g=>({...g,results:{...g.results,rows:A(g.results.rows,10)}}))])};console.log("Response Query:",JSON.stringify(p))}return{state:u.state,data:u.data}}catch(o){return r&&console.error("Error querying EdgeDB:",o),{error:{message:o.toString(),operation:"post query"}}}},y=async(t,e,n,r="production")=>{try{let s=f(r),o=new URL(s);e&&Object.entries(e).forEach(([l,p])=>{p!==void 0&&o.searchParams.append(l,p.toString())});let i=z(t),a=R("GET",i),u=await m(o.toString(),a,n);if(!u.results)return u.error=E(["detail"],u,"get databases"),{error:_nullishCoalesce(u.error, () => (JSON.stringify(u)))};if(n){let l={...u,results:A(u.results,10)};console.log("Response Databases:",JSON.stringify(l))}return{links:_optionalChain([u, 'optionalAccess', _9 => _9.links]),count:u.count,results:u.results.map(l=>({clientId:l.client_id,createdAt:l.created_at,deletedAt:l.deleted_at,id:l.id,isActive:l.is_active,name:l.name,status:l.status,updatedAt:l.updated_at}))}}catch(s){return n&&console.error("Error getting all EdgeDBs:",s),{error:{message:s.toString(),operation:"get databases"}}}};var C=({results:t})=>{let e=[];if(t instanceof Array){if(t.length===0)return{results:[]};let n=null;e=_optionalChain([t, 'optionalAccess', _10 => _10.map, 'call', _11 => _11(r=>(_optionalChain([r, 'optionalAccess', _12 => _12.rows])&&(n=r.rows.map(s=>{let o={};return _optionalChain([r, 'optionalAccess', _13 => _13.columns])&&r.columns.forEach((i,a)=>{o[i]=s[a]}),o})),{statement:r.statement,rows:n}))])}return{results:e}};var w=()=>_optionalChain([globalThis, 'access', _14 => _14.Azion, 'optionalAccess', _15 => _15.Sql])||null,h= (_class =class{__init() {this.database=null}constructor(){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);this.database=_optionalChain([w, 'call', _32 => _32(), 'optionalAccess', _33 => _33.Database])||null}__init2() {this.mapperQuery=async e=>{let n=[];for(let r of e){let s=r.result.columnCount();if(s===0)continue;let o=[];for(let u=0;u<s;u++)o.push(r.result.columnName(u));let i=await r.result.next(),a=[];for(;i;){let u=[];for(let l=0;l<s;l++)u.push(i.getValue(l));a.push(u),i=await r.result.next()}n.push({statement:_optionalChain([r, 'optionalAccess', _34 => _34.statement, 'optionalAccess', _35 => _35.split, 'call', _36 => _36(" "), 'access', _37 => _37[0]]),columns:o,rows:a})}return Promise.resolve(n)}}__init3() {this.query=async(e,n,r)=>{if(_optionalChain([this, 'access', _38 => _38.database, 'optionalAccess', _39 => _39.open])){let s=await _optionalChain([this, 'access', _40 => _40.database, 'optionalAccess', _41 => _41.open, 'call', _42 => _42(e)]),o=n.map(async i=>{let a=await _optionalChain([s, 'optionalAccess', _43 => _43.query, 'call', _44 => _44(i)]);return{statement:i,result:a}});try{let i=await Promise.all(o);if(i.every(a=>_optionalChain([a, 'access', _45 => _45.result, 'optionalAccess', _46 => _46.columnCount, 'call', _47 => _47()])>0))return i}catch(i){throw _optionalChain([r, 'optionalAccess', _48 => _48.debug])&&console.error("Error querying:",_optionalChain([i, 'optionalAccess', _49 => _49.message])),i}}return[]}}}, _class);var x=async(t,e,n,r)=>{let s=await y(t,{search:e},_optionalChain([r, 'optionalAccess', _50 => _50.debug]));if(_optionalChain([s, 'optionalAccess', _51 => _51.error]))return{error:_optionalChain([s, 'optionalAccess', _52 => _52.error])};let o=_optionalChain([s, 'optionalAccess', _53 => _53.results]);if(!o||o.length===0)return{error:{message:`Database ${e} not found`,operation:"apiQuery"}};let i=o[0];if(!_optionalChain([i, 'optionalAccess', _54 => _54.id]))return{error:{message:`Database ${e} not found`,operation:"apiQuery"}};let{state:a,data:u,error:l}=await N(t,i.id,n,_optionalChain([r, 'optionalAccess', _55 => _55.debug])),p={state:"executed",results:void 0,toObject:()=>null},g=u&&u.length>0;return g&&(p={state:a,results:u.map((b,U)=>({statement:_optionalChain([n, 'access', _56 => _56[U], 'optionalAccess', _57 => _57.split, 'call', _58 => _58(" "), 'access', _59 => _59[0]]),columns:_optionalChain([b, 'optionalAccess', _60 => _60.results, 'optionalAccess', _61 => _61.columns])&&_optionalChain([b, 'optionalAccess', _62 => _62.results, 'optionalAccess', _63 => _63.columns, 'access', _64 => _64.length])>0?_optionalChain([b, 'optionalAccess', _65 => _65.results, 'optionalAccess', _66 => _66.columns]):void 0,rows:_optionalChain([b, 'optionalAccess', _67 => _67.results, 'optionalAccess', _68 => _68.rows])&&_optionalChain([b, 'optionalAccess', _69 => _69.results, 'optionalAccess', _70 => _70.rows, 'access', _71 => _71.length])>0?_optionalChain([b, 'optionalAccess', _72 => _72.results, 'optionalAccess', _73 => _73.rows]):void 0})),toObject:()=>C(p)}),{data:g?p:void 0,error:l}},P=async(t,e,n,r)=>{try{let s=new h,o=await s.query(e,n,r),i={results:[],toObject:()=>null},a=await s.mapperQuery(o);if(a&&a.length>0&&(i.state="executed-runtime",i.results=a),_optionalChain([r, 'optionalAccess', _74 => _74.debug])){let u={...i,results:i.results.map(l=>({...l,rows:A(_optionalChain([l, 'optionalAccess', _75 => _75.rows])||[],10)}))};console.log("Response Query:",JSON.stringify(u))}return{data:{...i,toObject:()=>C(i)}}}catch(s){return{error:{message:_optionalChain([s, 'optionalAccess', _76 => _76.message])||"Error executing query",operation:"executing query"}}}};var T=()=>typeof window<"u"&&typeof window.document<"u",J=!T()&&_optionalChain([process, 'optionalAccess', _77 => _77.env, 'access', _78 => _78.AZION_DEBUG])==="true",c=t=>T()?_nullishCoalesce(t, () => ("")):_nullishCoalesce(_nullishCoalesce(t, () => (_optionalChain([process, 'optionalAccess', _79 => _79.env, 'access', _80 => _80.AZION_TOKEN]))), () => ("")),$=t=>_nullishCoalesce(t, () => (!!J)),I=t=>T()?_nullishCoalesce(t, () => ("production")):_nullishCoalesce(_nullishCoalesce(t, () => (_optionalChain([process, 'optionalAccess', _81 => _81.env, 'access', _82 => _82.AZION_ENV]))), () => ("production")),d=t=>({...t,debug:$(_optionalChain([t, 'optionalAccess', _83 => _83.debug])),env:I(_optionalChain([t, 'optionalAccess', _84 => _84.env]))}),_=async(t,e,n)=>{let r=d(n),s=await v(c(t),e,r.debug,r.env);return s.data?{data:{state:s.state,...s.data,query:o=>D(c(t),e,o,r),execute:o=>O(c(t),e,o,r),getTables:o=>Q(e,{...o,debug:r.debug})}}:{error:s.error}},M=async(t,e,n)=>{let r=d(n),s=await q(c(t),e,r.debug,r.env);return _optionalChain([s, 'optionalAccess', _85 => _85.data])?{data:{state:_nullishCoalesce(s.state, () => ("executed")),id:s.data.id}}:{error:s.error}},j=async(t,e,n)=>{let r=d(n);if(!e||e==="")return{error:{message:"Database name is required",operation:"get database"}};let s=await y(c(t),{search:e},r.debug,r.env);if(!_optionalChain([s, 'optionalAccess', _86 => _86.results])||_optionalChain([s, 'optionalAccess', _87 => _87.results, 'optionalAccess', _88 => _88.length])===0)return{error:{message:`Database with name '${e}' not found`,operation:"get database"}};let o=_optionalChain([s, 'optionalAccess', _89 => _89.results, 'access', _90 => _90[0]]);return!o||o.id===void 0||o.name!==e?{error:{message:`Database with name '${e}' not found`,operation:"get database"}}:{data:{...o,query:i=>D(c(t),o.name,i,r),execute:i=>O(c(t),o.name,i,r),getTables:i=>Q(o.name,{...i,debug:r.debug})}}},L=async(t,e,n)=>{let r=d(n),s=await y(c(t),e,r.debug,r.env);if(_optionalChain([s, 'optionalAccess', _91 => _91.results])&&s.results.length>0){let o=s.results.map(i=>({...i,query:a=>D(c(t),i.name,a,r),execute:a=>O(c(t),i.name,a,r),getTables:a=>Q(i.name,{...a,debug:r.debug})}));return{data:{count:s.count,databases:o}}}return{error:s.error}},D=async(t,e,n,r)=>{let s=d(r);if(!e||e==="")return{error:{message:"Database name is required",operation:"query database"}};if(s.debug&&console.log(`Executing statements on database ${e}: ${n}`),!Array.isArray(n)||n.length===0)return{error:{message:'No statements to execute. Please provide at least one statement. e.g ["SELECT * FROM users"]',operation:"query database"}};if(!n.some(i=>["SELECT","PRAGMA"].some(a=>i.trim().toUpperCase().startsWith(a))))throw new Error("Only read statements are allowed");return s.external||!w()?x(t,e,n,s):P(t,e,n,s)},O=async(t,e,n,r)=>{let s=d(r);if(s.debug&&console.log(`Executing statements on database ${e}: ${n}`),!e||e==="")return{error:{message:"Database name is required",operation:"execute database"}};if(!Array.isArray(n)||n.length===0)return{error:{message:`No statements to execute. Please provide at least one statement. e.g ["INSERT INTO users (name) VALUES ('John')"]`,operation:"execute database"}};let o=n.some(a=>["INSERT","UPDATE","DELETE"].some(u=>a.trim().toUpperCase().startsWith(u))),i=n.some(a=>a.toUpperCase().match(/^(CREATE|DROP|ALTER|ATTACH|VACUUM|PRAGMA)/));return!i&&!o?{error:{message:"Only write statements are allowed",operation:"execute database"}}:i&&s.force===!1?{error:{message:"To admin statements, you need to set the force option to true",operation:"execute database"}}:s.external||!w()?x(t,e,n,s):P(t,e,n,s)},ie= exports.createDatabase =async(t,e)=>_(c(),t,e),ue= exports.deleteDatabase =(t,e)=>M(c(),t,e),le= exports.getDatabase =async(t,e)=>j(c(),t,e),ce= exports.getDatabases =(t,e)=>L(c(),t,e),Q= exports.getTables =async(t,e)=>{let n=d(e);return D(c(),t,["PRAGMA table_list"],n)},pe= exports.useQuery =(t,e,n)=>D(c(),t,e,n),de= exports.useExecute =async(t,e,n)=>O(c(),t,e,n),W= exports.createClient =t=>{let e=c(_optionalChain([t, 'optionalAccess', _92 => _92.token])),n=$(_optionalChain([t, 'optionalAccess', _93 => _93.options, 'optionalAccess', _94 => _94.debug]));return{createDatabase:s=>_(e,s,{...t,debug:n}),deleteDatabase:s=>M(e,s,{...t,debug:n}),getDatabase:s=>j(e,s,{...t,debug:n}),getDatabases:s=>L(e,s,{...t,debug:n})}};var ge=W;exports.createClient = W; exports.createDatabase = ie; exports.default = ge; exports.deleteDatabase = ue; exports.getDatabase = le; exports.getDatabases = ce; exports.getTables = Q; exports.useExecute = de; exports.useQuery = pe;
;