@flink-app/firebase-messaging-plugin 0.11.1 → 0.11.2

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.
@@ -1,4 +1,4 @@
1
- // Generated Wed Aug 07 2024 10:39:19 GMT+0200 (Central European Summer Time)
1
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
2
2
  import { autoRegisteredHandlers, HttpMethod } from "@flink-app/flink";
3
3
  import * as PostMessage_0 from "../src/handlers/PostMessage";
4
4
 
@@ -1,4 +1,4 @@
1
- // Generated Wed Aug 07 2024 10:39:19 GMT+0200 (Central European Summer Time)
1
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
2
2
  import { autoRegisteredJobs } from "@flink-app/flink";
3
3
  export const jobs = [];
4
4
  autoRegisteredJobs.push(...jobs);
@@ -1,4 +1,4 @@
1
- // Generated Wed Aug 07 2024 10:39:19 GMT+0200 (Central European Summer Time)
1
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
2
2
  import { autoRegisteredRepos } from "@flink-app/flink";
3
3
  export const repos = [];
4
4
  autoRegisteredRepos.push(...repos);
@@ -1,7 +1,7 @@
1
1
  import Message from "../../src/schemas/Message";
2
2
  import SendResult from "../../src/schemas/SendResult";
3
3
 
4
- // Generated Wed Aug 07 2024 10:39:20 GMT+0200 (Central European Summer Time)
4
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
5
5
  export interface PostMessage_12_ReqSchema extends Message {}
6
6
 
7
7
  export interface PostMessage_12_ResSchema extends SendResult {}
package/.flink/start.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Generated Wed Aug 07 2024 10:39:19 GMT+0200 (Central European Summer Time)
1
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
2
2
  import "./generatedHandlers";
3
3
  import "./generatedRepos";
4
4
  import "./generatedJobs";
@@ -20,7 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.handlers = void 0;
23
- // Generated Wed Aug 07 2024 10:39:19 GMT+0200 (Central European Summer Time)
23
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
24
24
  var flink_1 = require("@flink-app/flink");
25
25
  var PostMessage_0 = __importStar(require("../src/handlers/PostMessage"));
26
26
  exports.handlers = [{ handler: PostMessage_0, assumedHttpMethod: flink_1.HttpMethod.post }];
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.jobs = void 0;
4
- // Generated Wed Aug 07 2024 10:39:19 GMT+0200 (Central European Summer Time)
4
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
5
5
  var flink_1 = require("@flink-app/flink");
6
6
  exports.jobs = [];
7
7
  flink_1.autoRegisteredJobs.push.apply(flink_1.autoRegisteredJobs, exports.jobs);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.repos = void 0;
4
- // Generated Wed Aug 07 2024 10:39:19 GMT+0200 (Central European Summer Time)
4
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
5
5
  var flink_1 = require("@flink-app/flink");
6
6
  exports.repos = [];
7
7
  flink_1.autoRegisteredRepos.push.apply(flink_1.autoRegisteredRepos, exports.repos);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // Generated Wed Aug 07 2024 10:39:19 GMT+0200 (Central European Summer Time)
3
+ // Generated Wed Aug 07 2024 11:18:50 GMT+0200 (Central European Summer Time)
4
4
  require("./generatedHandlers");
5
5
  require("./generatedRepos");
6
6
  require("./generatedJobs");
@@ -111,7 +111,7 @@ exports.firebaseMessagingPlugin = firebaseMessagingPlugin;
111
111
  */
