@amityco/ts-sdk 6.24.1 → 6.24.2-5a60993.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.
- package/.env +26 -26
- package/dist/@types/core/events.d.ts +2 -0
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/model.d.ts +4 -2
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +2 -1
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/domains/stream.d.ts +19 -3
- package/dist/@types/domains/stream.d.ts.map +1 -1
- package/dist/core/events.d.ts +3 -3
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/model/idResolvers.d.ts.map +1 -1
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/index.cjs.js +219 -146
- package/dist/index.esm.js +219 -146
- package/dist/index.umd.js +2 -2
- package/dist/reactionRepository/events/onReactionAdded.d.ts.map +1 -1
- package/dist/reactionRepository/events/onReactorAdded.d.ts.map +1 -1
- package/dist/reactionRepository/events/onReactorRemoved.d.ts.map +1 -1
- package/dist/streamRepository/api/createStream.d.ts +4 -4
- package/dist/streamRepository/api/createStream.d.ts.map +1 -1
- package/dist/streamRepository/api/deleteStream.d.ts +4 -4
- package/dist/streamRepository/api/deleteStream.d.ts.map +1 -1
- package/dist/streamRepository/api/disposeStream.d.ts +4 -4
- package/dist/streamRepository/api/disposeStream.d.ts.map +1 -1
- package/dist/streamRepository/api/queryStreams.d.ts +4 -4
- package/dist/streamRepository/api/queryStreams.d.ts.map +1 -1
- package/dist/streamRepository/api/updateStream.d.ts.map +1 -1
- package/dist/streamRepository/events/index.d.ts +2 -0
- package/dist/streamRepository/events/index.d.ts.map +1 -1
- package/dist/streamRepository/events/onStreamFlagged.d.ts +17 -0
- package/dist/streamRepository/events/onStreamFlagged.d.ts.map +1 -0
- package/dist/streamRepository/events/onStreamRecorded.d.ts +2 -2
- package/dist/streamRepository/events/onStreamRecorded.d.ts.map +1 -1
- package/dist/streamRepository/events/onStreamStarted.d.ts +2 -2
- package/dist/streamRepository/events/onStreamStarted.d.ts.map +1 -1
- package/dist/streamRepository/events/onStreamStopped.d.ts +2 -2
- package/dist/streamRepository/events/onStreamStopped.d.ts.map +1 -1
- package/dist/streamRepository/events/onStreamTerminated.d.ts +17 -0
- package/dist/streamRepository/events/onStreamTerminated.d.ts.map +1 -0
- package/dist/streamRepository/internalApi/queryStreams.d.ts +3 -3
- package/dist/streamRepository/internalApi/queryStreams.d.ts.map +1 -1
- package/dist/streamRepository/observers/getStreamById.d.ts +1 -0
- package/dist/streamRepository/observers/getStreamById.d.ts.map +1 -1
- package/dist/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.d.ts +14 -0
- package/dist/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.d.ts.map +1 -0
- package/dist/streamRepository/observers/getStreams/GetStreamsPageController.d.ts +14 -0
- package/dist/streamRepository/observers/getStreams/GetStreamsPageController.d.ts.map +1 -0
- package/dist/streamRepository/observers/getStreams/GetStreamsQueryStreamController.d.ts +15 -0
- package/dist/streamRepository/observers/getStreams/GetStreamsQueryStreamController.d.ts.map +1 -0
- package/dist/streamRepository/observers/getStreams/getStreams.d.ts +2 -0
- package/dist/streamRepository/observers/getStreams/getStreams.d.ts.map +1 -0
- package/dist/streamRepository/observers/getStreams/index.d.ts +2 -0
- package/dist/streamRepository/observers/getStreams/index.d.ts.map +1 -0
- package/dist/utils/linkedObject/index.d.ts +1 -0
- package/dist/utils/linkedObject/index.d.ts.map +1 -1
- package/dist/utils/linkedObject/streamLinkedObject.d.ts +2 -0
- package/dist/utils/linkedObject/streamLinkedObject.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/@types/core/events.ts +4 -0
- package/src/@types/core/model.ts +4 -2
- package/src/@types/core/payload.ts +2 -1
- package/src/@types/domains/stream.ts +23 -3
- package/src/core/model/idResolvers.ts +1 -0
- package/src/core/model/index.ts +1 -0
- package/src/reactionRepository/events/onReactionAdded.ts +0 -1
- package/src/reactionRepository/events/onReactorAdded.ts +7 -2
- package/src/reactionRepository/events/onReactorRemoved.ts +6 -1
- package/src/streamRepository/api/createStream.ts +8 -5
- package/src/streamRepository/api/deleteStream.ts +6 -4
- package/src/streamRepository/api/disposeStream.ts +5 -5
- package/src/streamRepository/api/queryStreams.ts +4 -4
- package/src/streamRepository/api/updateStream.ts +2 -1
- package/src/streamRepository/events/index.ts +2 -0
- package/src/streamRepository/events/onStreamFlagged.ts +37 -0
- package/src/streamRepository/events/onStreamRecorded.ts +4 -2
- package/src/streamRepository/events/onStreamStarted.ts +4 -2
- package/src/streamRepository/events/onStreamStopped.ts +4 -2
- package/src/streamRepository/events/onStreamTerminated.ts +37 -0
- package/src/streamRepository/internalApi/queryStreams.ts +3 -3
- package/src/streamRepository/observers/getStreamById.ts +18 -5
- package/src/streamRepository/observers/getStreams/GetStreamsLiveCollectionController.ts +114 -0
- package/src/streamRepository/observers/getStreams/GetStreamsPageController.ts +23 -0
- package/src/streamRepository/observers/getStreams/GetStreamsQueryStreamController.ts +83 -0
- package/src/streamRepository/observers/getStreams/getStreams.ts +32 -0
- package/src/streamRepository/observers/getStreams/index.ts +1 -0
- package/src/streamRepository/observers/tests/getStreamById.test.ts +1 -1
- package/src/utils/linkedObject/index.ts +2 -0
- package/src/utils/linkedObject/streamLinkedObject.ts +11 -0
- package/dist/streamRepository/api/getStreams.d.ts +0 -39
- package/dist/streamRepository/api/getStreams.d.ts.map +0 -1
- package/dist/streamRepository/observers/getStreams.d.ts +0 -17
- package/dist/streamRepository/observers/getStreams.d.ts.map +0 -1
- package/src/streamRepository/api/getStreams.ts +0 -81
- package/src/streamRepository/observers/getStreams.ts +0 -152
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getStreams.d.ts","sourceRoot":"","sources":["../../../src/streamRepository/observers/getStreams.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,WACb,MAAM,oBAAoB,YACxB,MAAM,sBAAsB,CAAC,MAAM,MAAM,CAAC,WAC3C,MAAM,oBAAoB,eA0GpC,CAAC"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
2
|
-
|
|
3
|
-
import { toPage, toToken } from '~/core/query';
|
|
4
|
-
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
5
|
-
|
|
6
|
-
/* begin_public_function
|
|
7
|
-
id: stream.query
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* ```js
|
|
11
|
-
* import { getStreams } from '@amityco/ts-sdk'
|
|
12
|
-
* const streams = await getStreams()
|
|
13
|
-
* ```
|
|
14
|
-
*
|
|
15
|
-
* Queries a paginable list of {@link Amity.Stream} objects
|
|
16
|
-
*
|
|
17
|
-
* @param query The query parameters
|
|
18
|
-
* @returns A page of {@link Amity.Stream} objects
|
|
19
|
-
*
|
|
20
|
-
* @category Stream API
|
|
21
|
-
* @async
|
|
22
|
-
*/
|
|
23
|
-
export const getStreams = async (query?: {
|
|
24
|
-
isLive?: boolean;
|
|
25
|
-
statuses?: Amity.StreamStatus[];
|
|
26
|
-
userPublicIds?: Amity.InternalUser['userId'][];
|
|
27
|
-
sortBy?: 'lastCreated' | 'firstCreated';
|
|
28
|
-
isDeleted?: Amity.Stream['isDeleted'];
|
|
29
|
-
page?: Amity.Page;
|
|
30
|
-
}): Promise<Amity.Cached<Amity.Paged<Amity.Stream>>> => {
|
|
31
|
-
const client = getActiveClient();
|
|
32
|
-
client.log('stream/getStreams', query);
|
|
33
|
-
|
|
34
|
-
const { page, ...params } = query ?? {};
|
|
35
|
-
|
|
36
|
-
const { data } = await client.http.get<{ results: Amity.StreamPayload } & Amity.Pagination>(
|
|
37
|
-
`/api/v3/video-streaming`,
|
|
38
|
-
{
|
|
39
|
-
params: {
|
|
40
|
-
...params,
|
|
41
|
-
options: {
|
|
42
|
-
token: toToken(page, 'skiplimit'),
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
);
|
|
47
|
-
|
|
48
|
-
// API-FIX: backend to response Amity.Response: const { paging, videoStreamings } = unwrapPayload(data)
|
|
49
|
-
// API-FIX: seems returned data has a results identifier on top of data, like no other apis, and this is beautiful
|
|
50
|
-
const { paging, results: payload } = data;
|
|
51
|
-
const { videoStreamings } = payload;
|
|
52
|
-
|
|
53
|
-
const cachedAt = client.cache && Date.now();
|
|
54
|
-
if (client.cache) ingestInCache(payload as Amity.StreamPayload, { cachedAt });
|
|
55
|
-
|
|
56
|
-
const nextPage = toPage(paging.next);
|
|
57
|
-
const prevPage = toPage(paging.previous);
|
|
58
|
-
|
|
59
|
-
return { data: videoStreamings, cachedAt, prevPage, nextPage };
|
|
60
|
-
};
|
|
61
|
-
/* end_public_function */
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* ```js
|
|
65
|
-
* import { getStreams } from '@amityco/ts-sdk'
|
|
66
|
-
* const streams = getStreams.locally()
|
|
67
|
-
* ```
|
|
68
|
-
*
|
|
69
|
-
* Queries a paginable list of {@link Amity.Stream} objects from cache
|
|
70
|
-
*
|
|
71
|
-
* @param query The query parameters
|
|
72
|
-
* @returns streams
|
|
73
|
-
*
|
|
74
|
-
* @category Stream API
|
|
75
|
-
*/
|
|
76
|
-
getStreams.locally = (query: Parameters<typeof getStreams>[0]) => {
|
|
77
|
-
const client = getActiveClient();
|
|
78
|
-
client.log('stream/getStreams.locally', query);
|
|
79
|
-
|
|
80
|
-
// TODO
|
|
81
|
-
};
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-use-before-define */
|
|
2
|
-
import { getResolver } from '~/core/model';
|
|
3
|
-
import { pullFromCache, pushToCache } from '~/cache/api';
|
|
4
|
-
import { getActiveClient } from '~/client/api';
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
createQuery,
|
|
8
|
-
filterByPropEquality,
|
|
9
|
-
queryOptions,
|
|
10
|
-
runQuery,
|
|
11
|
-
sortByFirstCreated,
|
|
12
|
-
sortByLastCreated,
|
|
13
|
-
} from '~/core/query';
|
|
14
|
-
|
|
15
|
-
import {
|
|
16
|
-
COLLECTION_DEFAULT_CACHING_POLICY,
|
|
17
|
-
COLLECTION_DEFAULT_PAGINATION_LIMIT,
|
|
18
|
-
ENABLE_CACHE_MESSAGE,
|
|
19
|
-
} from '~/utils/constants';
|
|
20
|
-
|
|
21
|
-
import { queryStreams as _queryStreams } from '../internalApi/queryStreams';
|
|
22
|
-
import { onStreamRecorded, onStreamStarted, onStreamStopped } from '../events';
|
|
23
|
-
|
|
24
|
-
/* begin_public_function
|
|
25
|
-
id: stream.query
|
|
26
|
-
*/
|
|
27
|
-
/**
|
|
28
|
-
* ```js
|
|
29
|
-
* import { StreamRepository } from '@amityco/ts-sdk'
|
|
30
|
-
* const streams = await StreamRepository.getStreams()
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* Observe all mutations on a list of {@link Amity.Stream}s
|
|
34
|
-
*
|
|
35
|
-
* @param params for querying streams
|
|
36
|
-
* @param callback the function to call when new data are available
|
|
37
|
-
* @param config
|
|
38
|
-
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the streams
|
|
39
|
-
*
|
|
40
|
-
* @category Stream Live Collection
|
|
41
|
-
*/
|
|
42
|
-
export const getStreams = (
|
|
43
|
-
params: Amity.StreamLiveCollection,
|
|
44
|
-
callback: Amity.LiveCollectionCallback<Amity.Stream>,
|
|
45
|
-
config?: Amity.LiveCollectionConfig,
|
|
46
|
-
) => {
|
|
47
|
-
const { log, cache } = getActiveClient();
|
|
48
|
-
|
|
49
|
-
if (!cache) {
|
|
50
|
-
console.log(ENABLE_CACHE_MESSAGE);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const timestamp = Date.now();
|
|
54
|
-
log(`getStreams(tmpid: ${timestamp}) > listen`);
|
|
55
|
-
|
|
56
|
-
const { limit: queryLimit, ...queryParams } = params;
|
|
57
|
-
|
|
58
|
-
const limit = queryLimit ?? COLLECTION_DEFAULT_PAGINATION_LIMIT;
|
|
59
|
-
const { policy = COLLECTION_DEFAULT_CACHING_POLICY } = config ?? {};
|
|
60
|
-
|
|
61
|
-
const disposers: Amity.Unsubscriber[] = [];
|
|
62
|
-
const cacheKey = ['streams', 'collection', params];
|
|
63
|
-
|
|
64
|
-
const applyFilter = (data: Amity.Stream[]): Amity.Stream[] => {
|
|
65
|
-
let streams = filterByPropEquality(data, 'isDeleted', params.isDeleted);
|
|
66
|
-
|
|
67
|
-
streams = streams.sort(
|
|
68
|
-
params.sortBy === 'lastCreated' ? sortByLastCreated : sortByFirstCreated,
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
return streams;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const responder = (data: Amity.StreamLiveCollectionCache, isEventModel = false) => {
|
|
75
|
-
const streams: Amity.Stream[] =
|
|
76
|
-
data.data
|
|
77
|
-
.map(streamId => {
|
|
78
|
-
return pullFromCache<Amity.Stream>(['stream', 'get', streamId])!;
|
|
79
|
-
})
|
|
80
|
-
.filter(Boolean)
|
|
81
|
-
.map(({ data }) => data) ?? [];
|
|
82
|
-
|
|
83
|
-
callback({
|
|
84
|
-
onNextPage: onFetch,
|
|
85
|
-
/*
|
|
86
|
-
* Only apply filter to RTE Model
|
|
87
|
-
*/
|
|
88
|
-
data: isEventModel ? applyFilter(streams) : streams,
|
|
89
|
-
hasNextPage: !!data.params?.page,
|
|
90
|
-
loading: data.loading,
|
|
91
|
-
error: data.error,
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
const realtimeRouter = (_: Amity.StreamActionType) => (stream: Amity.Stream) => {
|
|
96
|
-
const collection = pullFromCache<Amity.StreamLiveCollectionCache>(cacheKey)?.data;
|
|
97
|
-
if (!collection) return;
|
|
98
|
-
|
|
99
|
-
collection.data = [...new Set([stream.streamId, ...collection.data])];
|
|
100
|
-
|
|
101
|
-
pushToCache(cacheKey, collection);
|
|
102
|
-
responder(collection, true);
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
const onFetch = (initial = false) => {
|
|
106
|
-
const collection = pullFromCache<Amity.StreamLiveCollectionCache>(cacheKey)?.data;
|
|
107
|
-
|
|
108
|
-
const streams = collection?.data ?? [];
|
|
109
|
-
|
|
110
|
-
if (!initial && streams.length > 0 && !collection?.params.page) return;
|
|
111
|
-
|
|
112
|
-
const query = createQuery(_queryStreams, {
|
|
113
|
-
...queryParams,
|
|
114
|
-
limit: initial ? limit : undefined,
|
|
115
|
-
page: !initial ? collection?.params.page : undefined,
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
runQuery(
|
|
119
|
-
query,
|
|
120
|
-
({ data: result, error, loading, paging }) => {
|
|
121
|
-
const data = {
|
|
122
|
-
loading,
|
|
123
|
-
error,
|
|
124
|
-
params: { page: paging?.next },
|
|
125
|
-
data: streams,
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
if (result) {
|
|
129
|
-
data.data = [...new Set([...streams, ...result.map(getResolver('stream'))])];
|
|
130
|
-
}
|
|
131
|
-
pushToCache(cacheKey, data);
|
|
132
|
-
|
|
133
|
-
responder(data);
|
|
134
|
-
},
|
|
135
|
-
queryOptions(policy),
|
|
136
|
-
);
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
disposers.push(
|
|
140
|
-
onStreamRecorded(realtimeRouter('onStreamRecorded')),
|
|
141
|
-
onStreamStarted(realtimeRouter('onStreamStarted')),
|
|
142
|
-
onStreamStopped(realtimeRouter('onStreamStopped')),
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
onFetch(true);
|
|
146
|
-
|
|
147
|
-
return () => {
|
|
148
|
-
log(`getStreams(tmpid: ${timestamp}) > dispose`);
|
|
149
|
-
disposers.forEach(fn => fn());
|
|
150
|
-
};
|
|
151
|
-
};
|
|
152
|
-
/* end_public_function */
|