import {AuthFns, Authorize} from "./types.js" export function authorize>( service: S, getAuth: () => Promise, ) { return new Proxy({}, { get: (target: any, key: string) => { if (key === "then") return undefined return target[key] ?? ( async(...p: any[]) => await service[key](await getAuth(), ...p) ) }, set: (target: any, key: string, value: any) => { target[key] = value return true }, }) as Authorize }