112
112
  function send(message, adminApp) {
113
113
  return __awaiter(this, void 0, void 0, function () {
114
- var messages, _i, messages_1, message_1, err_1;
114
+ var messages, batchSize, _loop_1, i;
115
115
  return __generator(this, function (_a) {
116
116
  switch (_a.label) {
117
117
  case 0:
@@ -119,26 +119,48 @@ function send(message, adminApp) {
119
119
  var toArray = message.to, rest = __rest(message, ["to"]);
120
120
  return __assign(__assign({}, rest), { token: to });
121
121
  });
122
- _i = 0, messages_1 = messages;
122
+ batchSize = 500;
123
+ _loop_1 = function (i) {
124
+ var batch, response, err_1;
125
+ return __generator(this, function (_b) {
126
+ switch (_b.label) {
127
+ case 0:
128
+ batch = messages.slice(i, i + batchSize);
129
+ _b.label = 1;
130
+ case 1:
131
+ _b.trys.push([1, 3, , 4]);
132
+ return [4 /*yield*/, adminApp.messaging().sendEach(batch)];
133
+ case 2:
134
+ response = _b.sent();
135
+ response.responses.forEach(function (res, idx) {
136
+ if (res.success) {
137
+ flink_1.log.debug("[firebaseMessaging] Successfully sent to device " + batch[idx].token);
138
+ }
139
+ else {
140
+ flink_1.log.debug("[firebaseMessaging] Failed sending to device " + batch[idx].token + ": " + res.error);
141
+ }
142
+ });
143
+ return [3 /*break*/, 4];
144
+ case 3:
145
+ err_1 = _b.sent();
146
+ flink_1.log.debug("[firebaseMessaging] Failed sending batch: " + err_1);
147
+ return [3 /*break*/, 4];
148
+ case 4: return [2 /*return*/];
149
+ }
150
+ });
151
+ };
152
+ i = 0;
123
153
  _a.label = 1;
124
154
  case 1:
125
- if (!(_i < messages_1.length)) return [3 /*break*/, 6];
126
- message_1 = messages_1[_i];
127
- _a.label = 2;
155
+ if (!(i < messages.length)) return [3 /*break*/, 4];
156
+ return [5 /*yield**/, _loop_1(i)];
128
157
  case 2:
129
- _a.trys.push([2, 4, , 5]);
130
- return [4 /*yield*/, adminApp.messaging().send(message_1)];
131
- case 3:
132
158
  _a.sent();
133
- return [3 /*break*/, 5];
134
- case 4:
135
- err_1 = _a.sent();
136
- flink_1.log.debug("[firebaseMessaging] Failed sending to device " + message_1.token + ": " + err_1);
137
- return [3 /*break*/, 5];
138
- case 5:
139
- _i++;
159
+ _a.label = 3;
160
+ case 3:
161
+ i += batchSize;
140
162
  return [3 /*break*/, 1];
141
- case 6: return [2 /*return*/];
163
+ case 4: return [2 /*return*/];
142
164
  }
143
165
  });
144
166
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flink-app/firebase-messaging-plugin",
3
- "version": "0.11.1",
3
+ "version": "0.11.2",
4
4
  "description": "Flink plugin to send Firebase cloud messages",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\"",
@@ -28,5 +28,5 @@
28
28
  "tsc-watch": "^4.2.9",
29
29
  "typescript": "^4.2.4"
30
30
  },
31
- "gitHead": "4d356de156b5f55e8206b17d6ad97875dee559e6"
31
+ "gitHead": "4adbc3dfa43aef1a9a4c0165a0e76a89f4c51429"
32
32
  }
@@ -50,11 +50,22 @@ async function send(message: Message, adminApp: admin.app.App) {
50
50
  return { ...rest, token: to };
51
51
  });
52
52
 
53
- for (const message of messages) {
53
+ // Split messages into batches of 500
54
+ const batchSize = 500;
55
+ for (let i = 0; i < messages.length; i += batchSize) {
56
+ const batch = messages.slice(i, i + batchSize);
57
+
54
58
  try {
55
- await adminApp.messaging().send(message);
59
+ const response = await adminApp.messaging().sendEach(batch);
60
+ response.responses.forEach((res, idx) => {
61
+ if (res.success) {
62
+ log.debug(`[firebaseMessaging] Successfully sent to device ${batch[idx].token}`);
63
+ } else {
64
+ log.debug(`[firebaseMessaging] Failed sending to device ${batch[idx].token}: ${res.error}`);
65
+ }
66
+ });
56
67
  } catch (err: any) {
57
- log.debug(`[firebaseMessaging] Failed sending to device ${message.token}: ${err}`);
68
+ log.debug(`[firebaseMessaging] Failed sending batch: ${err}`);
58
69
  }
59
70
  }
60
71
  }