@aws-amplify/analytics
Version:
Analytics category of aws-amplify
1 lines • 3.86 kB
Source Map (JSON)
{"version":3,"file":"EventBuffer.mjs","sources":["../../../../src/utils/eventBuffer/EventBuffer.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '@aws-amplify/core';\nconst logger = new ConsoleLogger('EventBuffer');\nexport class EventBuffer {\n constructor(config, getAnalyticsClient) {\n this.list = [];\n this.config = config;\n this.getAnalyticsClient = getAnalyticsClient;\n this.startEventLoop();\n }\n append(...events) {\n for (const event of events) {\n if (this.list.length + 1 > this.config.bufferSize) {\n logger.debug(`Exceed ${typeof event} event buffer limits, event dropped`);\n continue;\n }\n this.list.push(event);\n }\n }\n flushAll() {\n return this.submitEvents(this.list.length);\n }\n release() {\n this.list = [];\n if (this.timer) {\n clearInterval(this.timer);\n }\n }\n get length() {\n return this.list.length;\n }\n head(count) {\n return this.list.splice(0, count);\n }\n insertAtBeginning(...data) {\n this.list.unshift(...data);\n }\n startEventLoop() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n const { flushSize, flushInterval } = this.config;\n setInterval(() => {\n this.submitEvents(flushSize);\n }, flushInterval);\n }\n submitEvents(count) {\n const events = this.head(count);\n if (events.length === 0) {\n return Promise.resolve();\n }\n return this.getAnalyticsClient()(events).then(result => {\n if (result.length > 0) {\n this.insertAtBeginning(...result);\n }\n });\n }\n}\n"],"names":[],"mappings":";;AAAA;AACA;AAEA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;AACzC,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE;AAC5C,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACvB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AACrD,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,CAAC,GAAG,MAAM,EAAE;AACtB,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC/D,gBAAgB,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,SAAS;AACzB,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACvB,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,SAAS;AACT,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,iBAAiB,CAAC,GAAG,IAAI,EAAE;AAC/B,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,SAAS;AACT,QAAQ,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AACzD,QAAQ,WAAW,CAAC,MAAM;AAC1B,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AACzC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AACrC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI;AAChE,YAAY,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,CAAC;AAClD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL;;;;"}