get = (target, name) => {
    // @ts-expect-error: hack? What is going on here? Should we just remove the proxy stuff?
    if (name === 'then') return target;
    if (!target[name]) throw new Error(`Target does not have property "${name}"`);
    return (...args) => target[name](...args);
  }
@param {Record<string, (...args: any[]) => any>} target
@param {string} name
@return {(...args: any[]) => void}