ConstA chemical name, e.g. zoutzuur or acetone
The English name and CAS, {} when nothing matches, or undefined if the lookup failed
await resolveEnglishChemical("zoutzuur");
// Returns: { name: "hydrochloric acid", cas: "7647-01-0" }
await resolveEnglishChemical("not a chemical");
// Returns: {}
export const resolveEnglishChemical: (term: string) => Promise<EnglishChemical | undefined> =
withTtlCache(resolveEnglishChemicalUncached, {
namespace: 'wikidataEnglish',
ttlMs: TTL_MS,
keyFromArgs: (term) => term.trim().toLowerCase(),
});
Resolves a chemical name written in English or a configured source language (see
wikidata.sourceLanguagesin config.json, e.g. Dutchzoutzuur) to its English name and CAS number. The term must equal a Wikidata label or alias exactly, so an unrelated top search hit is never trusted. Cached forwikidata.ttlDays; a definitive "no match" is cached as{}, a failed request (undefined) is not.