import { ReferenceIndex } from './reference-index' import { Changes } from './types' export default class BasicReferenceIndex extends ReferenceIndex { fileIndex: Map> = new Map() updateIndex({ updates, deletes }: Changes): Set { for (const path of deletes) { this.fileIndex.delete(path) } for (const { path, content } of updates) { const fileReferences: Set = new Set() const entries = this.parseEntries(content) for (const entry of entries) { fileReferences.add(entry.EntryKey) } this.fileIndex.set(path, fileReferences) } this.keys = new Set( this.fileIndex.values().flatMap(entry => Array.from(entry)) ) return this.keys } }