@amityco/ts-sdk 0.0.1-beta.5 → 0.0.1-beta.9
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/@types/core/events.d.ts +63 -17
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/transport.d.ts +15 -0
- package/dist/@types/core/transport.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +4 -0
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/@types/domains/comment.d.ts +1 -1
- package/dist/@types/domains/comment.d.ts.map +1 -1
- package/dist/@types/domains/community.d.ts +1 -1
- package/dist/@types/domains/community.d.ts.map +1 -1
- package/dist/@types/domains/group.d.ts +2 -2
- package/dist/@types/domains/group.d.ts.map +1 -1
- package/dist/@types/domains/partials.d.ts +3 -0
- package/dist/@types/domains/partials.d.ts.map +1 -1
- package/dist/@types/domains/post.d.ts +1 -1
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/domains/user.d.ts +2 -1
- package/dist/@types/domains/user.d.ts.map +1 -1
- package/dist/client/api/connectClient.d.ts.map +1 -1
- package/dist/client/api/createClient.d.ts +2 -1
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/client/api/disconnectClient.d.ts.map +1 -1
- package/dist/client/api/getToken.d.ts +3 -1
- package/dist/client/api/getToken.d.ts.map +1 -1
- package/dist/comment/api/deleteComment.d.ts +37 -1
- package/dist/comment/api/deleteComment.d.ts.map +1 -1
- package/dist/comment/api/getComment.d.ts.map +1 -1
- package/dist/comment/api/queryComments.d.ts +1 -1
- package/dist/comment/events/index.d.ts +4 -0
- package/dist/comment/events/index.d.ts.map +1 -1
- package/dist/comment/events/onCommentCreated.d.ts +1 -1
- package/dist/comment/events/onCommentCreated.d.ts.map +1 -1
- package/dist/comment/events/onCommentDeleted.d.ts +1 -1
- package/dist/comment/events/onCommentDeleted.d.ts.map +1 -1
- package/dist/comment/events/onCommentFlagged.d.ts +17 -0
- package/dist/comment/events/onCommentFlagged.d.ts.map +1 -0
- package/dist/comment/events/onCommentReactionAdded.d.ts +17 -0
- package/dist/comment/events/onCommentReactionAdded.d.ts.map +1 -0
- package/dist/comment/events/onCommentReactionRemoved.d.ts +17 -0
- package/dist/comment/events/onCommentReactionRemoved.d.ts.map +1 -0
- package/dist/comment/events/onCommentUnflagged.d.ts +17 -0
- package/dist/comment/events/onCommentUnflagged.d.ts.map +1 -0
- package/dist/comment/events/onCommentUpdated.d.ts +1 -1
- package/dist/comment/events/onCommentUpdated.d.ts.map +1 -1
- package/dist/comment/events/utils.d.ts +2 -0
- package/dist/comment/events/utils.d.ts.map +1 -0
- package/dist/comment/observers/observeComment.d.ts +1 -1
- package/dist/comment/observers/observeComment.d.ts.map +1 -1
- package/dist/comment/observers/observeComments.d.ts +5 -1
- package/dist/comment/observers/observeComments.d.ts.map +1 -1
- package/dist/community/events/index.d.ts +4 -0
- package/dist/community/events/index.d.ts.map +1 -1
- package/dist/community/events/onCommunityCreated.d.ts +2 -2
- package/dist/community/events/onCommunityCreated.d.ts.map +1 -1
- package/dist/community/events/onCommunityDeleted.d.ts +2 -2
- package/dist/community/events/onCommunityDeleted.d.ts.map +1 -1
- package/dist/community/events/onCommunityJoined.d.ts +3 -3
- package/dist/community/events/onCommunityJoined.d.ts.map +1 -1
- package/dist/community/events/onCommunityLeft.d.ts +3 -3
- package/dist/community/events/onCommunityLeft.d.ts.map +1 -1
- package/dist/community/events/onCommunityUpdated.d.ts +2 -2
- package/dist/community/events/onCommunityUpdated.d.ts.map +1 -1
- package/dist/community/events/onCommunityUserAdded.d.ts +17 -0
- package/dist/community/events/onCommunityUserAdded.d.ts.map +1 -0
- package/dist/community/events/onCommunityUserBanned.d.ts +17 -0
- package/dist/community/events/onCommunityUserBanned.d.ts.map +1 -0
- package/dist/community/events/onCommunityUserRemoved.d.ts +17 -0
- package/dist/community/events/onCommunityUserRemoved.d.ts.map +1 -0
- package/dist/community/events/onCommunityUserUnbanned.d.ts +17 -0
- package/dist/community/events/onCommunityUserUnbanned.d.ts.map +1 -0
- package/dist/community/events/utils.d.ts +3 -0
- package/dist/community/events/utils.d.ts.map +1 -0
- package/dist/community/observers/observeCommunity.d.ts +1 -1
- package/dist/community/observers/observeCommunity.d.ts.map +1 -1
- package/dist/core/cache/ingest.d.ts.map +1 -1
- package/dist/core/events.d.ts +4 -2
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/model/index.d.ts +1 -0
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/core/model/isMatch.d.ts +3 -0
- package/dist/core/model/isMatch.d.ts.map +1 -0
- package/dist/core/network.d.ts +11 -0
- package/dist/core/network.d.ts.map +1 -0
- package/dist/core/query/paging.d.ts.map +1 -1
- package/dist/core/subscription.d.ts +14 -0
- package/dist/core/subscription.d.ts.map +1 -0
- package/dist/core/transports/http.d.ts +11 -0
- package/dist/core/transports/http.d.ts.map +1 -0
- package/dist/core/transports/index.d.ts +4 -0
- package/dist/core/transports/index.d.ts.map +1 -0
- package/dist/core/transports/mqtt.d.ts +17 -0
- package/dist/core/transports/mqtt.d.ts.map +1 -0
- package/dist/core/transports/utils.d.ts +13 -0
- package/dist/core/transports/utils.d.ts.map +1 -0
- package/dist/core/transports/ws.d.ts +27 -0
- package/dist/core/transports/ws.d.ts.map +1 -0
- package/dist/feed/api/queryGlobalFeed.d.ts +1 -1
- package/dist/file/api/deleteFile.d.ts +3 -1
- package/dist/file/api/deleteFile.d.ts.map +1 -1
- package/dist/index.cjs.js +1292 -526
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +1268 -527
- package/dist/index.umd.js +19 -5144
- package/dist/post/api/deletePost.d.ts +40 -1
- package/dist/post/api/deletePost.d.ts.map +1 -1
- package/dist/post/api/getPost.d.ts.map +1 -1
- package/dist/post/events/index.d.ts +6 -0
- package/dist/post/events/index.d.ts.map +1 -1
- package/dist/post/events/onPostApproved.d.ts +17 -0
- package/dist/post/events/onPostApproved.d.ts.map +1 -0
- package/dist/post/events/onPostCreated.d.ts +1 -1
- package/dist/post/events/onPostCreated.d.ts.map +1 -1
- package/dist/post/events/onPostDeclined.d.ts +17 -0
- package/dist/post/events/onPostDeclined.d.ts.map +1 -0
- package/dist/post/events/onPostDeleted.d.ts +1 -1
- package/dist/post/events/onPostDeleted.d.ts.map +1 -1
- package/dist/post/events/onPostFlagged.d.ts +17 -0
- package/dist/post/events/onPostFlagged.d.ts.map +1 -0
- package/dist/post/events/onPostReactionAdded.d.ts +17 -0
- package/dist/post/events/onPostReactionAdded.d.ts.map +1 -0
- package/dist/post/events/onPostReactionRemoved.d.ts +17 -0
- package/dist/post/events/onPostReactionRemoved.d.ts.map +1 -0
- package/dist/post/events/onPostUnflagged.d.ts +17 -0
- package/dist/post/events/onPostUnflagged.d.ts.map +1 -0
- package/dist/post/events/onPostUpdated.d.ts +1 -1
- package/dist/post/events/onPostUpdated.d.ts.map +1 -1
- package/dist/post/events/utils.d.ts +2 -0
- package/dist/post/events/utils.d.ts.map +1 -0
- package/dist/post/observers/observePost.d.ts +1 -1
- package/dist/post/observers/observePost.d.ts.map +1 -1
- package/dist/post/observers/observePosts.d.ts +1 -1
- package/dist/post/observers/observePosts.d.ts.map +1 -1
- package/dist/reaction/events/onReactionAdded.d.ts +4 -2
- package/dist/reaction/events/onReactionAdded.d.ts.map +1 -1
- package/dist/reaction/events/onReactionRemoved.d.ts +4 -2
- package/dist/reaction/events/onReactionRemoved.d.ts.map +1 -1
- package/dist/reaction/utils/index.d.ts +1 -0
- package/dist/reaction/utils/index.d.ts.map +1 -1
- package/dist/reaction/utils/preparePayloadForCache.d.ts +3 -0
- package/dist/reaction/utils/preparePayloadForCache.d.ts.map +1 -0
- package/dist/report/api/createReport.d.ts.map +1 -1
- package/dist/report/api/deleteReport.d.ts.map +1 -1
- package/dist/user/events/index.d.ts +3 -0
- package/dist/user/events/index.d.ts.map +1 -1
- package/dist/user/events/onUserFlagCleared.d.ts +17 -0
- package/dist/user/events/onUserFlagCleared.d.ts.map +1 -0
- package/dist/user/events/onUserFlagged.d.ts +17 -0
- package/dist/user/events/onUserFlagged.d.ts.map +1 -0
- package/dist/user/events/onUserUnflagged.d.ts +17 -0
- package/dist/user/events/onUserUnflagged.d.ts.map +1 -0
- package/dist/user/events/onUserUpdated.d.ts +1 -1
- package/dist/user/events/onUserUpdated.d.ts.map +1 -1
- package/dist/user/events/utils.d.ts +2 -0
- package/dist/user/events/utils.d.ts.map +1 -0
- package/dist/user/observers/observeUser.d.ts +1 -1
- package/dist/user/observers/observeUser.d.ts.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +7 -2
- package/rollup.config.js +63 -23
- package/src/@types/core/events.ts +64 -23
- package/src/@types/core/transport.ts +14 -0
- package/src/@types/domains/client.ts +5 -0
- package/src/@types/domains/comment.ts +1 -0
- package/src/@types/domains/community.ts +1 -0
- package/src/@types/domains/group.ts +2 -2
- package/src/@types/domains/partials.ts +4 -0
- package/src/@types/domains/post.ts +1 -0
- package/src/@types/domains/user.ts +2 -0
- package/src/client/api/connectClient.ts +12 -2
- package/src/client/api/createClient.ts +23 -15
- package/src/client/api/disconnectClient.ts +5 -0
- package/src/client/api/getToken.ts +3 -2
- package/src/client/events/onConnectionError.ts +1 -1
- package/src/comment/api/createComment.ts +2 -2
- package/src/comment/api/deleteComment.ts +25 -5
- package/src/comment/api/getComment.ts +17 -5
- package/src/comment/api/queryComments.ts +9 -8
- package/src/comment/api/updateComment.ts +1 -1
- package/src/comment/events/index.ts +6 -0
- package/src/comment/events/onCommentCreated.ts +4 -22
- package/src/comment/events/onCommentDeleted.ts +4 -22
- package/src/comment/events/onCommentFlagged.ts +21 -0
- package/src/comment/events/onCommentReactionAdded.ts +52 -0
- package/src/comment/events/onCommentReactionRemoved.ts +52 -0
- package/src/comment/events/onCommentUnflagged.ts +21 -0
- package/src/comment/events/onCommentUpdated.ts +4 -22
- package/src/comment/events/utils.ts +34 -0
- package/src/comment/observers/observeComment.ts +21 -7
- package/src/comment/observers/observeComments.ts +11 -3
- package/src/community/api/addCommunityMembers.ts +1 -1
- package/src/community/api/createCommunity.ts +1 -1
- package/src/community/api/deleteCommunity.ts +1 -1
- package/src/community/api/joinCommunity.ts +1 -1
- package/src/community/api/leaveCommunity.ts +1 -1
- package/src/community/api/removeCommunityMembers.ts +1 -1
- package/src/community/api/updateCommunity.ts +1 -1
- package/src/community/events/index.ts +5 -0
- package/src/community/events/onCommunityCreated.ts +5 -23
- package/src/community/events/onCommunityDeleted.ts +5 -23
- package/src/community/events/onCommunityJoined.ts +5 -23
- package/src/community/events/onCommunityLeft.ts +5 -23
- package/src/community/events/onCommunityUpdated.ts +5 -23
- package/src/community/events/onCommunityUserAdded.ts +19 -0
- package/src/community/events/onCommunityUserBanned.ts +19 -0
- package/src/community/events/onCommunityUserRemoved.ts +19 -0
- package/src/community/events/onCommunityUserUnbanned.ts +19 -0
- package/src/community/events/utils.ts +108 -0
- package/src/community/observers/observeCommunity.ts +23 -9
- package/src/core/cache/ingest.ts +19 -3
- package/src/core/events.ts +45 -4
- package/src/core/model/index.ts +1 -0
- package/src/core/model/isMatch.ts +12 -0
- package/src/core/network.ts +14 -0
- package/src/core/query/paging.ts +4 -0
- package/src/core/subscription.ts +75 -0
- package/src/core/transports/http.ts +63 -0
- package/src/core/transports/index.ts +3 -0
- package/src/core/transports/mqtt.ts +141 -0
- package/src/core/transports/utils.ts +25 -0
- package/src/core/transports/ws.ts +61 -0
- package/src/feed/api/queryGlobalFeed.ts +1 -1
- package/src/file/api/deleteFile.ts +5 -6
- package/src/index.ts +3 -0
- package/src/post/api/createPost.ts +2 -2
- package/src/post/api/deletePost.ts +29 -8
- package/src/post/api/getPost.ts +17 -5
- package/src/post/api/updatePost.ts +1 -1
- package/src/post/events/index.ts +9 -0
- package/src/post/events/onPostApproved.ts +19 -0
- package/src/post/events/onPostCreated.ts +4 -24
- package/src/post/events/onPostDeclined.ts +19 -0
- package/src/post/events/onPostDeleted.ts +4 -24
- package/src/post/events/onPostFlagged.ts +19 -0
- package/src/post/events/onPostReactionAdded.ts +50 -0
- package/src/post/events/onPostReactionRemoved.ts +50 -0
- package/src/post/events/onPostUnflagged.ts +19 -0
- package/src/post/events/onPostUpdated.ts +4 -24
- package/src/post/events/utils.ts +40 -0
- package/src/post/observers/observePost.ts +25 -7
- package/src/post/observers/observePosts.ts +12 -2
- package/src/reaction/events/onReactionAdded.ts +36 -15
- package/src/reaction/events/onReactionRemoved.ts +37 -14
- package/src/reaction/utils/dispatchReactable.ts +2 -2
- package/src/reaction/utils/index.ts +1 -0
- package/src/reaction/utils/preparePayloadForCache.ts +45 -0
- package/src/report/api/createReport.ts +5 -1
- package/src/report/api/deleteReport.ts +5 -1
- package/src/user/events/index.ts +4 -0
- package/src/user/events/onUserFlagCleared.ts +19 -0
- package/src/user/events/onUserFlagged.ts +19 -0
- package/src/user/events/onUserUnflagged.ts +19 -0
- package/src/user/events/onUserUpdated.ts +4 -24
- package/src/user/events/utils.ts +24 -0
- package/src/user/observers/observeUser.ts +11 -3
- package/src/version.ts +2 -0
- package/tsconfig.json +1 -0
- package/dist/core/transports.d.ts +0 -49
- package/dist/core/transports.d.ts.map +0 -1
- package/src/core/transports.ts +0 -151
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createEventSubscriber } from '~/core/events'
|
|
3
|
-
|
|
4
|
-
import { decoratePayload } from '~/core/query'
|
|
5
|
-
import { ingestInCache } from '~/core/cache'
|
|
1
|
+
import { createCommentEventSubscriber } from './utils'
|
|
6
2
|
|
|
7
3
|
/**
|
|
8
4
|
* ```js
|
|
@@ -12,7 +8,7 @@ import { ingestInCache } from '~/core/cache'
|
|
|
12
8
|
* })
|
|
13
9
|
* ```
|
|
14
10
|
*
|
|
15
|
-
* Fired when
|
|
11
|
+
* Fired when {@link Amity.Comment} has been created
|
|
16
12
|
*
|
|
17
13
|
* @param callback The function to call when the event was fired
|
|
18
14
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
@@ -21,19 +17,5 @@ import { ingestInCache } from '~/core/cache'
|
|
|
21
17
|
*/
|
|
22
18
|
export const onCommentCreated = <T extends Amity.CommentContentType>(
|
|
23
19
|
callback: Amity.Listener<Amity.Comment<T>>
|
|
24
|
-
): Amity.Unsubscriber =>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const filter = (payload: Amity.CommentPayload<T>) => {
|
|
28
|
-
decoratePayload(payload)
|
|
29
|
-
ingestInCache(payload)
|
|
30
|
-
callback(payload.comments[0])
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return createEventSubscriber(
|
|
34
|
-
client,
|
|
35
|
-
'message/onCommentCreated',
|
|
36
|
-
'v3.comment.didCreate',
|
|
37
|
-
filter
|
|
38
|
-
)
|
|
39
|
-
}
|
|
20
|
+
): Amity.Unsubscriber =>
|
|
21
|
+
createCommentEventSubscriber('comment.created', callback)
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createEventSubscriber } from '~/core/events'
|
|
3
|
-
|
|
4
|
-
import { decoratePayload } from '~/core/query'
|
|
5
|
-
import { ingestInCache } from '~/core/cache'
|
|
1
|
+
import { createCommentEventSubscriber } from './utils'
|
|
6
2
|
|
|
7
3
|
/**
|
|
8
4
|
* ```js
|
|
@@ -12,7 +8,7 @@ import { ingestInCache } from '~/core/cache'
|
|
|
12
8
|
* })
|
|
13
9
|
* ```
|
|
14
10
|
*
|
|
15
|
-
* Fired when
|
|
11
|
+
* Fired when a {@link Amity.Comment} has been deleted
|
|
16
12
|
*
|
|
17
13
|
* @param callback The function to call when the event was fired
|
|
18
14
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
@@ -21,19 +17,5 @@ import { ingestInCache } from '~/core/cache'
|
|
|
21
17
|
*/
|
|
22
18
|
export const onCommentDeleted = <T extends Amity.CommentContentType>(
|
|
23
19
|
callback: Amity.Listener<Amity.Comment<T>>
|
|
24
|
-
): Amity.Unsubscriber =>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const filter = (payload: Amity.CommentPayload<T>) => {
|
|
28
|
-
decoratePayload(payload)
|
|
29
|
-
ingestInCache(payload)
|
|
30
|
-
callback(payload.comments[0])
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return createEventSubscriber(
|
|
34
|
-
client,
|
|
35
|
-
'message/onCommentDeleted',
|
|
36
|
-
'v3.comment.didDelete',
|
|
37
|
-
filter
|
|
38
|
-
)
|
|
39
|
-
}
|
|
20
|
+
): Amity.Unsubscriber =>
|
|
21
|
+
createCommentEventSubscriber('comment.deleted', callback)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createCommentEventSubscriber } from './utils'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ```js
|
|
5
|
+
* import { onCommentFlagged } from '@amityco/ts-sdk'
|
|
6
|
+
* const dispose = onCommentFlagged(comment => {
|
|
7
|
+
* // ...
|
|
8
|
+
* })
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Fired when a {@link Amity.Comment} has been flagged
|
|
12
|
+
*
|
|
13
|
+
* @param callback The function to call when the event was fired
|
|
14
|
+
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
15
|
+
*
|
|
16
|
+
* @category Comment Events
|
|
17
|
+
*/
|
|
18
|
+
export const onCommentFlagged = <T extends Amity.CommentContentType>(
|
|
19
|
+
callback: Amity.Listener<Amity.Comment<T>>
|
|
20
|
+
): Amity.Unsubscriber =>
|
|
21
|
+
createCommentEventSubscriber('comment.flagged', callback)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api'
|
|
2
|
+
import { decoratePayload } from '~/core/query'
|
|
3
|
+
import { ingestInCache, pullFromCache } from '~/core/cache'
|
|
4
|
+
import { createEventSubscriber } from '~/core/events'
|
|
5
|
+
import { preparePayloadForCache } from '~/reaction/utils'
|
|
6
|
+
import { isMatch } from '~/core/model'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* ```js
|
|
10
|
+
* import { onCommentReactionAdded } from '@amityco/ts-sdk'
|
|
11
|
+
* const dispose = onCommentReactionAdded(comment => {
|
|
12
|
+
* // ...
|
|
13
|
+
* })
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Fired when a {@link Amity.Comment} has been reacted
|
|
17
|
+
*
|
|
18
|
+
* @param callback The function to call when the event was fired
|
|
19
|
+
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
20
|
+
*
|
|
21
|
+
* @category Comment Events
|
|
22
|
+
*/
|
|
23
|
+
export const onCommentReactionAdded = <T extends Amity.CommentContentType>(
|
|
24
|
+
callback: Amity.Listener<Amity.Comment<T>>
|
|
25
|
+
): Amity.Unsubscriber => {
|
|
26
|
+
const client = getActiveClient()
|
|
27
|
+
|
|
28
|
+
const filter = (payload: Amity.CommentPayload<T> & { reactor: Amity.Reaction }) => {
|
|
29
|
+
const [cached] = pullFromCache('comment', payload.comments[0].commentId) ?? []
|
|
30
|
+
|
|
31
|
+
const { reactor, ...commentPayload } = payload;
|
|
32
|
+
|
|
33
|
+
decoratePayload(commentPayload as Amity.CommentPayload<T>)
|
|
34
|
+
preparePayloadForCache('comment.addReaction', payload)
|
|
35
|
+
ingestInCache(commentPayload as Amity.CommentPayload<T>)
|
|
36
|
+
|
|
37
|
+
const [comment] = pullFromCache('comment', payload.comments[0].commentId) ?? []
|
|
38
|
+
|
|
39
|
+
if (cached && isMatch(cached, comment)) {
|
|
40
|
+
return
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
callback(comment)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return createEventSubscriber(
|
|
47
|
+
client,
|
|
48
|
+
'comment.addReaction',
|
|
49
|
+
'comment.addReaction',
|
|
50
|
+
filter
|
|
51
|
+
)
|
|
52
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api'
|
|
2
|
+
import { decoratePayload } from '~/core/query'
|
|
3
|
+
import { ingestInCache, pullFromCache } from '~/core/cache'
|
|
4
|
+
import { createEventSubscriber } from '~/core/events'
|
|
5
|
+
import { preparePayloadForCache } from '~/reaction/utils'
|
|
6
|
+
import { isMatch } from '~/core/model'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* ```js
|
|
10
|
+
* import { onCommentReactionRemoved } from '@amityco/ts-sdk'
|
|
11
|
+
* const dispose = onCommentReactionRemoved(comment => {
|
|
12
|
+
* // ...
|
|
13
|
+
* })
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Fired when a reaction has been removed from a {@link Amity.Comment}
|
|
17
|
+
*
|
|
18
|
+
* @param callback The function to call when the event was fired
|
|
19
|
+
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
20
|
+
*
|
|
21
|
+
* @category Comment Events
|
|
22
|
+
*/
|
|
23
|
+
export const onCommentReactionRemoved = <T extends Amity.CommentContentType>(
|
|
24
|
+
callback: Amity.Listener<Amity.Comment<T>>
|
|
25
|
+
): Amity.Unsubscriber => {
|
|
26
|
+
const client = getActiveClient()
|
|
27
|
+
|
|
28
|
+
const filter = (payload: Amity.CommentPayload<T> & { reactor: Amity.Reaction }) => {
|
|
29
|
+
const [cached] = pullFromCache('comment', payload.comments[0].commentId) ?? []
|
|
30
|
+
|
|
31
|
+
const { reactor, ...commentPayload } = payload;
|
|
32
|
+
|
|
33
|
+
decoratePayload(commentPayload as Amity.CommentPayload<T>)
|
|
34
|
+
preparePayloadForCache('comment.removeReaction', payload)
|
|
35
|
+
ingestInCache(commentPayload as Amity.CommentPayload<T>)
|
|
36
|
+
|
|
37
|
+
const [comment] = pullFromCache('comment', payload.comments[0].commentId) ?? []
|
|
38
|
+
|
|
39
|
+
if (cached && isMatch(cached, comment)) {
|
|
40
|
+
return
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
callback(comment)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return createEventSubscriber(
|
|
47
|
+
client,
|
|
48
|
+
'comment.removeReaction',
|
|
49
|
+
'comment.removeReaction',
|
|
50
|
+
filter
|
|
51
|
+
)
|
|
52
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createCommentEventSubscriber } from './utils'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ```js
|
|
5
|
+
* import { onCommentUnflagged } from '@amityco/ts-sdk'
|
|
6
|
+
* const dispose = onCommentUnflagged(comment => {
|
|
7
|
+
* // ...
|
|
8
|
+
* })
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Fired when a flag has been removed from a {@link Amity.Comment}
|
|
12
|
+
*
|
|
13
|
+
* @param callback The function to call when the event was fired
|
|
14
|
+
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
15
|
+
*
|
|
16
|
+
* @category Comment Events
|
|
17
|
+
*/
|
|
18
|
+
export const onCommentUnflagged = <T extends Amity.CommentContentType>(
|
|
19
|
+
callback: Amity.Listener<Amity.Comment<T>>
|
|
20
|
+
): Amity.Unsubscriber =>
|
|
21
|
+
createCommentEventSubscriber('comment.unflagged', callback)
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createEventSubscriber } from '~/core/events'
|
|
3
|
-
|
|
4
|
-
import { decoratePayload } from '~/core/query'
|
|
5
|
-
import { ingestInCache } from '~/core/cache'
|
|
1
|
+
import { createCommentEventSubscriber } from './utils'
|
|
6
2
|
|
|
7
3
|
/**
|
|
8
4
|
* ```js
|
|
@@ -12,7 +8,7 @@ import { ingestInCache } from '~/core/cache'
|
|
|
12
8
|
* })
|
|
13
9
|
* ```
|
|
14
10
|
*
|
|
15
|
-
* Fired when
|
|
11
|
+
* Fired when a {@link Amity.Comment} has been updated
|
|
16
12
|
*
|
|
17
13
|
* @param callback The function to call when the event was fired
|
|
18
14
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
@@ -21,19 +17,5 @@ import { ingestInCache } from '~/core/cache'
|
|
|
21
17
|
*/
|
|
22
18
|
export const onCommentUpdated = <T extends Amity.CommentContentType>(
|
|
23
19
|
callback: Amity.Listener<Amity.Comment<T>>
|
|
24
|
-
): Amity.Unsubscriber =>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const filter = (payload: Amity.CommentPayload<T>) => {
|
|
28
|
-
decoratePayload(payload)
|
|
29
|
-
ingestInCache(payload)
|
|
30
|
-
callback(payload.comments[0])
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return createEventSubscriber(
|
|
34
|
-
client,
|
|
35
|
-
'message/onCommentUpdated',
|
|
36
|
-
'v3.comment.didUpdate',
|
|
37
|
-
filter
|
|
38
|
-
)
|
|
39
|
-
}
|
|
20
|
+
): Amity.Unsubscriber =>
|
|
21
|
+
createCommentEventSubscriber('comment.updated', callback)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api'
|
|
2
|
+
import { decoratePayload } from '~/core/query'
|
|
3
|
+
import { ingestInCache, pullFromCache } from '~/core/cache'
|
|
4
|
+
import { createEventSubscriber } from '~/core/events'
|
|
5
|
+
import { isMatch } from '~/core/model'
|
|
6
|
+
|
|
7
|
+
export const createCommentEventSubscriber = <T extends Amity.CommentContentType>(
|
|
8
|
+
event: keyof Amity.MqttCommentMessageEvents,
|
|
9
|
+
callback: Amity.Listener<Amity.Comment<T>>
|
|
10
|
+
) => {
|
|
11
|
+
const client = getActiveClient()
|
|
12
|
+
|
|
13
|
+
const filter = (payload: Amity.CommentPayload<T>) => {
|
|
14
|
+
const [cached] = pullFromCache('comment', payload.comments[0].commentId) ?? []
|
|
15
|
+
|
|
16
|
+
decoratePayload(payload)
|
|
17
|
+
ingestInCache(payload)
|
|
18
|
+
|
|
19
|
+
const [comment] = pullFromCache('comment', payload.comments[0].commentId) ?? []
|
|
20
|
+
|
|
21
|
+
if (cached && isMatch(cached, comment)) {
|
|
22
|
+
return
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
callback(comment)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return createEventSubscriber(
|
|
29
|
+
client,
|
|
30
|
+
event,
|
|
31
|
+
event,
|
|
32
|
+
filter
|
|
33
|
+
)
|
|
34
|
+
}
|
|
@@ -7,6 +7,10 @@ import { getComment } from '../api'
|
|
|
7
7
|
import {
|
|
8
8
|
onCommentUpdated,
|
|
9
9
|
onCommentDeleted,
|
|
10
|
+
onCommentFlagged,
|
|
11
|
+
onCommentUnflagged,
|
|
12
|
+
onCommentReactionAdded,
|
|
13
|
+
onCommentReactionRemoved,
|
|
10
14
|
} from '../events'
|
|
11
15
|
|
|
12
16
|
|
|
@@ -26,7 +30,7 @@ import {
|
|
|
26
30
|
*
|
|
27
31
|
* @category Comment Observer
|
|
28
32
|
*/
|
|
29
|
-
export const observeComment = <Events extends ['onFetch', 'onUpdate', 'onDelete']>(
|
|
33
|
+
export const observeComment = <Events extends ['onFetch', 'onUpdate', 'onDelete', 'onFlagged', 'onUnflagged', 'onReactionAdded', 'onReactionRemoved']>(
|
|
30
34
|
commentId: string,
|
|
31
35
|
callback: Amity.ObjectListener<Amity.QueryResult<Amity.Comment>, Events>,
|
|
32
36
|
policy: Amity.QueryPolicy = 'cache_then_server',
|
|
@@ -41,9 +45,6 @@ export const observeComment = <Events extends ['onFetch', 'onUpdate', 'onDelete'
|
|
|
41
45
|
result: Amity.QueryResult<Amity.Comment>,
|
|
42
46
|
action: Events[number]
|
|
43
47
|
) => {
|
|
44
|
-
// filter function
|
|
45
|
-
if (result.data?.commentId !== commentId) return
|
|
46
|
-
|
|
47
48
|
if (callback instanceof Function)
|
|
48
49
|
return callback(result)
|
|
49
50
|
|
|
@@ -53,16 +54,29 @@ export const observeComment = <Events extends ['onFetch', 'onUpdate', 'onDelete'
|
|
|
53
54
|
callback[action]?.(result)
|
|
54
55
|
}
|
|
55
56
|
|
|
57
|
+
const realtimeRouter = (
|
|
58
|
+
result: Amity.QueryResult<Amity.Comment>,
|
|
59
|
+
action: Events[number]
|
|
60
|
+
) => {
|
|
61
|
+
if (result.data?.commentId !== commentId) return
|
|
62
|
+
|
|
63
|
+
router(result, action)
|
|
64
|
+
}
|
|
65
|
+
|
|
56
66
|
const disposers: Amity.Unsubscriber[] = []
|
|
57
67
|
|
|
58
68
|
disposers.push(
|
|
59
|
-
onCommentUpdated(data =>
|
|
60
|
-
onCommentDeleted(data =>
|
|
69
|
+
onCommentUpdated(data => realtimeRouter({ data }, 'onUpdate')),
|
|
70
|
+
onCommentDeleted(data => realtimeRouter({ data }, 'onDelete')),
|
|
71
|
+
onCommentFlagged(data => realtimeRouter({ data }, 'onFlagged')),
|
|
72
|
+
onCommentUnflagged(data => realtimeRouter({ data }, 'onUnflagged')),
|
|
73
|
+
onCommentReactionAdded(data => realtimeRouter({ data }, 'onReactionAdded')),
|
|
74
|
+
onCommentReactionRemoved(data => realtimeRouter({ data }, 'onReactionRemoved')),
|
|
61
75
|
)
|
|
62
76
|
|
|
63
77
|
runQuery(
|
|
64
78
|
createQuery(getComment, commentId),
|
|
65
|
-
result =>
|
|
79
|
+
result => router(result, 'onFetch'),
|
|
66
80
|
queryOptions(policy)
|
|
67
81
|
)
|
|
68
82
|
|
|
@@ -4,6 +4,10 @@ import {
|
|
|
4
4
|
onCommentCreated,
|
|
5
5
|
onCommentUpdated,
|
|
6
6
|
onCommentDeleted,
|
|
7
|
+
onCommentFlagged,
|
|
8
|
+
onCommentUnflagged,
|
|
9
|
+
onCommentReactionAdded,
|
|
10
|
+
onCommentReactionRemoved,
|
|
7
11
|
} from '../events'
|
|
8
12
|
|
|
9
13
|
/**
|
|
@@ -26,7 +30,7 @@ export const observeComments = (
|
|
|
26
30
|
postId: Amity.Post['postId'],
|
|
27
31
|
callback: Amity.ObjectListener<
|
|
28
32
|
Amity.Comment,
|
|
29
|
-
['onCreate', 'onUpdate', 'onDelete']
|
|
33
|
+
['onCreate', 'onUpdate', 'onDelete', 'onFlagged', 'onUnflagged', 'onReactionAdded', 'onReactionRemoved']
|
|
30
34
|
>
|
|
31
35
|
): Amity.Unsubscriber => {
|
|
32
36
|
const { log } = getActiveClient()
|
|
@@ -38,7 +42,7 @@ export const observeComments = (
|
|
|
38
42
|
|
|
39
43
|
const router = (
|
|
40
44
|
comment: Amity.Comment,
|
|
41
|
-
action: 'onCreate' | 'onUpdate' | 'onDelete'
|
|
45
|
+
action: 'onCreate' | 'onUpdate' | 'onDelete' | 'onFlagged' | 'onUnflagged' | 'onReactionAdded' | 'onReactionRemoved'
|
|
42
46
|
) => {
|
|
43
47
|
if (comment.referenceId !== postId) return
|
|
44
48
|
|
|
@@ -51,7 +55,11 @@ export const observeComments = (
|
|
|
51
55
|
disposers.push(
|
|
52
56
|
onCommentCreated(comment => router(comment, 'onCreate')),
|
|
53
57
|
onCommentUpdated(comment => router(comment, 'onUpdate')),
|
|
54
|
-
onCommentDeleted(comment => router(comment, 'onDelete'))
|
|
58
|
+
onCommentDeleted(comment => router(comment, 'onDelete')),
|
|
59
|
+
onCommentFlagged(comment => router(comment, 'onFlagged')),
|
|
60
|
+
onCommentUnflagged(comment => router(comment, 'onUnflagged')),
|
|
61
|
+
onCommentReactionAdded(comment => router(comment, 'onReactionAdded')),
|
|
62
|
+
onCommentReactionRemoved(comment => router(comment, 'onReactionRemoved')),
|
|
55
63
|
)
|
|
56
64
|
|
|
57
65
|
return () => {
|
|
@@ -33,7 +33,7 @@ export const updateCommunity = async (
|
|
|
33
33
|
|
|
34
34
|
decoratePayload(data)
|
|
35
35
|
ingestInCache(data)
|
|
36
|
-
fireEvent('
|
|
36
|
+
fireEvent('community.updated', data)
|
|
37
37
|
|
|
38
38
|
const { communities } = data
|
|
39
39
|
return communities.find(community => community.communityId === communityId)!
|
|
@@ -4,3 +4,8 @@ export * from './onCommunityDeleted'
|
|
|
4
4
|
|
|
5
5
|
export * from './onCommunityJoined'
|
|
6
6
|
export * from './onCommunityLeft'
|
|
7
|
+
|
|
8
|
+
export * from './onCommunityUserAdded'
|
|
9
|
+
export * from './onCommunityUserRemoved'
|
|
10
|
+
export * from './onCommunityUserBanned'
|
|
11
|
+
export * from './onCommunityUserUnbanned'
|
|
@@ -1,37 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createEventSubscriber } from '~/core/events'
|
|
3
|
-
|
|
4
|
-
import { decoratePayload } from '~/core/query'
|
|
5
|
-
import { ingestInCache } from '~/core/cache'
|
|
1
|
+
import { createCommunityEventSubscriber } from './utils'
|
|
6
2
|
|
|
7
3
|
/**
|
|
8
4
|
* ```js
|
|
9
5
|
* import { onCommunityCreated } from '@amityco/ts-sdk'
|
|
10
|
-
* const dispose = onCommunityCreated(
|
|
6
|
+
* const dispose = onCommunityCreated(community => {
|
|
11
7
|
* // ...
|
|
12
8
|
* })
|
|
13
9
|
* ```
|
|
14
10
|
*
|
|
15
|
-
* Fired when
|
|
11
|
+
* Fired when {@link Amity.Community} have been created
|
|
16
12
|
*
|
|
17
13
|
* @param callback The function to call when the event was fired
|
|
18
14
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
19
15
|
*
|
|
20
16
|
* @category Community Events
|
|
21
17
|
*/
|
|
22
|
-
export const onCommunityCreated = (callback: Amity.Listener<Amity.Community>) =>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const filter = (payload: Amity.CommunityPayload) => {
|
|
26
|
-
decoratePayload(payload)
|
|
27
|
-
ingestInCache(payload)
|
|
28
|
-
callback(payload.communities[0])
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return createEventSubscriber(
|
|
32
|
-
client,
|
|
33
|
-
'onCommunityCreated',
|
|
34
|
-
'v3.community.didCreate',
|
|
35
|
-
filter
|
|
36
|
-
)
|
|
37
|
-
}
|
|
18
|
+
export const onCommunityCreated = (callback: Amity.Listener<Amity.Community>) =>
|
|
19
|
+
createCommunityEventSubscriber('community.created', callback)
|
|
@@ -1,37 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createEventSubscriber } from '~/core/events'
|
|
3
|
-
|
|
4
|
-
import { decoratePayload } from '~/core/query'
|
|
5
|
-
import { ingestInCache } from '~/core/cache'
|
|
1
|
+
import { createCommunityEventSubscriber } from './utils'
|
|
6
2
|
|
|
7
3
|
/**
|
|
8
4
|
* ```js
|
|
9
5
|
* import { onCommunityDeleted } from '@amityco/ts-sdk'
|
|
10
|
-
* const dispose = onCommunityDeleted(
|
|
6
|
+
* const dispose = onCommunityDeleted(community => {
|
|
11
7
|
* // ...
|
|
12
8
|
* })
|
|
13
9
|
* ```
|
|
14
10
|
*
|
|
15
|
-
* Fired when
|
|
11
|
+
* Fired when a {@link Amity.Community} has been deleted
|
|
16
12
|
*
|
|
17
13
|
* @param callback The function to call when the event was fired
|
|
18
14
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
19
15
|
*
|
|
20
16
|
* @category Community Events
|
|
21
17
|
*/
|
|
22
|
-
export const onCommunityDeleted = (callback: Amity.Listener<Amity.Community>) =>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const filter = (payload: Amity.CommunityPayload) => {
|
|
26
|
-
decoratePayload(payload)
|
|
27
|
-
ingestInCache(payload)
|
|
28
|
-
callback(payload.communities[0])
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return createEventSubscriber(
|
|
32
|
-
client,
|
|
33
|
-
'onCommunityDeleted',
|
|
34
|
-
'v3.community.didDelete',
|
|
35
|
-
filter
|
|
36
|
-
)
|
|
37
|
-
}
|
|
18
|
+
export const onCommunityDeleted = (callback: Amity.Listener<Amity.Community>) =>
|
|
19
|
+
createCommunityEventSubscriber('community.deleted', callback)
|
|
@@ -1,37 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createEventSubscriber } from '~/core/events'
|
|
3
|
-
|
|
4
|
-
import { decoratePayload } from '~/core/query'
|
|
5
|
-
import { ingestInCache } from '~/core/cache'
|
|
1
|
+
import { createCommunityMemberEventSubscriber } from './utils'
|
|
6
2
|
|
|
7
3
|
/**
|
|
8
4
|
* ```js
|
|
9
5
|
* import { onCommunityJoined } from '@amityco/ts-sdk'
|
|
10
|
-
* const dispose = onCommunityJoined(
|
|
6
|
+
* const dispose = onCommunityJoined((community, member) => {
|
|
11
7
|
* // ...
|
|
12
8
|
* })
|
|
13
9
|
* ```
|
|
14
10
|
*
|
|
15
|
-
* Fired when
|
|
11
|
+
* Fired when a {@link Amity.Community} has been joined
|
|
16
12
|
*
|
|
17
13
|
* @param callback The function to call when the event was fired
|
|
18
14
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
19
15
|
*
|
|
20
16
|
* @category Community Events
|
|
21
17
|
*/
|
|
22
|
-
export const onCommunityJoined = (callback: Amity.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const filter = (payload: Amity.CommunityPayload) => {
|
|
26
|
-
decoratePayload(payload)
|
|
27
|
-
ingestInCache(payload)
|
|
28
|
-
callback(payload.communities[0])
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return createEventSubscriber(
|
|
32
|
-
client,
|
|
33
|
-
'onCommunityJoined',
|
|
34
|
-
'v3.community.didJoin',
|
|
35
|
-
filter
|
|
36
|
-
)
|
|
37
|
-
}
|
|
18
|
+
export const onCommunityJoined = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
|
|
19
|
+
createCommunityMemberEventSubscriber('community.joined', callback)
|
|
@@ -1,37 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createEventSubscriber } from '~/core/events'
|
|
3
|
-
|
|
4
|
-
import { decoratePayload } from '~/core/query'
|
|
5
|
-
import { ingestInCache } from '~/core/cache'
|
|
1
|
+
import { createCommunityMemberEventSubscriber } from './utils'
|
|
6
2
|
|
|
7
3
|
/**
|
|
8
4
|
* ```js
|
|
9
5
|
* import { onCommunityLeft } from '@amityco/ts-sdk'
|
|
10
|
-
* const dispose = onCommunityLeft(
|
|
6
|
+
* const dispose = onCommunityLeft((community, member) => {
|
|
11
7
|
* // ...
|
|
12
8
|
* })
|
|
13
9
|
* ```
|
|
14
10
|
*
|
|
15
|
-
* Fired when
|
|
11
|
+
* Fired when a {@link Amity.Community} has been left
|
|
16
12
|
*
|
|
17
13
|
* @param callback The function to call when the event was fired
|
|
18
14
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
19
15
|
*
|
|
20
16
|
* @category Community Events
|
|
21
17
|
*/
|
|
22
|
-
export const onCommunityLeft = (callback: Amity.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const filter = (payload: Amity.CommunityPayload) => {
|
|
26
|
-
decoratePayload(payload)
|
|
27
|
-
ingestInCache(payload)
|
|
28
|
-
callback(payload.communities[0])
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return createEventSubscriber(
|
|
32
|
-
client,
|
|
33
|
-
'onCommunityLeft',
|
|
34
|
-
'v3.community.didLeave',
|
|
35
|
-
filter
|
|
36
|
-
)
|
|
37
|
-
}
|
|
18
|
+
export const onCommunityLeft = (callback: (community: Amity.Community, member: Amity.Membership<'community'>) => void) =>
|
|
19
|
+
createCommunityMemberEventSubscriber('community.left', callback)
|