@amityco/ts-sdk 7.6.1-c97e594b.0 → 7.6.1-ce05a481.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 (145) hide show
  1. package/dist/@types/core/payload.d.ts +1 -1
  2. package/dist/@types/core/payload.d.ts.map +1 -1
  3. package/dist/@types/domains/channel.d.ts +0 -2
  4. package/dist/@types/domains/channel.d.ts.map +1 -1
  5. package/dist/@types/domains/content.d.ts +8 -2
  6. package/dist/@types/domains/content.d.ts.map +1 -1
  7. package/dist/@types/domains/feed.d.ts +6 -1
  8. package/dist/@types/domains/feed.d.ts.map +1 -1
  9. package/dist/@types/domains/file.d.ts +3 -1
  10. package/dist/@types/domains/file.d.ts.map +1 -1
  11. package/dist/@types/domains/post.d.ts +3 -3
  12. package/dist/@types/domains/post.d.ts.map +1 -1
  13. package/dist/@types/domains/stream.d.ts +0 -4
  14. package/dist/@types/domains/stream.d.ts.map +1 -1
  15. package/dist/channelRepository/api/createChannel.d.ts +1 -3
  16. package/dist/channelRepository/api/createChannel.d.ts.map +1 -1
  17. package/dist/channelRepository/internalApi/getChannel.d.ts.map +1 -1
  18. package/dist/communityRepository/api/getCommunity.d.ts +1 -1
  19. package/dist/communityRepository/api/getCommunity.d.ts.map +1 -1
  20. package/dist/core/model/index.d.ts.map +1 -1
  21. package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts +1 -1
  22. package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts.map +1 -1
  23. package/dist/feedRepository/api/queryGlobalFeed.d.ts.map +1 -1
  24. package/dist/feedRepository/index.d.ts +1 -1
  25. package/dist/feedRepository/index.d.ts.map +1 -1
  26. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.d.ts +13 -0
  27. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.d.ts.map +1 -0
  28. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.d.ts +5 -0
  29. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.d.ts.map +1 -0
  30. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.d.ts +15 -0
  31. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.d.ts.map +1 -0
  32. package/dist/feedRepository/observers/getCustomRankingGlobalFeed.d.ts +23 -0
  33. package/dist/feedRepository/observers/getCustomRankingGlobalFeed.d.ts.map +1 -0
  34. package/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.d.ts +13 -0
  35. package/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.d.ts.map +1 -0
  36. package/dist/feedRepository/observers/getGlobalFeed/PaginationController.d.ts +5 -0
  37. package/dist/feedRepository/observers/getGlobalFeed/PaginationController.d.ts.map +1 -0
  38. package/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.d.ts +15 -0
  39. package/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.d.ts.map +1 -0
  40. package/dist/feedRepository/observers/getGlobalFeed.d.ts +22 -0
  41. package/dist/feedRepository/observers/getGlobalFeed.d.ts.map +1 -0
  42. package/dist/feedRepository/observers/index.d.ts +3 -0
  43. package/dist/feedRepository/observers/index.d.ts.map +1 -0
  44. package/dist/feedRepository/observers/utils.d.ts +6 -0
  45. package/dist/feedRepository/observers/utils.d.ts.map +1 -0
  46. package/dist/fileRepository/api/index.d.ts +1 -0
  47. package/dist/fileRepository/api/index.d.ts.map +1 -1
  48. package/dist/fileRepository/api/uploadClip.d.ts +17 -0
  49. package/dist/fileRepository/api/uploadClip.d.ts.map +1 -0
  50. package/dist/index.cjs.js +7384 -7173
  51. package/dist/index.esm.js +9384 -9173
  52. package/dist/index.umd.js +3 -3
  53. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts +0 -2
  54. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts.map +1 -1
  55. package/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts +1 -1
  56. package/dist/messageRepository/api/deleteMessage.d.ts.map +1 -1
  57. package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts.map +1 -1
  58. package/dist/postRepository/api/createClipPost.d.ts +32 -0
  59. package/dist/postRepository/api/createClipPost.d.ts.map +1 -0
  60. package/dist/postRepository/api/createPost.d.ts.map +1 -1
  61. package/dist/postRepository/api/index.d.ts +1 -0
  62. package/dist/postRepository/api/index.d.ts.map +1 -1
  63. package/dist/postRepository/events/utils.d.ts.map +1 -1
  64. package/dist/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.d.ts.map +1 -1
  65. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts.map +1 -1
  66. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts +6 -0
  67. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -1
  68. package/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
  69. package/dist/postRepository/observers/utils.d.ts +13 -0
  70. package/dist/postRepository/observers/utils.d.ts.map +1 -0
  71. package/dist/postRepository/utils/payload.d.ts.map +1 -1
  72. package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  73. package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  74. package/dist/streamRepository/api/createStream.d.ts +1 -1
  75. package/dist/streamRepository/api/createStream.d.ts.map +1 -1
  76. package/dist/streamRepository/api/index.d.ts +0 -1
  77. package/dist/streamRepository/api/index.d.ts.map +1 -1
  78. package/dist/streamRepository/api/updateStream.d.ts +1 -4
  79. package/dist/streamRepository/api/updateStream.d.ts.map +1 -1
  80. package/dist/streamRepository/internalApi/getStream.d.ts +2 -2
  81. package/dist/streamRepository/internalApi/getStream.d.ts.map +1 -1
  82. package/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -1
  83. package/dist/utils/linkedObject/streamLinkedObject.d.ts.map +1 -1
  84. package/dist/utils/postTypePredicate.d.ts +4 -5
  85. package/dist/utils/postTypePredicate.d.ts.map +1 -1
  86. package/dist/utils/tests/dummy/comment.d.ts +1 -1
  87. package/package.json +1 -1
  88. package/src/@types/core/payload.ts +1 -1
  89. package/src/@types/domains/channel.ts +0 -3
  90. package/src/@types/domains/content.ts +10 -0
  91. package/src/@types/domains/feed.ts +18 -1
  92. package/src/@types/domains/file.ts +5 -0
  93. package/src/@types/domains/post.ts +4 -4
  94. package/src/@types/domains/stream.ts +0 -4
  95. package/src/channelRepository/api/createChannel.ts +9 -12
  96. package/src/channelRepository/internalApi/getChannel.ts +1 -0
  97. package/src/channelRepository/utils/constructChannelObject.ts +2 -2
  98. package/src/commentRepository/api/deleteComment.ts +6 -6
  99. package/src/communityRepository/api/getCommunity.ts +0 -9
  100. package/src/core/model/index.ts +2 -1
  101. package/src/feedRepository/api/getCustomRankingGlobalFeed.ts +1 -1
  102. package/src/feedRepository/api/queryGlobalFeed.ts +3 -1
  103. package/src/feedRepository/index.ts +1 -1
  104. package/src/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.ts +95 -0
  105. package/src/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.ts +25 -0
  106. package/src/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.ts +101 -0
  107. package/src/feedRepository/observers/getCustomRankingGlobalFeed.ts +57 -0
  108. package/src/feedRepository/observers/getGlobalFeed/LiveCollectionController.ts +91 -0
  109. package/src/feedRepository/observers/getGlobalFeed/PaginationController.ts +23 -0
  110. package/src/feedRepository/observers/getGlobalFeed/QueryStreamController.ts +99 -0
  111. package/src/feedRepository/observers/getGlobalFeed.ts +56 -0
  112. package/src/feedRepository/observers/index.ts +2 -0
  113. package/src/feedRepository/observers/utils.ts +85 -0
  114. package/src/fileRepository/api/index.ts +1 -0
  115. package/src/fileRepository/api/uploadClip.ts +71 -0
  116. package/src/messageRepository/api/deleteMessage.ts +0 -16
  117. package/src/messageRepository/observers/getMessages/MessageQueryStreamController.ts +0 -13
  118. package/src/postRepository/api/createClipPost.ts +62 -0
  119. package/src/postRepository/api/createPost.ts +2 -3
  120. package/src/postRepository/api/index.ts +2 -0
  121. package/src/postRepository/api/queryPosts.ts +1 -1
  122. package/src/postRepository/events/utils.ts +35 -1
  123. package/src/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.ts +5 -0
  124. package/src/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.ts +7 -1
  125. package/src/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.ts +27 -0
  126. package/src/postRepository/observers/getPosts/PostLiveCollectionController.ts +2 -74
  127. package/src/postRepository/observers/getPosts/PostPaginationController.ts +1 -1
  128. package/src/postRepository/observers/utils.ts +97 -0
  129. package/src/postRepository/utils/payload.ts +1 -37
  130. package/src/reactionRepository/api/addReaction.ts +1 -0
  131. package/src/reactionRepository/api/removeReaction.ts +1 -0
  132. package/src/streamRepository/api/createStream.ts +1 -4
  133. package/src/streamRepository/api/index.ts +0 -1
  134. package/src/streamRepository/api/updateStream.ts +1 -8
  135. package/src/streamRepository/internalApi/getStream.ts +3 -3
  136. package/src/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.ts +1 -1
  137. package/src/utils/linkedObject/postLinkedObject.ts +8 -28
  138. package/src/utils/linkedObject/streamLinkedObject.ts +0 -2
  139. package/src/utils/postTypePredicate.ts +6 -20
  140. package/dist/streamRepository/api/editStream.d.ts +0 -18
  141. package/dist/streamRepository/api/editStream.d.ts.map +0 -1
  142. package/dist/streamRepository/internalApi/getLiveChat.d.ts +0 -16
  143. package/dist/streamRepository/internalApi/getLiveChat.d.ts.map +0 -1
  144. package/src/streamRepository/api/editStream.ts +0 -51
  145. package/src/streamRepository/internalApi/getLiveChat.ts +0 -59
