@amityco/ts-sdk 7.7.1-bd711609.0 → 7.7.1-c6a1e2a.0

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.
Files changed (76) hide show
  1. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/payload.d.ts +8 -3
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/payload.d.ts.map +1 -1
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/payload.js.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts +0 -31
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js +1 -21
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js.map +1 -1
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/events/onChannelSetMuted.d.ts.map +1 -1
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/events/onChannelSetMuted.js +6 -8
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/events/onChannelSetMuted.js.map +1 -1
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts +0 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts.map +1 -1
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js +0 -1
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js.map +1 -1
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerBanned.d.ts.map +1 -1
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerBanned.js +5 -8
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerBanned.js.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerUnbanned.d.ts.map +1 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerUnbanned.js +3 -6
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerUnbanned.js.map +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  22. package/dist/@types/core/payload.d.ts +8 -3
  23. package/dist/@types/core/payload.d.ts.map +1 -1
  24. package/dist/@types/domains/feed.d.ts +0 -31
  25. package/dist/@types/domains/feed.d.ts.map +1 -1
  26. package/dist/channelRepository/events/onChannelSetMuted.d.ts.map +1 -1
  27. package/dist/feedRepository/index.d.ts +0 -1
  28. package/dist/feedRepository/index.d.ts.map +1 -1
  29. package/dist/index.cjs.js +1104 -1349
  30. package/dist/index.esm.js +1103 -1348
  31. package/dist/index.umd.js +1 -1
  32. package/dist/streamRepository/events/onStreamViewerBanned.d.ts.map +1 -1
  33. package/dist/streamRepository/events/onStreamViewerUnbanned.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/src/@types/core/payload.ts +4 -3
  36. package/src/@types/domains/feed.ts +0 -43
  37. package/src/channelRepository/events/onChannelSetMuted.ts +6 -8
  38. package/src/feedRepository/index.ts +0 -1
  39. package/src/streamRepository/events/onStreamViewerBanned.ts +5 -8
  40. package/src/streamRepository/events/onStreamViewerUnbanned.ts +4 -6
  41. package/tsconfig.tsbuildinfo +1 -1
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts +0 -14
  43. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js +0 -129
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/LiveCollectionController.js.map +0 -1
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
  47. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
  48. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js +0 -15
  49. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/PaginationController.js.map +0 -1
  50. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts +0 -15
  51. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
  52. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js +0 -78
  53. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed/QueryStreamController.js.map +0 -1
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
  56. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js +0 -46
  57. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getUserFeed.js.map +0 -1
  58. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts +0 -2
  59. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts.map +0 -1
  60. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js +0 -2
  61. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js.map +0 -1
  62. package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts +0 -14
  63. package/dist/feedRepository/observers/getUserFeed/LiveCollectionController.d.ts.map +0 -1
  64. package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts +0 -5
  65. package/dist/feedRepository/observers/getUserFeed/PaginationController.d.ts.map +0 -1
  66. package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts +0 -15
  67. package/dist/feedRepository/observers/getUserFeed/QueryStreamController.d.ts.map +0 -1
  68. package/dist/feedRepository/observers/getUserFeed.d.ts +0 -23
  69. package/dist/feedRepository/observers/getUserFeed.d.ts.map +0 -1
  70. package/dist/feedRepository/observers/index.d.ts +0 -2
  71. package/dist/feedRepository/observers/index.d.ts.map +0 -1
  72. package/src/feedRepository/observers/getUserFeed/LiveCollectionController.ts +0 -193
  73. package/src/feedRepository/observers/getUserFeed/PaginationController.ts +0 -37
  74. package/src/feedRepository/observers/getUserFeed/QueryStreamController.ts +0 -119
  75. package/src/feedRepository/observers/getUserFeed.ts +0 -56
  76. package/src/feedRepository/observers/index.ts +0 -1
