get(cacheKey, settings) {
    if (this.map.has(cacheKey)) {
      const f = this.map.get(cacheKey);
      // check freshness
      // @ts-expect-error TS can't narrow properly from `has` and `get`
      if (process.hrtime(f.lastSeen)[0] < settings.lifetime) { return f.result; }
    } else {
      log('cache miss for', cacheKey);
    }
    // cache miss
    return undefined;
  }
@type {typeof import('./ModuleCache').ModuleCache.prototype.get}