@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 518 B
JavaScript
import{Trie}from"./Trie.js";export class TextDictionary{words;index;constructor(){this.words=new Map,this.index=Trie.newStringTrie()}addWord(r){let e=this.words.get(r)||0;++e,this.words.set(r,e),this.index.add(r)}removeWord(r){let e=this.words.get(r)||0;if(e){if(1===e)return this.words.delete(r),void this.index.remove(r);--e,this.words.set(r,e)}}wordsWithPrefix(r){return this.index.words(r)}hasWord(r){return this.words.has(r)}wordCount(r){return this.words.get(r)||0}reset(){this.words.clear(),this.index.clear()}}