diff --git a/dist/index.d.ts b/dist/index.d.ts index eff52e3..8a883bd 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -38,5 +38,7 @@ export declare abstract class Client extends EventEmitter { export declare function load(module?: string): Promise; type ClientConstructor = new (...args: any[]) => U; export declare const factory: (type: ClientConstructor, module: string) => (...args: any) => T; +export declare function maybeGetAsyncProperty(object: any): Promise; +export declare function isPromise(obj: Promise): boolean; export {}; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index f9308ab..5c3b6ba 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,cAAc,YAAY,EAAE,UAAU,CAAC;AACzD,KAAK,aAAa,GAAG,cAAc,YAAY,EAAE,aAAa,CAAC;AAC/D,KAAK,MAAM,GAAG,cAAc,YAAY,EAAE,MAAM,CAAC;AACjD,KAAK,GAAG,GAAG,cAAc,YAAY,EAAE,GAAG,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzE,KAAK,kBAAkB,GAAG,CACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACT,aAAa,EAAE,MAAM,KAClB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEvD,QAAA,IAAI,UAAU,EAAE,UAAU,CAAC;AAC3B,QAAA,IAAI,aAAa,EAAE,aAAa,CAAC;AACjC,QAAA,IAAI,GAAG,EAAE,GAAG,CAAC;AACb,QAAA,IAAI,MAAM,EAAE,MAAM,CAAC;AAEnB,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,EAAE,kBAAkB,CAAC;CACnC;AAED,8BAAsB,MAAO,SAAQ,YAAY;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAkB;IAEtC,IAAI,UAAU,IAAI,eAAe,CAEhC;IAED,OAAO,CAAC,IAAI,CAAC,CAAM;IAEnB,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,cAAc,CAAC,CAAqB;IAE5C,IAAI,aAAa,IAAI,kBAAkB,CAEtC;IAEY,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/D,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAM1C,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG;cAKjC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAK3E;AAED,wBAAsB,IAAI,CACxB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,CA+BrC;AAED,KAAK,iBAAiB,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEtD,eAAO,MAAM,OAAO,kEAEV,MAAM,eAEY,GAAG,MA2B9B,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,cAAc,YAAY,EAAE,UAAU,CAAC;AACzD,KAAK,aAAa,GAAG,cAAc,YAAY,EAAE,aAAa,CAAC;AAC/D,KAAK,MAAM,GAAG,cAAc,YAAY,EAAE,MAAM,CAAC;AACjD,KAAK,GAAG,GAAG,cAAc,YAAY,EAAE,GAAG,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzE,KAAK,kBAAkB,GAAG,CACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACT,aAAa,EAAE,MAAM,KAClB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEvD,QAAA,IAAI,UAAU,EAAE,UAAU,CAAC;AAC3B,QAAA,IAAI,aAAa,EAAE,aAAa,CAAC;AACjC,QAAA,IAAI,GAAG,EAAE,GAAG,CAAC;AACb,QAAA,IAAI,MAAM,EAAE,MAAM,CAAC;AAEnB,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,UAAU,EAAE,eAAe,CAAC;IAC5B,aAAa,EAAE,kBAAkB,CAAC;CACnC;AAED,8BAAsB,MAAO,SAAQ,YAAY;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAkB;IAEtC,IAAI,UAAU,IAAI,eAAe,CAEhC;IAED,OAAO,CAAC,IAAI,CAAC,CAAM;IAEnB,IAAI,GAAG,IAAI,GAAG,CAEb;IAED,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,OAAO,CAAC,cAAc,CAAC,CAAqB;IAE5C,IAAI,aAAa,IAAI,kBAAkB,CAEtC;IAEY,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/D,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAM1C,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,GAAG;cAKjC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAK3E;AAED,wBAAsB,IAAI,CACxB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,CA+BrC;AAED,KAAK,iBAAiB,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEtD,eAAO,MAAM,OAAO,kEAEV,MAAM,eAEY,GAAG,MA2B9B,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,GAAG,gBAUtD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAM1C"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 750f371..065a290 100644 --- a/dist/index.js +++ b/dist/index.js @@ -101,3 +101,17 @@ export const factory = function (type, module) { }); }; }; +export async function maybeGetAsyncProperty(object) { + if (typeof object === "function") { + object = object(); + } + if (isPromise(object)) { + object = await object; + } + return object; +} +export function isPromise(obj) { + return (!!obj && + (typeof obj === "object" || typeof obj === "function") && + typeof obj.then === "function"); +}