@@ -31,6 +31,7 @@ export class WebliteClient {
3131 try {
3232 let _sql = ''
3333 if ( Array . isArray ( sql ) && 'raw' in sql ) { // check raw property?
34+ _sql = this . _defaultDatabase ? `USE DATABASE ${ this . _defaultDatabase } ; ` : '' ;
3435 sql . forEach ( ( string , i ) => {
3536 // TemplateStringsArray splits the string before each variable
3637 // used in the template. Add the question mark
@@ -52,7 +53,7 @@ export class WebliteClient {
5253 if ( ! response . ok ) {
5354 throw new SQLiteCloudError ( `Failed to execute sql: ${ response . statusText } ` )
5455 }
55- return await response . json ( )
56+ return { error : null , ... ( await response . json ( ) ) }
5657 } catch ( error ) {
5758 return { data : null , error }
5859 }
@@ -61,12 +62,17 @@ export class WebliteClient {
6162 get defaultDatabase ( ) {
6263 return this . _defaultDatabase
6364 }
64-
65+ // Set default database for .sql() calls
6566 useDatabase ( name : string ) {
6667 this . _defaultDatabase = name
6768 return this
6869 }
6970
71+
72+ async createDatabase ( filename : string ) {
73+ return await this . sql `CREATE DATABASE ${ filename } ` ;
74+ }
75+
7076 async uploadDatabase (
7177 filename : string ,
7278 database : File | Buffer | Blob | string ,
@@ -88,6 +94,7 @@ export class WebliteClient {
8894 }
8995
9096 const headers = {
97+ 'Content-Type' : 'application/octet-stream' ,
9198 ...( opts . headers ?? { } ) ,
9299 ...this . headers ,
93100 ...DEFAULT_HEADERS ,
@@ -100,7 +107,8 @@ export class WebliteClient {
100107 if ( ! response . ok ) {
101108 throw new SQLiteCloudError ( `Failed to upload database: ${ response . statusText } ` )
102109 }
103- return await response . json ( )
110+
111+ return { error : null , ...( await response . json ( ) ) }
104112 } catch ( error ) {
105113 return { data : null , error }
106114 }
@@ -116,8 +124,10 @@ export class WebliteClient {
116124 if ( ! response . ok ) {
117125 throw new SQLiteCloudError ( `Failed to download database: ${ response . statusText } ` )
118126 }
127+
119128 const isNode = typeof window === 'undefined'
120- return isNode ? await response . arrayBuffer ( ) : await response . blob ( )
129+ const data = isNode ? await response . arrayBuffer ( ) : await response . blob ( )
130+ return { error : null , data }
121131 } catch ( error ) {
122132 return { data : null , error }
123133 }
@@ -137,7 +147,7 @@ export class WebliteClient {
137147 if ( ! response . ok ) {
138148 throw new SQLiteCloudError ( `Failed to delete database: ${ response . statusText } ` )
139149 }
140- return await response . json ( )
150+ return { error : null , ... ( await response . json ( ) ) }
141151 } catch ( error ) {
142152 return { data : null , error }
143153 }
@@ -150,19 +160,7 @@ export class WebliteClient {
150160 if ( ! response . ok ) {
151161 throw new SQLiteCloudError ( `Failed to list databases: ${ response . statusText } ` )
152162 }
153- return await response . json ( )
154- } catch ( error ) {
155- return { data : null , error }
156- }
157- }
158-
159- async createDatabase ( filename : string ) {
160- try {
161- const response = await this . sql `CREATE DATABASE ${ filename } `
162- if ( ! response . ok ) {
163- throw new SQLiteCloudError ( `Failed to create database: ${ response . statusText } ` )
164- }
165- return await response . json ( )
163+ return { error : null , ...( await response . json ( ) ) }
166164 } catch ( error ) {
167165 return { data : null , error }
168166 }
0 commit comments