V3

enginev3

new DendronEngine3(
    fileStore = new NodeJSFileStore()
    noteStore: new NoteStore(
        fileStore,
        new NoteMetadataStore(),
        URI.file(wsRoot)
    ),
)
init {
    initSchema
    initNotes
}

initNotes {
    vaults.map vault {
        maybeFiles = _fileStore.readDir vault
        notesCache = new NotesFileSystemCache
        // 953
        notesDict = new NoteParserV2.parseFiles maybeFiles
    }
    addBacklinks

}
parseFiles {
    ...
    unseenKeys 
    rootProps := 
    // root hierarchies
    asyncLoopOneAtATime(fileMetaDict).forEach ent {
        parseNoteProps(ent)
    }

    // 203
    // parse everything else
    ...

    // 266
    domains.map {
        SchemaUtils.matchDomain
    }

    unseenKeys.forEach {
        cache.drop(unseenKey)
    }

    if cache.numCacheMisses > 0  {
        cache.writeToFileSystem
    }
}


parseNoteProps note {
    file2NoteWithCache note
}

file2NoteWithCache {
    cacheEntry := 
    if matchHash {
        return
    } else {
        cache.set
        incrementCacheMiss
    }
}

Backlinks