@shushed/helpers 0.0.90 → 0.0.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.js +18 -3
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -29557,10 +29557,12 @@ declare class PubSubHelper extends Runtime {
|
|
|
29557
29557
|
publish(options: Partial<Message> & {
|
|
29558
29558
|
topicName: string;
|
|
29559
29559
|
sourceSystem: string;
|
|
29560
|
+
createQueue?: boolean;
|
|
29560
29561
|
}, payload: AtLeastOne<MessageBody, LastModifiedKeys>[], orgMessage?: Message): Promise<string[]>;
|
|
29561
29562
|
publish(options: Partial<Message> & {
|
|
29562
29563
|
topicName: string;
|
|
29563
29564
|
sourceSystem: string;
|
|
29565
|
+
createQueue?: boolean;
|
|
29564
29566
|
}, payload: AtLeastOne<MessageBody, LastModifiedKeys>, orgMessage?: Message): Promise<string[]>;
|
|
29565
29567
|
getSubscriptionName(topicName: string): string;
|
|
29566
29568
|
createOrUpdate(opts: {
|
package/dist/index.js
CHANGED
|
@@ -837,7 +837,7 @@ var PubSubHelper = class extends Runtime {
|
|
|
837
837
|
const promises = [];
|
|
838
838
|
for (let i = 0; i < normPayloads.length; i++) {
|
|
839
839
|
const normPayload = normPayloads[i];
|
|
840
|
-
|
|
840
|
+
const createPromise = async (allowQueueCreation) => {
|
|
841
841
|
if (hasError) {
|
|
842
842
|
return null;
|
|
843
843
|
}
|
|
@@ -856,12 +856,27 @@ var PubSubHelper = class extends Runtime {
|
|
|
856
856
|
const result = await topic.publishMessage({
|
|
857
857
|
data: Buffer.from(JSON.stringify(normPayload)),
|
|
858
858
|
attributes
|
|
859
|
-
}).catch((err) => {
|
|
859
|
+
}).catch(async (err) => {
|
|
860
|
+
if (allowQueueCreation && options.createQueue !== false && err.message && err.message.indexOf("NOT_FOUND") !== -1) {
|
|
861
|
+
await this.ensureTopicExists(options.topicName);
|
|
862
|
+
return "-1";
|
|
863
|
+
}
|
|
860
864
|
hasError = true;
|
|
861
865
|
throw err;
|
|
862
866
|
});
|
|
863
867
|
return result;
|
|
864
|
-
}
|
|
868
|
+
};
|
|
869
|
+
if (i === 0) {
|
|
870
|
+
const resultOfFirstMessage = await createPromise(true);
|
|
871
|
+
if (resultOfFirstMessage === "-1" && options.createQueue !== false) {
|
|
872
|
+
return this.publish(Object.assign({}, options, {
|
|
873
|
+
createQueue: false
|
|
874
|
+
}), normPayloads, orgMessage);
|
|
875
|
+
}
|
|
876
|
+
promises.push(Promise.resolve(resultOfFirstMessage));
|
|
877
|
+
} else {
|
|
878
|
+
promises.push(createPromise(false));
|
|
879
|
+
}
|
|
865
880
|
}
|
|
866
881
|
return Promise.allSettled(promises).then((x) => {
|
|
867
882
|
return x.map((y) => {
|