{"version":3,"file":"deDupeAsyncFunction.mjs","sources":["../../../src/utils/deDupeAsyncFunction.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * returns in-flight promise if there is one\n *\n * @param asyncFunction - asyncFunction to be deduped.\n * @returns - the return type of the callback\n */\nexport const deDupeAsyncFunction = (asyncFunction) => {\n    let inflightPromise;\n    return async (...args) => {\n        if (inflightPromise)\n            return inflightPromise;\n        inflightPromise = new Promise((resolve, reject) => {\n            asyncFunction(...args)\n                .then(result => {\n                resolve(result);\n            })\n                .catch(error => {\n                reject(error);\n            })\n                .finally(() => {\n                inflightPromise = undefined;\n            });\n        });\n        return inflightPromise;\n    };\n};\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,mBAAmB,GAAG,CAAC,aAAa,KAAK;AACtD,IAAI,IAAI,eAAe;AACvB,IAAI,OAAO,OAAO,GAAG,IAAI,KAAK;AAC9B,QAAQ,IAAI,eAAe;AAC3B,YAAY,OAAO,eAAe;AAClC,QAAQ,eAAe,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC3D,YAAY,aAAa,CAAC,GAAG,IAAI;AACjC,iBAAiB,IAAI,CAAC,MAAM,IAAI;AAChC,gBAAgB,OAAO,CAAC,MAAM,CAAC;AAC/B,YAAY,CAAC;AACb,iBAAiB,KAAK,CAAC,KAAK,IAAI;AAChC,gBAAgB,MAAM,CAAC,KAAK,CAAC;AAC7B,YAAY,CAAC;AACb,iBAAiB,OAAO,CAAC,MAAM;AAC/B,gBAAgB,eAAe,GAAG,SAAS;AAC3C,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,eAAe;AAC9B,IAAI,CAAC;AACL;;;;"}