{"version":3,"file":"wrapAutoSend.cjs","sources":["../../../../src/rpc/wrapAutoSend.ts"],"sourcesContent":["import type { PendingRpcRequest, Rpc } from \"@solana/kit\";\n\nexport type AutoSent<T> = {\n  [K in keyof T]: T[K] extends (...args: infer A) => infer R\n    ? R extends { send: (...b: any[]) => infer S }\n      ? (...args: A) => S extends Promise<infer P> ? Promise<P> : Promise<S>\n      : T[K]\n    : T[K];\n};\n\nconst isPending = (x: unknown): x is PendingRpcRequest<any> => {\n  return !!x && typeof (x as any).send === \"function\";\n};\n\nexport const wrapAutoSend = <T extends Rpc<any>>(raw: T): AutoSent<T> => {\n  const added = new Map<string | symbol, any>();\n\n  return new Proxy(raw, {\n    get(target, prop, receiver) {\n      if (added.has(prop)) return added.get(prop);\n\n      const value = Reflect.get(target, prop, receiver);\n      if (typeof value !== \"function\") return value;\n\n      const wrapper = function (this: any, ...args: any[]) {\n        const result = value.apply(this, args);\n        return isPending(result) ? result.send() : result;\n      };\n\n      return wrapper as AutoSent<T>[keyof T];\n    },\n\n    set(_target, prop, value) {\n      added.set(prop, value);\n      return true;\n    },\n\n    has(target, prop) {\n      return added.has(prop) || Reflect.has(target, prop);\n    },\n  }) as AutoSent<T>;\n};\n"],"names":[],"mappings":";;AAUA,MAAM,SAAS,GAAG,CAAC,CAAU,KAAiC;IAC5D,OAAO,CAAC,CAAC,CAAC,IAAI,OAAQ,CAAS,CAAC,IAAI,KAAK,UAAU;AACrD,CAAC;AAEM,MAAM,YAAY,GAAG,CAAqB,GAAM,KAAiB;AACtE,IAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB;AAE7C,IAAA,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE;AACpB,QAAA,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAA;AACxB,YAAA,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAE3C,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;YACjD,IAAI,OAAO,KAAK,KAAK,UAAU;AAAE,gBAAA,OAAO,KAAK;AAE7C,YAAA,MAAM,OAAO,GAAG,UAAqB,GAAG,IAAW,EAAA;gBACjD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACtC,gBAAA,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM;AACnD,YAAA,CAAC;AAED,YAAA,OAAO,OAA+B;QACxC,CAAC;AAED,QAAA,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAA;AACtB,YAAA,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AACtB,YAAA,OAAO,IAAI;QACb,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,IAAI,EAAA;AACd,YAAA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;QACrD,CAAC;AACF,KAAA,CAAgB;AACnB;;;;"}