@ -43,7 +43,6 @@ const processedEntityChangeIds = new Set();
function logRows ( entityChanges ) {
function logRows ( entityChanges ) {
const filteredRows = entityChanges . filter ( row =>
const filteredRows = entityChanges . filter ( row =>
! processedEntityChangeIds . has ( row . id )
! processedEntityChangeIds . has ( row . id )
&& row . entityName !== 'recent_notes'
&& ( row . entityName !== 'options' || row . entityId !== 'openTabs' ) ) ;
&& ( row . entityName !== 'options' || row . entityId !== 'openTabs' ) ) ;
if ( filteredRows . length > 0 ) {
if ( filteredRows . length > 0 ) {
@ -103,7 +102,7 @@ function waitForEntityChangeId(desiredEntityChangeId) {
return Promise . resolve ( ) ;
return Promise . resolve ( ) ;
}
}
console . debug ( "Waiting for" , desiredEntityChangeId , 'current is' , lastProcessedEntityChangeId ) ;
console . debug ( ` Waiting for ${ desiredEntityChangeId } , last processed is ${ lastProcessedEntityChangeId } , last accepted ${ lastAcceptedEntityChangeId } ` ) ;
return new Promise ( ( res , rej ) => {
return new Promise ( ( res , rej ) => {
entityChangeIdReachedListeners . push ( {
entityChangeIdReachedListeners . push ( {
@ -127,7 +126,7 @@ function checkEntityChangeIdListeners() {
. filter ( l => l . desiredEntityChangeId > lastProcessedEntityChangeId ) ;
. filter ( l => l . desiredEntityChangeId > lastProcessedEntityChangeId ) ;
entityChangeIdReachedListeners . filter ( l => Date . now ( ) > l . start - 60000 )
entityChangeIdReachedListeners . filter ( l => Date . now ( ) > l . start - 60000 )
. forEach ( l => console . log ( ` Waiting for entityChangeId ${ l . desiredEntityChangeId } while current is ${ lastProcessedEntityChangeId } for ${ Math . floor ( ( Date . now ( ) - l . start ) / 1000 ) } s ` ) ) ;
. forEach ( l => console . log ( ` Waiting for entityChangeId ${ l . desiredEntityChangeId } while last processed is ${ lastProcessedEntityChangeId } (last accepted ${ lastAcceptedEntityChangeId } ) for ${ Math . floor ( ( Date . now ( ) - l . start ) / 1000 ) } s ` ) ) ;
}
}
async function runSafely ( syncHandler , syncData ) {
async function runSafely ( syncHandler , syncData ) {
@ -230,25 +229,6 @@ subscribeToMessages(message => {
} ) ;
} ) ;
async function processEntityChanges ( entityChanges ) {
async function processEntityChanges ( entityChanges ) {
const missingNoteIds = [ ] ;
for ( const { entityName , entity } of entityChanges ) {
if ( entityName === 'branches' && ! ( entity . parentNoteId in treeCache . notes ) ) {
missingNoteIds . push ( entity . parentNoteId ) ;
}
else if ( entityName === 'attributes'
&& entity . type === 'relation'
&& entity . name === 'template'
&& ! ( entity . noteId in treeCache . notes ) ) {
missingNoteIds . push ( entity . value ) ;
}
}
if ( missingNoteIds . length > 0 ) {
await treeCache . reloadNotes ( missingNoteIds ) ;
}
const loadResults = new LoadResults ( treeCache ) ;
const loadResults = new LoadResults ( treeCache ) ;
for ( const ec of entityChanges . filter ( ec => ec . entityName === 'notes' ) ) {
for ( const ec of entityChanges . filter ( ec => ec . entityName === 'notes' ) ) {
@ -391,6 +371,25 @@ async function processEntityChanges(entityChanges) {
loadResults . addOption ( ec . entity . name ) ;
loadResults . addOption ( ec . entity . name ) ;
}
}
const missingNoteIds = [ ] ;
for ( const { entityName , entity } of entityChanges ) {
if ( entityName === 'branches' && ! ( entity . parentNoteId in treeCache . notes ) ) {
missingNoteIds . push ( entity . parentNoteId ) ;
}
else if ( entityName === 'attributes'
&& entity . type === 'relation'
&& entity . name === 'template'
&& ! ( entity . value in treeCache . notes ) ) {
missingNoteIds . push ( entity . value ) ;
}
}
if ( missingNoteIds . length > 0 ) {
await treeCache . reloadNotes ( missingNoteIds ) ;
}
if ( ! loadResults . isEmpty ( ) ) {
if ( ! loadResults . isEmpty ( ) ) {
if ( loadResults . hasAttributeRelatedChanges ( ) ) {
if ( loadResults . hasAttributeRelatedChanges ( ) ) {
noteAttributeCache . invalidate ( ) ;
noteAttributeCache . invalidate ( ) ;