@@ -18,7 +18,6 @@ import { ok, Result } from "../Result.js";
1818import {
1919 createSqlite ,
2020 CreateSqliteDriverDep ,
21- explainSqliteQueryPlan ,
2221 sql ,
2322 SqliteDep ,
2423 SqliteError ,
@@ -31,7 +30,6 @@ import {
3130 MessageHandlers ,
3231 Worker ,
3332} from "../Worker.js" ;
34- import { makePatches , QueryPatches } from "./Diff.js" ;
3533import {
3634 AppOwner ,
3735 createAppOwner ,
@@ -45,11 +43,11 @@ import {
4543} from "./Owner.js" ;
4644import { ProtocolError , protocolVersion } from "./Protocol.js" ;
4745import {
48- createQueryRowsCache ,
49- deserializeQuery ,
50- emptyRows ,
46+ createGetQueryRowsCache ,
47+ GetQueryRowsCacheDep ,
48+ loadQueries ,
5149 Query ,
52- QueryRowsCache ,
50+ QueryPatches ,
5351} from "./Query.js" ;
5452import {
5553 DbSchema ,
@@ -316,24 +314,20 @@ type DbWorkerDeps = Omit<
316314 DbWorkerPlatformDeps ,
317315 keyof CreateSqliteDriverDep | keyof CreateWebSocketDep
318316> &
317+ AppOwnerDep &
319318 GetQueryRowsCacheDep &
320319 PostMessageDep &
321320 SqliteDep &
322- SyncDep &
323- AppOwnerDep ;
321+ SyncDep ;
324322
325- interface GetQueryRowsCacheDep {
326- readonly getQueryRowsCache : ( tabId : Id ) => QueryRowsCache ;
323+ export interface AppOwnerDep {
324+ readonly appOwner : AppOwner ;
327325}
328326
329327export interface PostMessageDep {
330328 readonly postMessage : ( message : DbWorkerOutput ) => void ;
331329}
332330
333- export interface AppOwnerDep {
334- readonly appOwner : AppOwner ;
335- }
336-
337331export const createDbWorkerForPlatform = (
338332 platformDeps : DbWorkerPlatformDeps ,
339333) : DbWorker =>
@@ -432,8 +426,8 @@ const createDbWorkerDeps = async (
432426 if ( ! result . ok ) return result ;
433427 }
434428
435- const result = ensureDbSchema ( deps ) ( initMessage . dbSchema , dbSchema . value ) ;
436- if ( ! result . ok ) return result ;
429+ const result1 = ensureDbSchema ( deps ) ( initMessage . dbSchema , dbSchema . value ) ;
430+ if ( ! result1 . ok ) return result1 ;
437431
438432 const sync = createSync ( {
439433 ...deps ,
@@ -456,20 +450,9 @@ const createDbWorkerDeps = async (
456450
457451 sync . value . useOwner ( true , appOwner ) ;
458452
459- const tabQueryRowsCacheMap = new Map < Id , QueryRowsCache > ( ) ;
460-
461- const getQueryRowsCache = ( tabId : Id ) => {
462- let cache = tabQueryRowsCacheMap . get ( tabId ) ;
463- if ( ! cache ) {
464- cache = createQueryRowsCache ( ) ;
465- tabQueryRowsCacheMap . set ( tabId , cache ) ;
466- }
467- return cache ;
468- } ;
469-
470453 return ok ( {
471454 ...deps ,
472- getQueryRowsCache,
455+ getQueryRowsCache : createGetQueryRowsCache ( ) ,
473456 postMessage,
474457 sync : sync . value ,
475458 appOwner,
@@ -718,41 +701,3 @@ const handlers: Omit<MessageHandlers<DbWorkerInput, DbWorkerDeps>, "init"> = {
718701 deps . sync . useOwner ( message . use , message . owner ) ;
719702 } ,
720703} ;
721-
722- const loadQueries =
723- ( deps : GetQueryRowsCacheDep & SqliteDep ) =>
724- (
725- tabId : Id ,
726- queries : ReadonlyArray < Query > ,
727- ) : Result < ReadonlyArray < QueryPatches > , SqliteError > => {
728- const queriesRows = [ ] ;
729-
730- for ( const query of queries ) {
731- const sqlQuery = deserializeQuery ( query ) ;
732- const result = deps . sqlite . exec ( sqlQuery ) ;
733- if ( ! result . ok ) return result ;
734-
735- queriesRows . push ( [ query , result . value . rows ] as const ) ;
736- if ( sqlQuery . options ?. logExplainQueryPlan ) {
737- explainSqliteQueryPlan ( deps ) ( sqlQuery ) ;
738- }
739- }
740-
741- const queryRowsCache = deps . getQueryRowsCache ( tabId ) ;
742-
743- const previousState = queryRowsCache . get ( ) ;
744- queryRowsCache . set ( queriesRows ) ;
745-
746- const currentState = queryRowsCache . get ( ) ;
747-
748- const queryPatchesArray = queries . map (
749- ( query ) : QueryPatches => ( {
750- query,
751- patches : makePatches (
752- previousState . get ( query ) ,
753- currentState . get ( query ) ?? emptyRows ,
754- ) ,
755- } ) ,
756- ) ;
757- return ok ( queryPatchesArray ) ;
758- } ;
0 commit comments