SynonymResolver
Defined in: SynonymResolver.ts:17
SynonymResolver provides synonym matching capabilities using the DataMuse API.
This is the basic version that includes:
- Singleton pattern
- Basic synonym fetching from DataMuse API
- Simple in-memory caching
- Error handling
Example
const resolver = SynonymResolver.getInstance();
const synonyms = await resolver.getSynonyms('jump');
// Returns: ['leap', 'hop', 'spring', 'bound', ...]
Methods
areSynonyms()
areSynonyms(word1, word2): Promise`<boolean>`;
Defined in: SynonymResolver.ts:158
Checks if two words are synonyms of each other.
This method checks if word2 appears in word1's synonym list.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| First word to compare |
|
| Second word to compare |
Returns
Promise<boolean>
True if the words are synonyms, false otherwise
Example
const resolver = SynonymResolver.getInstance();
const areSynonyms = await resolver.areSynonyms('jump', 'leap');
console.log(areSynonyms); // true
clearCache()
clearCache(): void;
Defined in: SynonymResolver.ts:128
Clears the entire synonym cache. Useful for testing or if you want to force fresh API calls.
Returns
void
getCacheSize()
getCacheSize(): number;
Defined in: SynonymResolver.ts:138
Returns the number of words currently cached.
Returns
number
Number of words in the cache
getMax_Results()
getMax_Results(): number;
Defined in: SynonymResolver.ts:225
Returns
number
getSynonyms()
getSynonyms(word): Promise<string[]>;
Defined in: SynonymResolver.ts:64
Fetches synonyms for a given word from the DataMuse API. Results are cached in memory to avoid repeated API calls for the same word.
The DataMuse API parameter 'ml' means "means like" which returns synonyms. API is free and doesn't require authentication.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| The word to find synonyms for |
Returns
Promise<string[]>
Array of synonym words (lowercase), empty array on error
Example
const resolver = SynonymResolver.getInstance();
const synonyms = await resolver.getSynonyms('jump');
console.log(synonyms); // ['leap', 'hop', 'spring', 'bound', ...]
isCached()
isCached(word): boolean;
Defined in: SynonymResolver.ts:186
Checks if synonyms for a specific word are already cached.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| The word to check |
Returns
boolean
True if synonyms are cached, false otherwise
Example
const resolver = SynonymResolver.getInstance();
if (resolver.isCached('jump')) {
console.log('Synonyms for "jump" are already cached');
}
prefetchSynonyms()
prefetchSynonyms(words): Promise`<void>`;
Defined in: SynonymResolver.ts:205
Pre-fetches and caches synonyms for multiple words at once. Useful for initializing the cache with commonly used words.
Parameters
| Parameter | Type | Description |
|---|---|---|
|
| Array of words to pre-fetch synonyms for |
Returns
Promise<void>
Resolves when all synonyms are fetched
Example
const resolver = SynonymResolver.getInstance();
await resolver.prefetchSynonyms(['jump', 'run', 'walk']);
// All synonyms are now cached and ready for instant lookup
setMAX_RESULTS()
setMAX_RESULTS(numberOfSynonyms): void;
Defined in: SynonymResolver.ts:215
Parameters
| Parameter | Type |
|---|---|
|
|
Returns
void
getInstance()
static getInstance(): SynonymResolver;
Defined in: SynonymResolver.ts:40
Returns the singleton instance of SynonymResolver.
Returns
SynonymResolver
The single shared instance