@@ -4,6 +4,8 @@ import { enqueueOperation, OperationQueueItem, processNextOperation } from './op
44import { LiteREST } from './literest' ;
55import handleStudioRequest from "./studio" ;
66import { dumpDatabaseRoute } from './export/dump' ;
7+ import { exportTableToJsonRoute } from './export/json' ;
8+ import { exportTableToCsvRoute } from './export/csv' ;
79
810const DURABLE_OBJECT_ID = 'sql-durable-object' ;
911
@@ -125,8 +127,20 @@ export class DatabaseDurableObject extends DurableObject {
125127 return this . statusRoute ( request ) ;
126128 } else if ( url . pathname . startsWith ( '/rest' ) ) {
127129 return await this . liteREST . handleRequest ( request ) ;
128- } else if ( request . method === 'GET' && url . pathname === '/dump' ) {
130+ } else if ( request . method === 'GET' && url . pathname === '/export/ dump' ) {
129131 return dumpDatabaseRoute ( this . sql , this . operationQueue , this . ctx , this . processingOperation ) ;
132+ } else if ( request . method === 'GET' && url . pathname . startsWith ( '/export/json/' ) ) {
133+ const tableName = url . pathname . split ( '/' ) . pop ( ) ;
134+ if ( ! tableName ) {
135+ return createResponse ( undefined , 'Table name is required' , 400 ) ;
136+ }
137+ return exportTableToJsonRoute ( this . sql , this . operationQueue , this . ctx , this . processingOperation , tableName ) ;
138+ } else if ( request . method === 'GET' && url . pathname . startsWith ( '/export/csv/' ) ) {
139+ const tableName = url . pathname . split ( '/' ) . pop ( ) ;
140+ if ( ! tableName ) {
141+ return createResponse ( undefined , 'Table name is required' , 400 ) ;
142+ }
143+ return exportTableToCsvRoute ( this . sql , this . operationQueue , this . ctx , this . processingOperation , tableName ) ;
130144 } else {
131145 return createResponse ( undefined , 'Unknown operation' , 400 ) ;
132146 }
@@ -232,4 +246,4 @@ export default {
232246 */
233247 return await stub . fetch ( request ) ;
234248 } ,
235- } satisfies ExportedHandler < Env > ;
249+ } satisfies ExportedHandler < Env > ;
0 commit comments