@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 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
- promises.push((async () => {
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) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shushed/helpers",
3
- "version": "0.0.90",
3
+ "version": "0.0.91",
4
4
  "author": "",
5
5
  "license": "UNLICENSED",
6
6
  "description": "",