@@ -7,9 +7,6 @@ import { LinkedObject } from '~/utils/linkedObject';
7
7
  id: stream.update
8
8
  */
9
9
  /**
10
- * @deprecated this function is deprecated,
11
- * please use {@link Amity.StreamRepository.editStream} instead.
12
- *
13
10
  * ```js
14
11
  * import { updateStream } from '@amityco/ts-sdk'
15
12
  * const updated = await updateStream(streamId, { title: 'foobar' })
@@ -24,13 +21,9 @@ import { LinkedObject } from '~/utils/linkedObject';
24
21
  * @category Stream API
25
22
  * @async
26
23
  */
27
-
28
24
  export const updateStream = async (
29
25
  streamId: Amity.Stream['streamId'],
30
- patch: Patch<
31
- Amity.Stream,
32
- 'title' | 'thumbnailFileId' | 'description' | 'metadata' | 'channelEnabled'
33
- >,
26
+ patch: Patch<Amity.Stream, 'title' | 'thumbnailFileId' | 'description' | 'metadata'>,
34
27
  ): Promise<Amity.Cached<Amity.Stream>> => {
35
28
  const client = getActiveClient();
36
29
  client.log('stream/updateStream', streamId, patch);
@@ -22,7 +22,7 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
22
22
  */
23
23
  export const getStream = async (
24
24
  streamId: Amity.Stream['streamId'],
25
- ): Promise<Amity.Cached<Amity.InternalStream>> => {
25
+ ): Promise<Amity.Cached<Amity.Stream>> => {
26
26
  const client = getActiveClient();
27
27
  client.log('stream/getStream', streamId);
28
28
 
@@ -57,13 +57,13 @@ export const getStream = async (
57
57
  */
58
58
  getStream.locally = (
59
59
  streamId: Amity.Stream['streamId'],
60
- ): Amity.Cached<Amity.InternalStream> | undefined => {
60
+ ): Amity.Cached<Amity.Stream> | undefined => {
61
61
  const client = getActiveClient();
62
62
  client.log('stream/getStream', streamId);
63
63
 
64
64
  if (!client.cache) return;
65
65
 
66
- const cached = pullFromCache<Amity.InternalStream>(['stream', 'get', streamId]);
66
+ const cached = pullFromCache<Amity.Stream>(['stream', 'get', streamId]);
67
67
 
68
68
  if (!cached) return;
69
69
 
@@ -102,7 +102,7 @@ export class GetStreamsLiveCollectionController extends LiveCollectionController
102
102
  this.queryStreamController.appendToQueryStream(response, direction, refresh);
103
103
  }
104
104
 
105
- private applyFilter = (data: Amity.Stream[]): Amity.Stream[] => {
105
+ private applyFilter = (data: Amity.InternalStream[]): Amity.InternalStream[] => {
106
106
  let streams = filterByPropEquality(data, 'isDeleted', this.query.isDeleted);
107
107
 
108
108
  streams = streams.sort(
@@ -3,22 +3,15 @@ import { commentLinkedObject } from '~/utils/linkedObject/commentLinkedObject';
3
3
  import AnalyticsEngine from '../../analytic/service/analytic/AnalyticsEngine';
4
4
  import { userLinkedObject } from './userLinkedObject';
5
5
  import {
6
+ isAmityClipPost,
6
7
  isAmityFilePost,
7
8
  isAmityImagePost,
8
- isAmityLivestreamPost,
9
- isAmityPollPost,
10
9
  isAmityVideoPost,
11
10
  } from '../postTypePredicate';
12
- import { streamLinkedObject } from './streamLinkedObject';
13
- import { isNonNullable } from '..';
11
+ import { shallowClone } from '../shallowClone';
14
12
 
15
13
  export const postLinkedObject = (post: Amity.InternalPost): Amity.Post => {
16
- return {
17
- ...post,
18
- childrenPosts: post.children
19
- .map(childPost => pullFromCache<Amity.InternalPost>(['post', 'get', childPost])?.data)
20
- .filter(isNonNullable)
21
- .map(postLinkedObject),
14
+ return shallowClone(post, {
22
15
  analytics: {
23
16
  markAsViewed: () => {
24
17
  const analyticsEngineInstance = AnalyticsEngine.getInstance();
@@ -76,23 +69,10 @@ export const postLinkedObject = (post: Amity.InternalPost): Amity.Post => {
76
69
  : undefined;
77
70
  },
78
71
 
79
- getLivestreamInfo(): Amity.Stream | undefined {
80
- if (!isAmityLivestreamPost(post)) return;
81
- const cache = pullFromCache<Amity.InternalStream>([
82
- 'stream',
83
- 'get',
84
- post?.data?.streamId,
85
- ])?.data;
86
- if (!cache) return;
87
-
88
- return streamLinkedObject(cache);
89
- },
90
-
91
- getPollInfo(): Amity.Poll | undefined {
92
- if (!isAmityPollPost(post)) return;
93
- const cache = pullFromCache<Amity.Poll>(['poll', 'get', post?.data?.pollId])?.data;
94
- if (!cache) return;
95
- return cache;
72
+ getClipInfo(): Amity.File<'clip'> | undefined {
73
+ return isAmityClipPost(post)
74
+ ? pullFromCache<Amity.File<'clip'>>(['file', 'get', post?.data?.fileId])?.data
75
+ : undefined;
96
76
  },
97
- };
77
+ });
98
78
  };
@@ -1,5 +1,4 @@
1
1
  import { pullFromCache } from '~/cache/api';
2
- import { getLiveChat as _getLiveChat } from '~/streamRepository/internalApi/getLiveChat';
3
2
 
4
3
  export const streamLinkedObject = (stream: Amity.InternalStream): Amity.Stream => {
5
4
  return {
@@ -19,6 +18,5 @@ export const streamLinkedObject = (stream: Amity.InternalStream): Amity.Stream =
19
18
  get user() {
20
19
  return pullFromCache<Amity.User>(['user', 'get', stream.userId])?.data;
21
20
  },
22
- getLiveChat: () => _getLiveChat(stream),
23
21
  };
24
22
  };
@@ -1,6 +1,5 @@
1
- export function isAmityImagePost(post?: Amity.InternalPost): post is Amity.Post<'image'> {
1
+ export function isAmityImagePost(post: Amity.InternalPost): post is Amity.Post<'image'> {
2
2
  return !!(
3
- post &&
4
3
  post.data &&
5
4
  typeof post.data !== 'string' &&
6
5
  'fileId' in post.data &&
@@ -8,9 +7,8 @@ export function isAmityImagePost(post?: Amity.InternalPost): post is Amity.Post<
8
7
  );
9
8
  }
10
9
 
11
- export function isAmityFilePost(post?: Amity.InternalPost): post is Amity.Post<'file'> {
10
+ export function isAmityFilePost(post: Amity.InternalPost): post is Amity.Post<'file'> {
12
11
  return !!(
13
- post &&
14
12
  post.data &&
15
13
  typeof post.data !== 'string' &&
16
14
  'fileId' in post.data &&
@@ -18,9 +16,8 @@ export function isAmityFilePost(post?: Amity.InternalPost): post is Amity.Post<'
18
16
  );
19
17
  }
20
18
 
21
- export function isAmityVideoPost(post?: Amity.InternalPost): post is Amity.Post<'video'> {
19
+ export function isAmityVideoPost(post: Amity.InternalPost): post is Amity.Post<'video'> {
22
20
  return !!(
23
- post &&
24
21
  post.data &&
25
22
  typeof post.data !== 'string' &&
26
23
  'videoFileId' in post.data &&
@@ -29,22 +26,11 @@ export function isAmityVideoPost(post?: Amity.InternalPost): post is Amity.Post<
29
26
  );
30
27
  }
31
28
 
32
- export function isAmityLivestreamPost(post?: Amity.InternalPost): post is Amity.Post<'liveStream'> {
29
+ export function isAmityClipPost(post: Amity.InternalPost): post is Amity.Post<'clip'> {
33
30
  return !!(
34
- post &&
35
31
  post.data &&
36
32
  typeof post.data !== 'string' &&
37
- 'streamId' in post.data &&
38
- post.dataType === 'liveStream'
39
- );
40
- }
41
-
42
- export function isAmityPollPost(post?: Amity.InternalPost): post is Amity.Post<'poll'> {
43
- return !!(
44
- post &&
45
- post.data &&
46
- typeof post.data !== 'string' &&
47
- 'pollId' in post.data &&
48
- post.dataType === 'poll'
33
+ 'fileId' in post.data &&
34
+ post.dataType === 'clip'
49
35
  );
50
36
  }
@@ -1,18 +0,0 @@
1
- /**
2
- *
3
- * ```js
4
- * import { StreamRepository } from '@amityco/ts-sdk'
5
- * const updated = await StreamRepository.editStream(streamId, { title: 'foobar' })
6
- * ```
7
- *
8
- * Updates an {@link Amity.Stream}
9
- *
10
- * @param streamId The ID of the {@link Amity.Stream} to edit
11
- * @param patch The patch data to apply
12
- * @returns the updated {@link Amity.Stream} object
13
- *
14
- * @category Stream API
15
- * @async
16
- */
17
- export declare const editStream: (streamId: Amity.Stream['streamId'], patch: Patch<Amity.Stream, 'title' | 'thumbnailFileId' | 'description' | 'metadata' | 'channelEnabled'>) => Promise<Amity.Cached<Amity.Stream>>;
18
- //# sourceMappingURL=editStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editStream.d.ts","sourceRoot":"","sources":["../../../src/streamRepository/api/editStream.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,UAAU,aACX,MAAM,MAAM,CAAC,UAAU,CAAC,SAC3B,MACL,MAAM,MAAM,EACZ,OAAO,GAAG,iBAAiB,GAAG,aAAa,GAAG,UAAU,GAAG,gBAAgB,CAC5E,KACA,QAAQ,MAAM,MAAM,CAAC,MAAM,MAAM,CAAC,CAkBpC,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * ```js
3
- * import { getStream } from '@amityco/ts-sdk'
4
- * const stream = await getStream('foobar')
5
- * ```
6
- *
7
- * Fetches a {@link Amity.Channel} object linked with a current stream
8
- *
9
- * @param stream {@link Amity.Stream} that has linked live channel
10
- * @returns the associated {@link Amity.Channel<'live'>} object
11
- *
12
- * @category Stream API
13
- * @async
14
- */
15
- export declare const getLiveChat: (stream: Amity.InternalStream) => Promise<Amity.Channel<'live'> | undefined>;
16
- //# sourceMappingURL=getLiveChat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getLiveChat.d.ts","sourceRoot":"","sources":["../../../src/streamRepository/internalApi/getLiveChat.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,WAAW,WACd,MAAM,cAAc,KAC3B,QAAQ,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAkC3C,CAAC"}
@@ -1,51 +0,0 @@
1
- import { getActiveClient } from '~/client/api';
2
-
3
- import { ingestInCache } from '~/cache/api/ingestInCache';
4
- import { LinkedObject } from '~/utils/linkedObject';
5
-
6
- /* begin_public_function
7
- id: stream.update
8
- */
9
- /**
10
- *
11
- * ```js
12
- * import { StreamRepository } from '@amityco/ts-sdk'
13
- * const updated = await StreamRepository.editStream(streamId, { title: 'foobar' })
14
- * ```
15
- *
16
- * Updates an {@link Amity.Stream}
17
- *
18
- * @param streamId The ID of the {@link Amity.Stream} to edit
19
- * @param patch The patch data to apply
20
- * @returns the updated {@link Amity.Stream} object
21
- *
22
- * @category Stream API
23
- * @async
24
- */
25
-
26
- export const editStream = async (
27
- streamId: Amity.Stream['streamId'],
28
- patch: Patch<
29
- Amity.Stream,
30
- 'title' | 'thumbnailFileId' | 'description' | 'metadata' | 'channelEnabled'
31
- >,
32
- ): Promise<Amity.Cached<Amity.Stream>> => {
33
- const client = getActiveClient();
34
- client.log('stream/updateStream', streamId, patch);
35
-
36
- const { data } = await client.http.put<Amity.StreamPayload>(
37
- `/api/v3/video-streaming/${streamId}`,
38
- patch,
39
- );
40
-
41
- const cachedAt = client.cache && Date.now();
42
- if (client.cache) ingestInCache(data, { cachedAt });
43
-
44
- const { videoStreamings } = data;
45
-
46
- return {
47
- data: LinkedObject.stream(videoStreamings.find(stream => stream.streamId === streamId)!),
48
- cachedAt,
49
- };
50
- };
51
- /* end_public_function */
@@ -1,59 +0,0 @@
1
- import { getActiveClient } from '~/client/api/activeClient';
2
- import { mergeInCache, pullFromCache } from '~/cache/api';
3
- import { createChannel } from '~/channelRepository/api/createChannel';
4
- import { channelLinkedObject } from '~/utils/linkedObject/channelLinkedObject';
5
- import { getChannel } from '~/channelRepository/internalApi/getChannel';
6
- import { constructChannelObject } from '~/channelRepository/utils/constructChannelObject';
7
-
8
- /**
9
- * ```js
10
- * import { getStream } from '@amityco/ts-sdk'
11
- * const stream = await getStream('foobar')
12
- * ```
13
- *
14
- * Fetches a {@link Amity.Channel} object linked with a current stream
15
- *
16
- * @param stream {@link Amity.Stream} that has linked live channel
17
- * @returns the associated {@link Amity.Channel<'live'>} object
18
- *
19
- * @category Stream API
20
- * @async
21
- */
22
-
23
- export const getLiveChat = async (
24
- stream: Amity.InternalStream,
25
- ): Promise<Amity.Channel<'live'> | undefined> => {
26
- const client = getActiveClient();
27
- client.log('stream/getLiveChat', stream.streamId);
28
-
29
- if (stream.channelId) {
30
- const channel = pullFromCache<Amity.StaticInternalChannel>([
31
- 'channel',
32
- 'get',
33
- stream.channelId,
34
- ])?.data;
35
-
36
- if (channel) return channelLinkedObject(constructChannelObject(channel));
37
-
38
- const { data } = await getChannel(stream.channelId);
39
- return channelLinkedObject(constructChannelObject(data));
40
- }
41
- // No Channel ID
42
- // streamer: create a new live channel
43
- if (stream.userId === client.userId) {
44
- const { data: channel } = await createChannel({
45
- type: 'live',
46
- postId: stream.postId,
47
- videoStreamId: stream.streamId,
48
- });
49
-
50
- // Update channelId to stream object in cache
51
- mergeInCache(['stream', 'get', stream.streamId], {
52
- channelId: channel.channelId,
53
- });
54
-
55
- return channel;
56
- }
57
- // watcher: return undefined
58
- return undefined;
59
- };