@laboratory-one/api-components 0.0.18 → 0.0.19
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/cjs/push/push.service.d.ts +5 -0
- package/dist/cjs/push/push.service.d.ts.map +1 -1
- package/dist/cjs/push/push.service.js +12 -0
- package/dist/cjs/push/push.service.js.map +1 -1
- package/dist/esm/push/push.service.d.ts +5 -0
- package/dist/esm/push/push.service.d.ts.map +1 -1
- package/dist/esm/push/push.service.js +12 -0
- package/dist/esm/push/push.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/push/push.service.ts +23 -0
|
@@ -3,6 +3,11 @@ export declare class PushService {
|
|
|
3
3
|
private readonly logger;
|
|
4
4
|
private readonly expo;
|
|
5
5
|
constructor();
|
|
6
|
+
createMessage({ body, pushToken, data, }: {
|
|
7
|
+
body: string;
|
|
8
|
+
pushToken: string;
|
|
9
|
+
data?: Record<string, unknown>;
|
|
10
|
+
}): ExpoPushMessage | undefined;
|
|
6
11
|
createMessages({ body, pushTokens, data, }: {
|
|
7
12
|
body: string;
|
|
8
13
|
pushTokens: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.service.d.ts","sourceRoot":"/","sources":["push/push.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBACa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;;IAQxC,cAAc,CAAC,EACb,IAAI,EACJ,UAAU,EACV,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,eAAe,EAAE;IAsBf,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;CAoBpE"}
|
|
1
|
+
{"version":3,"file":"push.service.d.ts","sourceRoot":"/","sources":["push/push.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBACa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;;IAQxC,aAAa,CAAC,EACZ,IAAI,EACJ,SAAS,EACT,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,eAAe,GAAG,SAAS;IAe/B,cAAc,CAAC,EACb,IAAI,EACJ,UAAU,EACV,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,eAAe,EAAE;IAsBf,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;CAoBpE"}
|
|
@@ -12,6 +12,18 @@ let PushService = PushService_1 = class PushService {
|
|
|
12
12
|
useFcmV1: true,
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
+
createMessage({ body, pushToken, data, }) {
|
|
16
|
+
this.logger.debug('createMessage');
|
|
17
|
+
if (!expo_server_sdk_1.Expo.isExpoPushToken(pushToken)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
to: pushToken,
|
|
22
|
+
sound: 'default',
|
|
23
|
+
body,
|
|
24
|
+
data,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
15
27
|
createMessages({ body, pushTokens, data, }) {
|
|
16
28
|
this.logger.debug('createMessage');
|
|
17
29
|
const messages = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.service.js","sourceRoot":"/","sources":["push/push.service.ts"],"names":[],"mappings":";;;;;AAAA,2CAAoD;AACpD,qDAAwD;AAGjD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAItB;QAHiB,WAAM,GAAW,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;QAI7D,IAAI,CAAC,IAAI,GAAG,IAAI,sBAAI,CAAC;YACnB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,EACb,IAAI,EACJ,UAAU,EACV,IAAI,GAKL;QACC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAGnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,sBAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,SAAS;gBAChB,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAA2B;;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAElC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;;gBAE7C,KAA0B,eAAA,WAAA,sBAAA,MAAM,CAAA,YAAA,4EAAE,CAAC;oBAAT,sBAAM;oBAAN,WAAM;oBAArB,MAAM,KAAK,KAAA,CAAA;oBACpB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBACpD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;;;;;;;;;YAED,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"push.service.js","sourceRoot":"/","sources":["push/push.service.ts"],"names":[],"mappings":";;;;;AAAA,2CAAoD;AACpD,qDAAwD;AAGjD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAItB;QAHiB,WAAM,GAAW,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;QAI7D,IAAI,CAAC,IAAI,GAAG,IAAI,sBAAI,CAAC;YACnB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EACZ,IAAI,EACJ,SAAS,EACT,IAAI,GAKL;QACC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEnC,IAAI,CAAC,sBAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,OAAO;YACL,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,SAAS;YAChB,IAAI;YACJ,IAAI;SACL,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,EACb,IAAI,EACJ,UAAU,EACV,IAAI,GAKL;QACC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAGnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,sBAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,SAAS;gBAChB,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAA2B;;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAElC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;;gBAE7C,KAA0B,eAAA,WAAA,sBAAA,MAAM,CAAA,YAAA,4EAAE,CAAC;oBAAT,sBAAM;oBAAN,WAAM;oBAArB,MAAM,KAAK,KAAA,CAAA;oBACpB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBACpD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;;;;;;;;;YAED,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF,CAAA;AAnFY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;;GACA,WAAW,CAmFvB","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { Expo, ExpoPushMessage } from 'expo-server-sdk';\n\n@Injectable()\nexport class PushService {\n private readonly logger: Logger = new Logger(PushService.name);\n private readonly expo: Expo | undefined;\n\n constructor() {\n this.expo = new Expo({\n useFcmV1: true,\n });\n }\n\n createMessage({\n body,\n pushToken,\n data,\n }: {\n body: string;\n pushToken: string;\n data?: Record<string, unknown>;\n }): ExpoPushMessage | undefined {\n this.logger.debug('createMessage');\n\n if (!Expo.isExpoPushToken(pushToken)) {\n return;\n }\n\n return {\n to: pushToken,\n sound: 'default',\n body,\n data,\n };\n }\n\n createMessages({\n body,\n pushTokens,\n data,\n }: {\n body: string;\n pushTokens: string[];\n data?: Record<string, unknown>;\n }): ExpoPushMessage[] {\n this.logger.debug('createMessage');\n\n // Create the messages that you want to send to clients\n const messages: ExpoPushMessage[] = [];\n\n for (const pushToken of pushTokens) {\n if (!Expo.isExpoPushToken(pushToken)) {\n continue;\n }\n\n messages.push({\n to: pushToken,\n sound: 'default',\n body,\n data,\n });\n }\n\n return messages;\n }\n\n async sendMessages(messages: ExpoPushMessage[]): Promise<undefined> {\n try {\n this.logger.debug('sendMessages');\n\n const chunks: ExpoPushMessage[][] =\n this.expo.chunkPushNotifications(messages);\n\n for await (const chunk of chunks) {\n try {\n await this.expo.sendPushNotificationsAsync(chunk);\n } catch (error) {\n console.error(error);\n }\n }\n\n return;\n } catch (error) {\n this.logger.error(error);\n }\n }\n}\n"]}
|
|
@@ -3,6 +3,11 @@ export declare class PushService {
|
|
|
3
3
|
private readonly logger;
|
|
4
4
|
private readonly expo;
|
|
5
5
|
constructor();
|
|
6
|
+
createMessage({ body, pushToken, data, }: {
|
|
7
|
+
body: string;
|
|
8
|
+
pushToken: string;
|
|
9
|
+
data?: Record<string, unknown>;
|
|
10
|
+
}): ExpoPushMessage | undefined;
|
|
6
11
|
createMessages({ body, pushTokens, data, }: {
|
|
7
12
|
body: string;
|
|
8
13
|
pushTokens: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.service.d.ts","sourceRoot":"/","sources":["push/push.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBACa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;;IAQxC,cAAc,CAAC,EACb,IAAI,EACJ,UAAU,EACV,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,eAAe,EAAE;IAsBf,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;CAoBpE"}
|
|
1
|
+
{"version":3,"file":"push.service.d.ts","sourceRoot":"/","sources":["push/push.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBACa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;;IAQxC,aAAa,CAAC,EACZ,IAAI,EACJ,SAAS,EACT,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,eAAe,GAAG,SAAS;IAe/B,cAAc,CAAC,EACb,IAAI,EACJ,UAAU,EACV,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,eAAe,EAAE;IAsBf,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;CAoBpE"}
|
|
@@ -9,6 +9,18 @@ let PushService = PushService_1 = class PushService {
|
|
|
9
9
|
useFcmV1: true,
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
|
+
createMessage({ body, pushToken, data, }) {
|
|
13
|
+
this.logger.debug('createMessage');
|
|
14
|
+
if (!Expo.isExpoPushToken(pushToken)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
to: pushToken,
|
|
19
|
+
sound: 'default',
|
|
20
|
+
body,
|
|
21
|
+
data,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
12
24
|
createMessages({ body, pushTokens, data, }) {
|
|
13
25
|
this.logger.debug('createMessage');
|
|
14
26
|
const messages = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.service.js","sourceRoot":"/","sources":["push/push.service.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAmB,MAAM,iBAAiB,CAAC;AAGjD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAItB;QAHiB,WAAM,GAAW,IAAI,MAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;QAI7D,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC;YACnB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,EACb,IAAI,EACJ,UAAU,EACV,IAAI,GAKL;QACC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAGnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,SAAS;gBAChB,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAA2B;;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAElC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;;gBAE7C,KAA0B,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA,4EAAE,CAAC;oBAAT,sBAAM;oBAAN,WAAM;oBAArB,MAAM,KAAK,KAAA,CAAA;oBACpB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBACpD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;;;;;;;;;YAED,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"push.service.js","sourceRoot":"/","sources":["push/push.service.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAmB,MAAM,iBAAiB,CAAC;AAGjD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAItB;QAHiB,WAAM,GAAW,IAAI,MAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;QAI7D,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC;YACnB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EACZ,IAAI,EACJ,SAAS,EACT,IAAI,GAKL;QACC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,OAAO;YACL,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,SAAS;YAChB,IAAI;YACJ,IAAI;SACL,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,EACb,IAAI,EACJ,UAAU,EACV,IAAI,GAKL;QACC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAGnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,SAAS;gBAChB,IAAI;gBACJ,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAA2B;;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAElC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;;gBAE7C,KAA0B,eAAA,WAAA,cAAA,MAAM,CAAA,YAAA,4EAAE,CAAC;oBAAT,sBAAM;oBAAN,WAAM;oBAArB,MAAM,KAAK,KAAA,CAAA;oBACpB,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBACpD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;;;;;;;;;YAED,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF,CAAA;AAnFY,WAAW;IADvB,UAAU,EAAE;;GACA,WAAW,CAmFvB","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { Expo, ExpoPushMessage } from 'expo-server-sdk';\n\n@Injectable()\nexport class PushService {\n private readonly logger: Logger = new Logger(PushService.name);\n private readonly expo: Expo | undefined;\n\n constructor() {\n this.expo = new Expo({\n useFcmV1: true,\n });\n }\n\n createMessage({\n body,\n pushToken,\n data,\n }: {\n body: string;\n pushToken: string;\n data?: Record<string, unknown>;\n }): ExpoPushMessage | undefined {\n this.logger.debug('createMessage');\n\n if (!Expo.isExpoPushToken(pushToken)) {\n return;\n }\n\n return {\n to: pushToken,\n sound: 'default',\n body,\n data,\n };\n }\n\n createMessages({\n body,\n pushTokens,\n data,\n }: {\n body: string;\n pushTokens: string[];\n data?: Record<string, unknown>;\n }): ExpoPushMessage[] {\n this.logger.debug('createMessage');\n\n // Create the messages that you want to send to clients\n const messages: ExpoPushMessage[] = [];\n\n for (const pushToken of pushTokens) {\n if (!Expo.isExpoPushToken(pushToken)) {\n continue;\n }\n\n messages.push({\n to: pushToken,\n sound: 'default',\n body,\n data,\n });\n }\n\n return messages;\n }\n\n async sendMessages(messages: ExpoPushMessage[]): Promise<undefined> {\n try {\n this.logger.debug('sendMessages');\n\n const chunks: ExpoPushMessage[][] =\n this.expo.chunkPushNotifications(messages);\n\n for await (const chunk of chunks) {\n try {\n await this.expo.sendPushNotificationsAsync(chunk);\n } catch (error) {\n console.error(error);\n }\n }\n\n return;\n } catch (error) {\n this.logger.error(error);\n }\n }\n}\n"]}
|