npm package diff

Package: @forge/events

Versions: 2.0.10-next.0 - 2.0.10-next.0-experimental-4cf7fd3

File: package/out/queue.js

Index: package/out/queue.js
===================================================================
--- package/out/queue.js
+++ package/out/queue.js
@@ -11,28 +11,57 @@
     apiClient;
     constructor(queueParams, apiClient = api_1.__requestAtlassianAsApp) {
         this.queueParams = queueParams;
         this.apiClient = apiClient;
+        this.validate();
+    }
+    validate() {
         (0, validators_1.validateQueueKey)(this.queueParams.key);
     }
+    isFifo() {
+        return false;
+    }
+    getEndpoint() {
+        return queries_1.PUSH_PATH;
+    }
     async push(events) {
-        const validEvents = (0, validators_1.validatePushEvents)(events);
+        const validEvents = (0, validators_1.validatePushEvents)(events, this.isFifo());
         const queueName = this.queueParams.key;
         const jobId = (0, uuid_1.v4)();
-        const pushRequest = {
-            queueName: queueName,
-            jobId: jobId,
-            type: 'avi:forge:app:event',
-            schema: 'ari:cloud:ecosystem::forge/app-event-2',
-            payload: validEvents,
-            time: new Date().toISOString()
-        };
-        const response = await (0, queries_1.post)(queries_1.PUSH_PATH, pushRequest, this.apiClient);
+        const pushRequest = this.populatePayload(queueName, jobId, validEvents);
+        const endpoint = this.getEndpoint();
+        const response = await (0, queries_1.post)(endpoint, pushRequest, this.apiClient);
         const result = { jobId };
-        await (0, validators_1.validatePushAPIResponse)(pushRequest, response, result);
+        if (this.isFifo()) {
+            return await (0, validators_1.validateFifoResponse)(pushRequest, response);
+        }
+        else {
+            await (0, validators_1.validatePushAPIResponse)(pushRequest, response, result);
+        }
         return result;
     }
     getJob(jobId) {
         return new jobProgress_1.JobProgress(this.queueParams, jobId, this.apiClient);
     }
+    populatePayload(queueName, jobId, validEvents) {
+        if (this.isFifo()) {
+            validEvents.forEach((event) => {
+                event.queueName = queueName;
+            });
+            return {
+                events: validEvents,
+                queueName: queueName,
+                jobId: jobId,
+                time: new Date().toISOString()
+            };
+        }
+        return {
+            queueName,
+            jobId,
+            type: 'avi:forge:app:event',
+            schema: 'ari:cloud:ecosystem::forge/app-event-2',
+            payload: validEvents,
+            time: new Date().toISOString()
+        };
+    }
 }
 exports.Queue = Queue;