@anthor/core-pubsub 1.43.0 → 1.49.0-alpha.7

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/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.49.0-alpha.7](https://github.com/anthorteam/backend/compare/v1.49.0-alpha.6...v1.49.0-alpha.7) (2022-06-09)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * activities dependencies ([e61c538](https://github.com/anthorteam/backend/commit/e61c538831a59de0d9319fc2dadefc4d22cd9a2d))
12
+ * created a isProjectIdSet fn ([b8824d7](https://github.com/anthorteam/backend/commit/b8824d7a78b3a6bc240adfcd524c8942b4080e01))
13
+
14
+
15
+ ### Features
16
+
17
+ * **core-pubsub:** created new fn to be able to publish with retry options ([121679c](https://github.com/anthorteam/backend/commit/121679cb93fc461ac8f784646b362c068f737150))
18
+
19
+
20
+
21
+
22
+
6
23
  # [1.43.0](https://github.com/anthorteam/backend/compare/v1.43.0-alpha.0...v1.43.0) (2022-05-12)
7
24
 
8
25
  **Note:** Version bump only for package @anthor/core-pubsub
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ import { RetryOptions } from 'google-gax';
2
3
  export declare type PubSubData = Record<string, any>;
3
4
  export interface PubSubEventData<T> {
4
5
  schemaVersion: number;
@@ -11,7 +12,29 @@ export interface PubSubEventData<T> {
11
12
  export interface ConsumerInput {
12
13
  data: string;
13
14
  }
15
+ /**
16
+ * @see https://cloud.google.com/pubsub/docs/samples/pubsub-publisher-retry-settings
17
+ */
18
+ export declare enum PubSubRetryCodes {
19
+ ABORTED = 10,
20
+ CANCELLED = 1,
21
+ DEADLINE_EXCEEDED = 4,
22
+ INTERNAL = 13,
23
+ RESOURCE_EXHAUSTED = 8,
24
+ UNAVAILABLE = 14,
25
+ UNKNOWN = 2
26
+ }
27
+ export interface PublishOnQueueV1Params<T> {
28
+ topicNameOrId: string;
29
+ args: PubSubData | PubSubEventData<T>;
30
+ projectId?: string;
31
+ retrySettings?: Partial<RetryOptions>;
32
+ }
14
33
  export declare const encodeBuffer: (data: PubSubData) => Buffer;
15
34
  export declare const decodeBuffer: (content: string) => PubSubData;
16
35
  export declare const publishOnQueue: <T>(topic: string, args: Record<string, any> | PubSubEventData<T>, projectId?: string) => Promise<string>;
17
36
  export declare const publishEventDrivenMessage: <T>(topic: string, args: PubSubEventData<T>, projectId?: string) => Promise<string>;
37
+ /**
38
+ * @see https://cloud.google.com/pubsub/docs/samples/pubsub-publisher-retry-settings
39
+ */
40
+ export declare const publishOnQueueWithRetry: <T>({ topicNameOrId, args, retrySettings, projectId, }: PublishOnQueueV1Params<T>) => Promise<string>;
package/dist/index.js CHANGED
@@ -1,11 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.publishEventDrivenMessage = exports.publishOnQueue = exports.decodeBuffer = exports.encodeBuffer = void 0;
3
+ exports.publishOnQueueWithRetry = exports.publishEventDrivenMessage = exports.publishOnQueue = exports.decodeBuffer = exports.encodeBuffer = exports.PubSubRetryCodes = void 0;
4
4
  const core_stackdriver_1 = require("@anthor/core-stackdriver");
5
5
  const pubsub_1 = require("@google-cloud/pubsub");
6
6
  const console_1 = require("console");
7
+ /**
8
+ * @see https://cloud.google.com/pubsub/docs/samples/pubsub-publisher-retry-settings
9
+ */
10
+ var PubSubRetryCodes;
11
+ (function (PubSubRetryCodes) {
12
+ PubSubRetryCodes[PubSubRetryCodes["ABORTED"] = 10] = "ABORTED";
13
+ PubSubRetryCodes[PubSubRetryCodes["CANCELLED"] = 1] = "CANCELLED";
14
+ PubSubRetryCodes[PubSubRetryCodes["DEADLINE_EXCEEDED"] = 4] = "DEADLINE_EXCEEDED";
15
+ PubSubRetryCodes[PubSubRetryCodes["INTERNAL"] = 13] = "INTERNAL";
16
+ PubSubRetryCodes[PubSubRetryCodes["RESOURCE_EXHAUSTED"] = 8] = "RESOURCE_EXHAUSTED";
17
+ PubSubRetryCodes[PubSubRetryCodes["UNAVAILABLE"] = 14] = "UNAVAILABLE";
18
+ PubSubRetryCodes[PubSubRetryCodes["UNKNOWN"] = 2] = "UNKNOWN";
19
+ })(PubSubRetryCodes = exports.PubSubRetryCodes || (exports.PubSubRetryCodes = {}));
7
20
  exports.encodeBuffer = (data) => Buffer.from(JSON.stringify(data));
8
21
  exports.decodeBuffer = (content) => JSON.parse(Buffer.from(content, 'base64').toString());
22
+ const isProjectIdSet = (projectId) => (!projectId
23
+ || projectId === 'undefined'
24
+ || projectId === undefined
25
+ || projectId === 'null'
26
+ || projectId === null);
9
27
  exports.publishOnQueue = async (topic, args, projectId = process.env.GCP_PROJECT) => {
10
28
  if (process.env.ENV === 'local') {
11
29
  const console = new console_1.Console(process.stdout, process.stderr);
@@ -14,14 +32,41 @@ exports.publishOnQueue = async (topic, args, projectId = process.env.GCP_PROJECT
14
32
  report(`will be published at ${topic} topic`);
15
33
  return null;
16
34
  }
17
- if (!projectId
18
- || projectId === 'undefined'
19
- || projectId === undefined
20
- || projectId === 'null'
21
- || projectId === null) {
35
+ if (isProjectIdSet(projectId)) {
22
36
  throw new Error('GCloud project id not set. You should set `GCP_PROJECT` environment variable');
23
37
  }
24
38
  return (new pubsub_1.PubSub({ projectId })).topic(topic).publish(exports.encodeBuffer(args));
25
39
  };
26
40
  exports.publishEventDrivenMessage = async (topic, args, projectId = process.env.GCP_PROJECT) => exports.publishOnQueue(topic, args, projectId);
41
+ /**
42
+ * @see https://cloud.google.com/pubsub/docs/samples/pubsub-publisher-retry-settings
43
+ */
44
+ exports.publishOnQueueWithRetry = async ({ topicNameOrId, args, retrySettings, projectId = process.env.GCP_PROJECT, }) => {
45
+ var _a;
46
+ if (process.env.ENV === 'local') {
47
+ const console = new console_1.Console(process.stdout, process.stderr);
48
+ const { report } = core_stackdriver_1.errorReporting({ service: process.env.ENV, reportMode: 'never', version: '0' });
49
+ console.dir(JSON.parse(JSON.stringify(args)));
50
+ report(`will be published at ${topicNameOrId} topic`);
51
+ return null;
52
+ }
53
+ if (isProjectIdSet(projectId)) {
54
+ throw new Error('GCloud project id not set. You should set `GCP_PROJECT` environment variable');
55
+ }
56
+ const publisherClient = new pubsub_1.v1.PublisherClient({
57
+ projectId,
58
+ });
59
+ const formattedTopic = publisherClient.projectTopicPath(projectId, topicNameOrId);
60
+ const dataBuffer = exports.encodeBuffer(args);
61
+ const messagesElement = {
62
+ data: dataBuffer,
63
+ };
64
+ const messages = [messagesElement];
65
+ const request = {
66
+ topic: formattedTopic,
67
+ messages,
68
+ };
69
+ const [response] = await publisherClient.publish(request, { retry: retrySettings });
70
+ return (_a = response === null || response === void 0 ? void 0 : response.messageIds[0]) !== null && _a !== void 0 ? _a : null;
71
+ };
27
72
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAC1D,iDAA8C;AAE9C,qCAAkC;AAiBrB,QAAA,YAAY,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAEvE,QAAA,YAAY,GAAG,CAAC,OAAe,EAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEtG,QAAA,cAAc,GAAG,KAAK,EACjC,KAAa,EACb,IAAqC,EACrC,YAAoB,OAAO,CAAC,GAAG,CAAC,WAAW,EAC3C,EAAE;IACF,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,iCAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAQ,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,6BAA6B,KAAK,aAAa,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;KACb;IAED,IACE,CAAC,SAAS;WACP,SAAS,KAAK,WAAW;WACzB,SAAS,KAAK,SAAS;WACvB,SAAS,KAAK,MAAM;WACpB,SAAS,KAAK,IAAI,EACrB;QACA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;KACjG;IAED,OAAO,CAAC,IAAI,eAAM,CAAC,EAAE,SAAS,EAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,oBAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEW,QAAA,yBAAyB,GAAG,KAAK,EAC5C,KAAa,EACb,IAAwB,EACxB,YAAoB,OAAO,CAAC,GAAG,CAAC,WAAW,EAC3C,EAAE,CAAC,sBAAc,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAC1D,iDAAgE;AAChE,qCAAkC;AAkBlC;;GAEG;AACH,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,8DAAY,CAAA;IACZ,iEAAa,CAAA;IACb,iFAAqB,CAAA;IACrB,gEAAa,CAAA;IACb,mFAAsB,CAAA;IACtB,sEAAgB,CAAA;IAChB,6DAAW,CAAA;AACb,CAAC,EARW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAQ3B;AASY,QAAA,YAAY,GAAG,CAAC,IAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAEvE,QAAA,YAAY,GAAG,CAAC,OAAe,EAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEnH,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,CAC5C,CAAC,SAAS;OACL,SAAS,KAAK,WAAW;OACzB,SAAS,KAAK,SAAS;OACvB,SAAS,KAAK,MAAM;OACpB,SAAS,KAAK,IAAI,CACxB,CAAC;AAEW,QAAA,cAAc,GAAG,KAAK,EACjC,KAAa,EACb,IAAqC,EACrC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EACnC,EAAE;IACF,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,iCAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAQ,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,6BAA6B,KAAK,aAAa,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;KACb;IAED,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;KACjG;IAED,OAAO,CAAC,IAAI,eAAM,CAAC,EAAE,SAAS,EAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,oBAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEW,QAAA,yBAAyB,GAAG,KAAK,EAC5C,KAAa,EACb,IAAwB,EACxB,YAAoB,OAAO,CAAC,GAAG,CAAC,WAAW,EAC3C,EAAE,CAAC,sBAAc,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAE5C;;GAEG;AACU,QAAA,uBAAuB,GAAG,KAAK,EAAK,EAC/C,aAAa,EACb,IAAI,EACJ,aAAa,EACb,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,GACT,EAAE,EAAE;;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,iCAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAQ,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,6BAA6B,aAAa,aAAa,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;KACb;IAED,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;KACjG;IAED,MAAM,eAAe,GAAG,IAAI,WAAE,CAAC,eAAe,CAAC;QAC7C,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,eAAe,CAAC,gBAAgB,CACrD,SAAS,EACT,aAAa,CACd,CAAC;IAEF,MAAM,UAAU,GAAG,oBAAY,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG;QACtB,IAAI,EAAE,UAAU;KACjB,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,eAAe,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,cAAc;QACrB,QAAQ;KACT,CAAC;IAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,eAAe,CAAC,OAAO,CAC9C,OAAO,EACP,EAAE,KAAK,EAAE,aAAa,EAAE,CACzB,CAAC;IAEF,aAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,CAAC,oCAAK,IAAI,CAAC;AACzC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anthor/core-pubsub",
3
- "version": "1.43.0",
3
+ "version": "1.49.0-alpha.7",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -20,8 +20,8 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@anthor/core-stackdriver": "^1.43.0",
23
- "@google-cloud/pubsub": "^2.0.0",
23
+ "@google-cloud/pubsub": "^3.0.1",
24
24
  "jest-sonar-reporter": "^2.0.0"
25
25
  },
26
- "gitHead": "41418b5dfb066940837543a7675f38336f2045d3"
26
+ "gitHead": "58b6b7f40add078a281b1ba6c329cfcf05fff152"
27
27
  }