@@ -1,193 +0,0 @@
1
- import hash from 'object-hash';
2
- import { pullFromCache, pushToCache } from '~/cache/api';
3
- import { UserFeedPaginationController } from './PaginationController';
4
- import { UserFeedQueryStreamController } from './QueryStreamController';
5
- import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
6
- import {
7
- onPostCreated,
8
- onPostUpdated,
9
- onPostDeleted,
10
- onPostFlagged,
11
- onPostUnflagged,
12
- onPostReactionAdded,
13
- onPostReactionRemoved,
14
- onPostApproved,
15
- onPostDeclined,
16
- } from '~/postRepository/events';
17
- import {
18
- filterByFeedType,
19
- filterByPostDataTypes,
20
- filterByPropEquality,
21
- sortByFirstCreated,
22
- sortByLastCreated,
23
- } from '~/core/query';
24
- import { isNonNullable } from '~/utils';
25
- import { EnumPostActions } from '~/postRepository/observers/enums';
26
- import { LinkedObject } from '~/utils/linkedObject';
27
- import { preparePostPayload } from '~/postRepository/utils/payload';
28
- import { convertEventPayload } from '~/utils/event';
29
- import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
30
- import { getPost } from '~/postRepository/internalApi/getPost';
31
- import { onPostUpdatedLocal } from '~/postRepository/events/onPostUpdatedLocal';
32
- import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostReactionAdded';
33
- import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
34
- import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
35
-
36
- export class UserFeedLiveCollectionController extends LiveCollectionController<
37
- 'post',
38
- Amity.UserFeedLiveCollection,
39
- Amity.Post,
40
- UserFeedPaginationController
41
- > {
42
- private queryStreamController: UserFeedQueryStreamController;
43
-
44
- private query: Amity.UserFeedLiveCollection;
45
-
46
- constructor(
47
- query: Amity.UserFeedLiveCollection,
48
- callback: Amity.LiveCollectionCallback<Amity.Post>,
49
- ) {
50
- const queryStreamId = hash(query);
51
- const cacheKey = ['userFeed', 'collection', queryStreamId];
52
- const paginationController = new UserFeedPaginationController(query);
53
-
54
- super(paginationController, queryStreamId, cacheKey, callback);
55
-
56
- this.query = query;
57
- this.queryStreamController = new UserFeedQueryStreamController(
58
- this.query,
59
- this.cacheKey,
60
- this.notifyChange.bind(this),
61
- preparePostPayload,
62
- );
63
-
64
- this.callback = callback.bind(this);
65
- this.loadPage({ initial: true });
66
- }
67
-
68
- protected setup() {
69
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
70
- if (!collection) {
71
- pushToCache(this.cacheKey, {
72
- data: [],
73
- params: {},
74
- });
75
- }
76
- }
77
-
78
- protected async persistModel(queryPayload: Amity.PostPayload & Amity.Pagination) {
79
- await this.queryStreamController.saveToMainDB(queryPayload);
80
- }
81
-
82
- protected persistQueryStream({
83
- response,
84
- direction,
85
- refresh,
86
- }: Amity.LiveCollectionPersistQueryStreamParams<'post'>) {
87
- this.queryStreamController.appendToQueryStream(response, direction, refresh);
88
- }
89
-
90
- startSubscription() {
91
- return this.queryStreamController.subscribeRTE([
92
- { fn: onPostCreated, action: EnumPostActions.OnPostCreated },
93
- { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
94
- { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
95
- { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
96
- { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
97
- { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
98
- { fn: onPostApproved, action: EnumPostActions.OnPostApproved },
99
- { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
100
- { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
101
- { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
102
- { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
103
- { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
104
- { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
105
- {
106
- fn: convertEventPayload(
107
- (callback: Amity.Listener<Amity.InternalComment>) => {
108
- return onCommentCreated(async (comment: Amity.InternalComment) => {
109
- const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
110
- this.cacheKey,
111
- )?.data;
112
-
113
- if (!currentCollection || currentCollection.data.includes(comment.referenceId))
114
- return;
115
-
116
- await getPost(comment.referenceId);
117
- callback(comment);
118
- });
119
- },
120
- 'referenceId',
121
- 'post',
122
- ),
123
- action: EnumPostActions.OnPostUpdated,
124
- },
125
- {
126
- fn: convertEventPayload(
127
- (callback: Amity.Listener<Amity.InternalComment>) => {
128
- return onCommentDeleted(async (comment: Amity.InternalComment) => {
129
- const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
130
- this.cacheKey,
131
- )?.data;
132
-
133
- if (!currentCollection || currentCollection.data.includes(comment.referenceId))
134
- return;
135
-
136
- await getPost(comment.referenceId);
137
- callback(comment);
138
- });
139
- },
140
- 'referenceId',
141
- 'post',
142
- ),
143
- action: EnumPostActions.OnPostUpdated,
144
- },
145
- ]);
146
- }
147
-
148
- notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
149
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
150
- if (!collection) return;
151
-
152
- const data = this.applyFilter(
153
- collection.data
154
- .map(id => pullFromCache<Amity.InternalPost>(['post', 'get', id])!)
155
- .filter(isNonNullable)
156
- .map(({ data }) => data) ?? [],
157
- ).map(LinkedObject.post);
158
-
159
- if (!this.shouldNotify(data) && origin === 'event') return;
160
-
161
- this.callback({
162
- onNextPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.NEXT }),
163
- data,
164
- hasNextPage: !!this.paginationController.getNextToken(),
165
- loading,
166
- error,
167
- });
168
- }
169
-
170
- applyFilter(data: Amity.InternalPost[]) {
171
- let posts = data;
172
-
173
- if (!this.query.includeDeleted) {
174
- posts = filterByPropEquality(posts, 'isDeleted', false);
175
- }
176
-
177
- if (this.query.dataTypes?.length) {
178
- posts = filterByPostDataTypes(posts, this.query.dataTypes);
179
- }
180
-
181
- switch (this.query.sortBy) {
182
- case 'firstCreated':
183
- posts = posts.sort(sortByFirstCreated);
184
- break;
185
- case 'lastCreated':
186
- default:
187
- posts = posts.sort(sortByLastCreated);
188
- break;
189
- }
190
-
191
- return posts;
192
- }
193
- }
@@ -1,37 +0,0 @@
1
- import { PaginationController } from '~/core/liveCollection/PaginationController';
2
- import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
3
- import { inferIsDeleted } from '~/utils/inferIsDeleted';
4
-
5
- export class UserFeedPaginationController extends PaginationController<
6
- 'post',
7
- Amity.UserFeedLiveCollection
8
- > {
9
- async getRequest(queryParams: Amity.UserFeedLiveCollection, token: string | undefined) {
10
- const {
11
- userId,
12
- feedSources,
13
- dataTypes,
14
- includeDeleted,
15
- matchingOnlyParentPost,
16
- limit = COLLECTION_DEFAULT_PAGINATION_LIMIT,
17
- ...params
18
- } = queryParams;
19
-
20
- const options = token ? { token } : { limit };
21
-
22
- const { data: queryResponse } = await this.http.get<Amity.PostPayload & Amity.Pagination>(
23
- `/api/v4/user-feeds/${userId}`,
24
- {
25
- params: {
26
- ...params,
27
- options,
28
- dataTypes: dataTypes?.length ? dataTypes : undefined,
29
- includePostedFeed: feedSources,
30
- isDeleted: inferIsDeleted(includeDeleted),
31
- matchingOnlyParentPost: matchingOnlyParentPost ?? !dataTypes?.length,
32
- },
33
- },
34
- );
35
- return queryResponse;
36
- }
37
- }
@@ -1,119 +0,0 @@
1
- import { getResolver } from '~/core/model';
2
- import { getActiveClient } from '~/client';
3
- import { pullFromCache, pushToCache } from '~/cache/api';
4
- import { ingestInCache } from '~/cache/api/ingestInCache';
5
- import { EnumPostActions } from '~/postRepository/observers/enums';
6
- import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
7
-
8
- export class UserFeedQueryStreamController extends QueryStreamController<
9
- Amity.PostPayload,
10
- Amity.UserFeedLiveCollection
11
- > {
12
- private notifyChange: (params: Amity.LiveCollectionNotifyParams) => void;
13
-
14
- private preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload;
15
-
16
- constructor(
17
- query: Amity.UserFeedLiveCollection,
18
- cacheKey: string[],
19
- notifyChange: (params: Amity.LiveCollectionNotifyParams) => void,
20
- preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload,
21
- ) {
22
- super(query, cacheKey);
23
- this.notifyChange = notifyChange;
24
- this.preparePayload = preparePayload;
25
- }
26
-
27
- async saveToMainDB(response: Amity.PostPayload) {
28
- const processedPayload = await this.preparePayload(response);
29
-
30
- const client = getActiveClient();
31
- const cachedAt = client.cache && Date.now();
32
-
33
- if (client.cache) {
34
- ingestInCache(processedPayload, { cachedAt });
35
- }
36
- }
37
-
38
- appendToQueryStream(
39
- response: Amity.PostPayload & Partial<Amity.Pagination>,
40
- direction: Amity.LiveCollectionPageDirection,
41
- refresh = false,
42
- ) {
43
- if (refresh) {
44
- pushToCache(this.cacheKey, {
45
- data: response.posts.map(getResolver('post')),
46
- });
47
- } else {
48
- const collection = pullFromCache<Amity.CommunityLiveCollectionCache>(this.cacheKey)?.data;
49
-
50
- const posts = collection?.data ?? [];
51
-
52
- pushToCache(this.cacheKey, {
53
- ...collection,
54
- data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])],
55
- });
56
- }
57
- }
58
-
59
- reactor(action: EnumPostActions) {
60
- return (post: Amity.InternalPost) => {
61
- const collection = pullFromCache<Amity.UserFeedLiveCollectionCache>(this.cacheKey)?.data;
62
-
63
- if (!collection) return;
64
-
65
- // if the collection is parent post collection and
66
- // post is not included in the collection or post is child post
67
- if (
68
- (!this.query.dataTypes || this.query.dataTypes.length === 0) &&
69
- !collection.data.includes(post.parentPostId ? post.parentPostId : post.postId)
70
- )
71
- return;
72
-
73
- if (action === EnumPostActions.OnPostDeleted) {
74
- collection.data = collection.data.filter(postId => postId !== post.postId);
75
- }
76
-
77
- if (post.parentPostId && post.isDeleted) {
78
- const parentPost = pullFromCache<Amity.InternalPost>([
79
- 'post',
80
- 'get',
81
- post.parentPostId,
82
- ])?.data;
83
-
84
- if (!parentPost) return;
85
-
86
- parentPost.children = parentPost.children.filter(childId => childId !== post.postId);
87
- pushToCache(['post', 'get', parentPost.postId], parentPost);
88
- }
89
-
90
- if (action === EnumPostActions.OnPostDeclined) {
91
- collection.data = collection.data.filter(postId => postId !== post.postId);
92
- }
93
-
94
- if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
95
- if (
96
- this.query.dataTypes &&
97
- this.query.dataTypes.length > 0 &&
98
- !this.query.dataTypes.includes(post.dataType)
99
- ) {
100
- return;
101
- }
102
-
103
- collection.data = [...new Set([post.postId, ...collection.data])];
104
- }
105
-
106
- pushToCache(this.cacheKey, collection);
107
- this.notifyChange({ origin: Amity.LiveDataOrigin.EVENT, loading: false });
108
- };
109
- }
110
-
111
- subscribeRTE(
112
- createSubscriber: {
113
- fn: (reactor: (post: Amity.InternalPost) => void) => Amity.Unsubscriber;
114
- action: EnumPostActions;
115
- }[],
116
- ) {
117
- return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
118
- }
119
- }
@@ -1,56 +0,0 @@
1
- import { getActiveClient } from '~/client/api/activeClient';
2
- import { dropFromCache } from '~/cache/api/dropFromCache';
3
- import { ENABLE_CACHE_MESSAGE } from '~/utils/constants';
4
- import { UserFeedLiveCollectionController } from './getUserFeed/LiveCollectionController';
5
-
6
- /* begin_public_function
7
- id: feed.query.user_feed
8
- */
9
- /**
10
- * ```js
11
- * import { FeedRepository } from '@amityco/ts-sdk'
12
- *
13
- * let posts = []
14
- * const unsubscribe = FeedRepository.getUserFeed({
15
- * userId: string,
16
- * feedSources: ['user', 'community'],
17
- * }, response => response => processResponse(response))
18
- * ```
19
- *
20
- * Observe all mutations on a list of {@link Amity.Post} for a given user and feedSources
21
- *
22
- * @param params.userId the ID of the user
23
- * @param params.feedSources the sources of the feed
24
- * @param callback the function to call when new data are available
25
- * @param config
26
- * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
27
- *
28
- * @category Posts Live Collection
29
- */
30
- export const getUserFeed = (
31
- params: Amity.UserFeedLiveCollection,
32
- callback: Amity.LiveCollectionCallback<Amity.Post>,
33
- config?: Amity.LiveCollectionConfig,
34
- ): Amity.Unsubscriber => {
35
- const { log, cache } = getActiveClient();
36
-
37
- if (!cache) {
38
- console.log(ENABLE_CACHE_MESSAGE);
39
- }
40
-
41
- const timestamp = Date.now();
42
- log(`getUserFeed(tmpid: ${timestamp}) > listen`);
43
-
44
- const userFeedLiveCollection = new UserFeedLiveCollectionController(params, callback);
45
- const disposers = userFeedLiveCollection.startSubscription();
46
-
47
- const cacheKey = userFeedLiveCollection.getCacheKey();
48
-
49
- disposers.push(() => dropFromCache(cacheKey));
50
-
51
- return () => {
52
- log(`getUserFeed(tmpid: ${timestamp}) > dispose`);
53
- disposers.forEach(fn => fn());
54
- };
55
- };
56
- /* end_public_function */
@@ -1 +0,0 @@
1
- export * from './getUserFeed';