@amityco/ts-sdk 0.0.1-beta.12 → 0.0.1-beta.15
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/README.md +3 -3
- package/dist/@types/core/cache.d.ts +2 -2
- package/dist/@types/core/cache.d.ts.map +1 -1
- package/dist/@types/core/events.d.ts +2 -2
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/paging.d.ts +19 -38
- package/dist/@types/core/paging.d.ts.map +1 -1
- package/dist/@types/core/query.d.ts +12 -4
- package/dist/@types/core/query.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +1 -1
- 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/file.d.ts +2 -2
- package/dist/@types/domains/file.d.ts.map +1 -1
- package/dist/@types/domains/mention.d.ts +23 -0
- package/dist/@types/domains/mention.d.ts.map +1 -0
- package/dist/@types/domains/message.d.ts +1 -1
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/post.d.ts +2 -2
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/index.d.ts +1 -0
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/category/api/queryCategories.d.ts +3 -3
- package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/queryChannels.d.ts +1 -1
- package/dist/client/api/createClient.d.ts +3 -3
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/client/api/disconnectClient.d.ts.map +1 -1
- package/dist/client/utils/endpoints.d.ts +12 -0
- package/dist/client/utils/endpoints.d.ts.map +1 -0
- package/dist/comment/api/createComment.d.ts +1 -1
- package/dist/comment/api/createComment.d.ts.map +1 -1
- package/dist/comment/api/updateComment.d.ts +1 -1
- package/dist/comment/api/updateComment.d.ts.map +1 -1
- package/dist/community/api/queryCommunities.d.ts +1 -1
- package/dist/core/debug.d.ts.map +1 -1
- package/dist/core/device.d.ts.map +1 -1
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/microtasks.d.ts +13 -0
- package/dist/core/microtasks.d.ts.map +1 -0
- package/dist/core/query/paging.d.ts +2 -13
- package/dist/core/query/paging.d.ts.map +1 -1
- package/dist/core/query/query.d.ts +1 -1
- package/dist/core/query/query.d.ts.map +1 -1
- package/dist/feed/api/queryGlobalFeed.d.ts +22 -4
- package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
- package/dist/index.cjs.js +101 -74
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +101 -74
- package/dist/index.umd.js +5 -5
- package/dist/message/api/createMessage.d.ts +2 -2
- package/dist/message/api/createMessage.d.ts.map +1 -1
- package/dist/message/api/updateMessage.d.ts +2 -2
- package/dist/message/api/updateMessage.d.ts.map +1 -1
- package/dist/post/api/createPost.d.ts +7 -3
- package/dist/post/api/createPost.d.ts.map +1 -1
- package/dist/post/api/queryPosts.d.ts +3 -3
- package/dist/post/api/queryPosts.d.ts.map +1 -1
- package/dist/post/api/updatePost.d.ts +1 -1
- package/dist/post/api/updatePost.d.ts.map +1 -1
- package/dist/role/api/queryRoles.d.ts +1 -1
- package/dist/stream/api/queryStreams.d.ts +1 -1
- package/dist/utils/env.d.ts +5 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/version.d.ts.map +1 -1
- package/package.json +1 -1
- package/rollup.config.js +3 -0
- package/src/@types/core/cache.ts +2 -2
- package/src/@types/core/events.ts +1 -1
- package/src/@types/core/paging.ts +29 -44
- package/src/@types/core/query.ts +7 -3
- package/src/@types/domains/client.ts +1 -1
- package/src/@types/domains/comment.ts +1 -0
- package/src/@types/domains/file.ts +2 -1
- package/src/@types/domains/mention.ts +26 -0
- package/src/@types/domains/message.ts +1 -0
- package/src/@types/domains/post.ts +2 -1
- package/src/@types/index.ts +2 -0
- package/src/channel/api/queryChannelMembers.ts +2 -1
- package/src/client/api/connectClient.ts +1 -1
- package/src/client/api/createClient.ts +7 -7
- package/src/client/api/disconnectClient.ts +0 -1
- package/src/client/utils/endpoints.ts +14 -0
- package/src/comment/api/createComment.ts +1 -2
- package/src/comment/api/updateComment.ts +1 -1
- package/src/community/api/queryCommunityMembers.ts +1 -1
- package/src/core/debug.ts +3 -1
- package/src/core/device.ts +3 -2
- package/src/core/events.ts +3 -1
- package/src/core/microtasks.ts +27 -0
- package/src/core/query/paging.ts +6 -41
- package/src/core/query/query.ts +5 -5
- package/src/core/subscription.ts +4 -4
- package/src/feed/api/queryGlobalFeed.ts +58 -5
- package/src/index.ts +1 -0
- package/src/message/api/createMessage.ts +2 -2
- package/src/message/api/updateMessage.ts +2 -2
- package/src/post/api/createPost.ts +6 -4
- package/src/post/api/queryPosts.ts +5 -5
- package/src/post/api/updatePost.ts +2 -2
- package/src/utils/env.ts +7 -0
- package/src/version.ts +3 -1
- package/dist/core/network.d.ts +0 -11
- package/dist/core/network.d.ts.map +0 -1
- package/src/core/network.ts +0 -14
package/dist/index.cjs.js
CHANGED
|
@@ -19,11 +19,14 @@ var io__default = /*#__PURE__*/_interopDefaultLegacy(io);
|
|
|
19
19
|
var mitt__default = /*#__PURE__*/_interopDefaultLegacy(mitt);
|
|
20
20
|
var AsyncStorage__default = /*#__PURE__*/_interopDefaultLegacy(AsyncStorage);
|
|
21
21
|
|
|
22
|
-
var _a;
|
|
23
|
-
|
|
24
|
-
const
|
|
22
|
+
var _a$1;
|
|
23
|
+
const theGlobal = globalThis || global || window;
|
|
24
|
+
const { process: safeProcess = {} } = theGlobal;
|
|
25
|
+
const isProduction = ((_a$1 = safeProcess.env) === null || _a$1 === void 0 ? void 0 : _a$1.NODE_ENV) === 'production';
|
|
26
|
+
|
|
27
|
+
var _a, _b;
|
|
28
|
+
const VERSION$1 = (_b = (_a = safeProcess.env) === null || _a === void 0 ? void 0 : _a.VERSION) !== null && _b !== void 0 ? _b : '__dev__';
|
|
25
29
|
|
|
26
|
-
// @ts-ignore
|
|
27
30
|
/**
|
|
28
31
|
* Type guard to find if the a given decoded backend token uses "skip/limit" pagination style
|
|
29
32
|
*
|
|
@@ -41,7 +44,7 @@ const isSkipLimit = (json) => (['skip', 'limit'].some(prop => prop in json));
|
|
|
41
44
|
*
|
|
42
45
|
* @hidden
|
|
43
46
|
*/
|
|
44
|
-
const isAfterBefore = (json) => (['after', 'before', 'first', 'last'].some(prop => prop in json));
|
|
47
|
+
const isAfterBefore = (json) => (['after', 'before', 'first', 'last', 'limit'].some(prop => prop in json));
|
|
45
48
|
/**
|
|
46
49
|
* Type guard to find if the a given decoded backend token uses v4 or newer "after/before" pagination style
|
|
47
50
|
*
|
|
@@ -50,7 +53,7 @@ const isAfterBefore = (json) => (['after', 'before', 'first', 'last'].some(prop
|
|
|
50
53
|
*
|
|
51
54
|
* @hidden
|
|
52
55
|
*/
|
|
53
|
-
const isAfterBeforeRaw = (json) => (
|
|
56
|
+
const isAfterBeforeRaw = (json) => ('limit' in json);
|
|
54
57
|
/**
|
|
55
58
|
* Type guard to find if the a given object is wrapped around Amity.Paged<>
|
|
56
59
|
*
|
|
@@ -85,7 +88,7 @@ const toToken = (paging, style) => {
|
|
|
85
88
|
limit: paging.limit,
|
|
86
89
|
};
|
|
87
90
|
}
|
|
88
|
-
else if (style === 'afterbefore') {
|
|
91
|
+
else if (style === 'afterbefore' && isAfterBefore(paging)) {
|
|
89
92
|
/*
|
|
90
93
|
Caution: this testing style is only valid because
|
|
91
94
|
our backend expects nothing else than a number as
|
|
@@ -171,35 +174,6 @@ const toPageRaw = (token) => {
|
|
|
171
174
|
return json;
|
|
172
175
|
}
|
|
173
176
|
return null;
|
|
174
|
-
};
|
|
175
|
-
/**
|
|
176
|
-
* Slices a collection according to its paging
|
|
177
|
-
*
|
|
178
|
-
* @param type the type of collection (for unique id identification with after/before)
|
|
179
|
-
* @param collection the collection to slice
|
|
180
|
-
* @param paging the paging object
|
|
181
|
-
* @returns the sliced collection according to the paging definition
|
|
182
|
-
*
|
|
183
|
-
* @hidden
|
|
184
|
-
*/
|
|
185
|
-
const sliceByPaging = (type, collection, page) => {
|
|
186
|
-
console.log('slice by paging', page);
|
|
187
|
-
if (!page)
|
|
188
|
-
return collection.slice();
|
|
189
|
-
let start = 0;
|
|
190
|
-
let end = undefined;
|
|
191
|
-
// next page behavior
|
|
192
|
-
if (page.after) {
|
|
193
|
-
start = page.after;
|
|
194
|
-
end = start + page.limit;
|
|
195
|
-
// prev page behavior
|
|
196
|
-
}
|
|
197
|
-
else if (page.before) {
|
|
198
|
-
end = page.before + 1;
|
|
199
|
-
start = end > page.limit ? end - page.limit : 0;
|
|
200
|
-
}
|
|
201
|
-
const paged = collection.slice(start, end);
|
|
202
|
-
return paged.length === page.limit ? paged : undefined;
|
|
203
177
|
};
|
|
204
178
|
|
|
205
179
|
/**
|
|
@@ -513,7 +487,7 @@ const setActiveClient = (client) => {
|
|
|
513
487
|
*/
|
|
514
488
|
const createLogger = (session) => {
|
|
515
489
|
const active = (`${session === null || session === void 0 ? void 0 : session.trim()}`.length > 0
|
|
516
|
-
&&
|
|
490
|
+
&& !isProduction);
|
|
517
491
|
const logger = debug__default['default'](session);
|
|
518
492
|
const print = (topic, ...args) => {
|
|
519
493
|
active && logger(topic, args);
|
|
@@ -522,19 +496,18 @@ const createLogger = (session) => {
|
|
|
522
496
|
return print;
|
|
523
497
|
};
|
|
524
498
|
|
|
525
|
-
const
|
|
499
|
+
const API_REGIONS = {
|
|
526
500
|
EU: 'eu',
|
|
527
501
|
SG: 'sg',
|
|
528
502
|
US: 'us',
|
|
529
503
|
};
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
};
|
|
504
|
+
const URLS = {
|
|
505
|
+
http: 'https://api.{region}.amity.co',
|
|
506
|
+
mqtt: 'wss://sse.{region}.amity.co:443/mqtt',
|
|
507
|
+
};
|
|
508
|
+
function computeUrl(type, region) {
|
|
509
|
+
return URLS[type].replace('{region}', region);
|
|
510
|
+
}
|
|
538
511
|
|
|
539
512
|
/**
|
|
540
513
|
* Unwraps v3 server payload (for error handling and type extraction)
|
|
@@ -14740,6 +14713,22 @@ const createMqttTransport = (endpoint) => {
|
|
|
14740
14713
|
};
|
|
14741
14714
|
};
|
|
14742
14715
|
|
|
14716
|
+
let tasks = [];
|
|
14717
|
+
let timer;
|
|
14718
|
+
/**
|
|
14719
|
+
* Add a function to run just before the next tick
|
|
14720
|
+
*
|
|
14721
|
+
* @param task function to schedule for later execution
|
|
14722
|
+
*/
|
|
14723
|
+
const scheduleTask = (task) => {
|
|
14724
|
+
clearTimeout(timer);
|
|
14725
|
+
tasks.push(task);
|
|
14726
|
+
timer = setTimeout(() => {
|
|
14727
|
+
tasks.forEach(fn => fn());
|
|
14728
|
+
tasks = [];
|
|
14729
|
+
}, 0);
|
|
14730
|
+
};
|
|
14731
|
+
|
|
14743
14732
|
// need to sync up the list
|
|
14744
14733
|
const WS_EVENTS = [
|
|
14745
14734
|
'disconnected',
|
|
@@ -14830,7 +14819,7 @@ const createEventSubscriber = (client, namespace, event, fn) => {
|
|
|
14830
14819
|
*/
|
|
14831
14820
|
const fireEvent = (event, payload) => {
|
|
14832
14821
|
const { emitter } = getActiveClient();
|
|
14833
|
-
|
|
14822
|
+
scheduleTask(() => { emitter.emit(event, payload); });
|
|
14834
14823
|
};
|
|
14835
14824
|
|
|
14836
14825
|
/**
|
|
@@ -14842,21 +14831,21 @@ const fireEvent = (event, payload) => {
|
|
|
14842
14831
|
* Creates a new {@link Amity.Client} instance
|
|
14843
14832
|
*
|
|
14844
14833
|
* @param apiKey for the {@link Amity.Client} instance
|
|
14845
|
-
* @param
|
|
14834
|
+
* @param apiRegion endpoint to connect to
|
|
14846
14835
|
* @param debugSession session's identifier for the client's logger instance
|
|
14847
14836
|
* @returns A {@link Amity.Client} instance
|
|
14848
14837
|
*
|
|
14849
14838
|
* @category Client API
|
|
14850
14839
|
**/
|
|
14851
|
-
const createClient = (apiKey,
|
|
14840
|
+
const createClient = (apiKey, apiRegion = API_REGIONS.SG, debugSession = 'amity') => {
|
|
14852
14841
|
const log = createLogger(debugSession);
|
|
14853
14842
|
log('client/api/createClient', {
|
|
14854
14843
|
apiKey: apiKey.replace(/.{5}$/g, 'xxxxx'),
|
|
14855
|
-
|
|
14844
|
+
apiRegion,
|
|
14856
14845
|
});
|
|
14857
|
-
const http = createHttpTransport(
|
|
14858
|
-
const ws = createWebsocketTransport(
|
|
14859
|
-
const mqtt = createMqttTransport(
|
|
14846
|
+
const http = createHttpTransport(computeUrl('http', apiRegion));
|
|
14847
|
+
const ws = createWebsocketTransport(computeUrl('http', apiRegion));
|
|
14848
|
+
const mqtt = createMqttTransport(computeUrl('mqtt', apiRegion));
|
|
14860
14849
|
const emitter = createEventEmitter();
|
|
14861
14850
|
const client = {
|
|
14862
14851
|
version: `${VERSION$1}`,
|
|
@@ -14904,13 +14893,11 @@ const disconnectClient = async () => {
|
|
|
14904
14893
|
client.ws.removeAllListeners();
|
|
14905
14894
|
client.mqtt.removeAllListeners();
|
|
14906
14895
|
client.userId = undefined;
|
|
14907
|
-
client.user = undefined;
|
|
14908
14896
|
client.accessToken = undefined;
|
|
14909
14897
|
return !client.ws.connected;
|
|
14910
14898
|
};
|
|
14911
14899
|
|
|
14912
14900
|
// TODO: find a way to uniquely identify the device
|
|
14913
|
-
// import { getStorage } from './storage'
|
|
14914
14901
|
/** @hidden */
|
|
14915
14902
|
const VERSION = '11.0.0';
|
|
14916
14903
|
/** @hidden */
|
|
@@ -14925,8 +14912,8 @@ const getDeviceId = () => {
|
|
|
14925
14912
|
/** @hidden */
|
|
14926
14913
|
const getDeviceModel = () => {
|
|
14927
14914
|
var _a, _b;
|
|
14928
|
-
if ((_a =
|
|
14929
|
-
return
|
|
14915
|
+
if ((_a = safeProcess.versions) === null || _a === void 0 ? void 0 : _a.node)
|
|
14916
|
+
return safeProcess.versions.node;
|
|
14930
14917
|
if (navigator)
|
|
14931
14918
|
return `${navigator.product.toLowerCase()}#${(_b = navigator.userAgent) !== null && _b !== void 0 ? _b : 'unknown_agent'}`;
|
|
14932
14919
|
return 'unknown_model';
|
|
@@ -15089,7 +15076,7 @@ const connectClient = async (params) => {
|
|
|
15089
15076
|
unsubscribe();
|
|
15090
15077
|
});
|
|
15091
15078
|
client.userId = params.userId;
|
|
15092
|
-
client.
|
|
15079
|
+
client._internalUserId = users[0]._id;
|
|
15093
15080
|
client.accessToken = accessToken;
|
|
15094
15081
|
return client.ws.connected;
|
|
15095
15082
|
};
|
|
@@ -15151,11 +15138,11 @@ const getCommentTopic = ({ path }) => {
|
|
|
15151
15138
|
let mqttAccessToken;
|
|
15152
15139
|
let mqttUserId;
|
|
15153
15140
|
function subscribeTopic(topic, callback) {
|
|
15154
|
-
const { mqtt, emitter, accessToken,
|
|
15155
|
-
if (mqttAccessToken !== accessToken || mqttUserId !==
|
|
15141
|
+
const { mqtt, emitter, accessToken, _internalUserId } = getActiveClient();
|
|
15142
|
+
if (mqttAccessToken !== accessToken || mqttUserId !== _internalUserId) {
|
|
15156
15143
|
mqttAccessToken = accessToken;
|
|
15157
|
-
mqttUserId =
|
|
15158
|
-
mqtt.connect({ accessToken:
|
|
15144
|
+
mqttUserId = _internalUserId;
|
|
15145
|
+
mqtt.connect({ accessToken: mqttAccessToken, userId: mqttUserId });
|
|
15159
15146
|
proxyMqttEvents(mqtt, emitter);
|
|
15160
15147
|
}
|
|
15161
15148
|
return mqtt.subscribe(topic, callback);
|
|
@@ -16649,11 +16636,11 @@ const queryPosts = async (query) => {
|
|
|
16649
16636
|
const { page = { limit: 10 } } = query, params = __rest(query
|
|
16650
16637
|
// API-FIX: parameters should be querystring. (1)
|
|
16651
16638
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16652
|
-
// const { data } = await client.http.get<Amity.Response<Amity.
|
|
16639
|
+
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.PostPayload>>>(
|
|
16653
16640
|
, ["page"]);
|
|
16654
16641
|
// API-FIX: parameters should be querystring. (1)
|
|
16655
16642
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16656
|
-
// const { data } = await client.http.get<Amity.Response<Amity.
|
|
16643
|
+
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.PostPayload>>>(
|
|
16657
16644
|
const { data } = await client.http.get(`/api/v4/posts`, { params: Object.assign(Object.assign({}, params), { options: {
|
|
16658
16645
|
token: toToken(page, 'afterbeforeraw'),
|
|
16659
16646
|
} }), });
|
|
@@ -16855,9 +16842,9 @@ const createPost = async (bundle) => {
|
|
|
16855
16842
|
const client = getActiveClient();
|
|
16856
16843
|
client.log('post/createPost', bundle);
|
|
16857
16844
|
// API-FIX: backend rejects that we pass the dataType manually T_T
|
|
16858
|
-
if (!bundle.dataType || ['text', 'image', 'file'].includes(bundle.dataType))
|
|
16845
|
+
if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType))
|
|
16859
16846
|
delete bundle.dataType;
|
|
16860
|
-
const { data } = await client.http.post('/api/
|
|
16847
|
+
const { data } = await client.http.post('/api/v4/posts', bundle);
|
|
16861
16848
|
const cachedAt = client.cache && Date.now();
|
|
16862
16849
|
if (client.cache)
|
|
16863
16850
|
ingestInCache(data, { cachedAt });
|
|
@@ -16889,7 +16876,7 @@ const createPost = async (bundle) => {
|
|
|
16889
16876
|
const updatePost = async (postId, patch) => {
|
|
16890
16877
|
const client = getActiveClient();
|
|
16891
16878
|
client.log('user/updatePost', patch);
|
|
16892
|
-
const { data } = await client.http.put(`/api/
|
|
16879
|
+
const { data } = await client.http.put(`/api/v4/posts/${encodeURIComponent(postId)}`, patch);
|
|
16893
16880
|
const cachedAt = client.cache && Date.now();
|
|
16894
16881
|
if (client.cache)
|
|
16895
16882
|
ingestInCache(data, { cachedAt });
|
|
@@ -17240,7 +17227,7 @@ const queryCommunityMembers = async (query) => {
|
|
|
17240
17227
|
}
|
|
17241
17228
|
const nextPage = toPage(paging.next);
|
|
17242
17229
|
const prevPage = toPage(paging.previous);
|
|
17243
|
-
return { data: communityUsers, nextPage, prevPage };
|
|
17230
|
+
return { data: communityUsers, cachedAt, nextPage, prevPage };
|
|
17244
17231
|
};
|
|
17245
17232
|
/**
|
|
17246
17233
|
* ```js
|
|
@@ -18758,12 +18745,13 @@ const queryChannelMembers = async (query) => {
|
|
|
18758
18745
|
});
|
|
18759
18746
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
18760
18747
|
const { channelUsers } = payload;
|
|
18748
|
+
const cachedAt = client.cache && Date.now();
|
|
18761
18749
|
if (client.cache) {
|
|
18762
18750
|
ingestInCache(payload);
|
|
18763
18751
|
}
|
|
18764
18752
|
const nextPage = toPage(paging.next);
|
|
18765
18753
|
const prevPage = toPage(paging.previous);
|
|
18766
|
-
return { data: channelUsers, nextPage, prevPage };
|
|
18754
|
+
return { data: channelUsers, cachedAt, nextPage, prevPage };
|
|
18767
18755
|
};
|
|
18768
18756
|
/**
|
|
18769
18757
|
* ```js
|
|
@@ -19508,17 +19496,56 @@ const observeCommunity = (communityId, callback) => {
|
|
|
19508
19496
|
const queryGlobalFeed = async (query) => {
|
|
19509
19497
|
const client = getActiveClient();
|
|
19510
19498
|
client.log('feed/queryGlobalFeed', query);
|
|
19511
|
-
const _a = query !== null && query !== void 0 ? query : {}, { page } = _a, params = __rest(_a, ["page"]);
|
|
19512
|
-
const { data } = await client.http.get(`/api/v4/me/global-feeds`, { params: Object.assign(Object.assign({}, params), { options: {
|
|
19499
|
+
const _a = query !== null && query !== void 0 ? query : {}, { useCustomRanking, page } = _a, params = __rest(_a, ["useCustomRanking", "page"]);
|
|
19500
|
+
const { data } = await client.http.get(useCustomRanking ? `/api/v5/me/global-feeds` : `/api/v4/me/global-feeds`, { params: Object.assign(Object.assign({}, params), { options: {
|
|
19513
19501
|
token: toToken(page, 'skiplimit')
|
|
19514
19502
|
} }) });
|
|
19515
19503
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
19516
19504
|
const { posts } = payload;
|
|
19517
|
-
|
|
19505
|
+
const cachedAt = client.cache && Date.now();
|
|
19506
|
+
if (client.cache) {
|
|
19518
19507
|
ingestInCache(payload);
|
|
19508
|
+
const cacheKey = ['globalFeed', 'query', Object.assign(Object.assign({}, params), { useCustomRanking, options: Object.assign({}, page) })];
|
|
19509
|
+
pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
|
|
19510
|
+
}
|
|
19519
19511
|
const nextPage = toPage(paging.next);
|
|
19520
19512
|
const prevPage = toPage(paging.previous);
|
|
19521
|
-
return { data: posts, prevPage, nextPage };
|
|
19513
|
+
return { data: posts, cachedAt, prevPage, nextPage };
|
|
19514
|
+
};
|
|
19515
|
+
/**
|
|
19516
|
+
* ```js
|
|
19517
|
+
* import { queryGlobalFeed } from '@amityco/ts-sdk'
|
|
19518
|
+
* const posts = await queryGlobalFeed.locally()
|
|
19519
|
+
* ```
|
|
19520
|
+
*
|
|
19521
|
+
* Queries a paginable list of {@link Amity.Post} objects from cache
|
|
19522
|
+
*
|
|
19523
|
+
* @param query The query parameters
|
|
19524
|
+
* @returns A page of {@link Amity.Post} objects
|
|
19525
|
+
*
|
|
19526
|
+
* @category Feed API
|
|
19527
|
+
* @async
|
|
19528
|
+
**/
|
|
19529
|
+
queryGlobalFeed.locally = (query) => {
|
|
19530
|
+
var _a, _b;
|
|
19531
|
+
const client = getActiveClient();
|
|
19532
|
+
client.log('post/queryGlobalFeed.locally', query);
|
|
19533
|
+
if (!client.cache)
|
|
19534
|
+
return;
|
|
19535
|
+
const _c = query !== null && query !== void 0 ? query : {}, { useCustomRanking, page } = _c, params = __rest(_c, ["useCustomRanking", "page"]);
|
|
19536
|
+
const queryKey = ['globalFeed', 'query', Object.assign(Object.assign({}, params), { useCustomRanking, options: Object.assign({}, page) })];
|
|
19537
|
+
const { data, cachedAt } = (_a = pullFromCache(queryKey)) !== null && _a !== void 0 ? _a : {};
|
|
19538
|
+
if (!(data === null || data === void 0 ? void 0 : data.posts.length))
|
|
19539
|
+
return;
|
|
19540
|
+
const posts = data.posts
|
|
19541
|
+
.map(postId => pullFromCache(['post', 'get', postId]))
|
|
19542
|
+
.filter(Boolean)
|
|
19543
|
+
.map(({ data }) => data);
|
|
19544
|
+
const prevPage = toPage(data === null || data === void 0 ? void 0 : data.paging.previous);
|
|
19545
|
+
const nextPage = toPage(data === null || data === void 0 ? void 0 : data.paging.next);
|
|
19546
|
+
return posts.length === ((_b = data === null || data === void 0 ? void 0 : data.posts) === null || _b === void 0 ? void 0 : _b.length)
|
|
19547
|
+
? { data: posts, cachedAt, prevPage, nextPage }
|
|
19548
|
+
: undefined;
|
|
19522
19549
|
};
|
|
19523
19550
|
|
|
19524
19551
|
/**
|
|
@@ -19979,6 +20006,7 @@ const onStreamRecorded = (callback) => {
|
|
|
19979
20006
|
return createEventSubscriber(client, 'stream/onStreamRecorded', 'video-streaming.didRecord', filter);
|
|
19980
20007
|
};
|
|
19981
20008
|
|
|
20009
|
+
exports.API_REGIONS = API_REGIONS;
|
|
19982
20010
|
exports.VERSION = VERSION$1;
|
|
19983
20011
|
exports.addChannelMembers = addChannelMembers;
|
|
19984
20012
|
exports.addChannelMembersRole = addChannelMembersRole;
|
|
@@ -20126,7 +20154,6 @@ exports.removeCommunityMembersRole = removeCommunityMembersRole;
|
|
|
20126
20154
|
exports.removeReaction = removeReaction;
|
|
20127
20155
|
exports.restoreCache = restoreCache;
|
|
20128
20156
|
exports.runQuery = runQuery;
|
|
20129
|
-
exports.sliceByPaging = sliceByPaging;
|
|
20130
20157
|
exports.sortByChannelSegment = sortByChannelSegment;
|
|
20131
20158
|
exports.sortByDisplayName = sortByDisplayName;
|
|
20132
20159
|
exports.sortByFirstCreated = sortByFirstCreated;
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * from './core/subscription';
|
|
|
5
5
|
export * from './cache/api';
|
|
6
6
|
export * from './client/api';
|
|
7
7
|
export * from './client/events';
|
|
8
|
+
export { API_REGIONS } from './client/utils/endpoints';
|
|
8
9
|
export * from './user/api';
|
|
9
10
|
export * from './user/events';
|
|
10
11
|
export * from './user/observers';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,CAAA;AAEjB,cAAc,WAAW,CAAA;AAGzB,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAE3B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,CAAA;AAEjB,cAAc,WAAW,CAAA;AAGzB,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAE3B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,YAAY,CAAA;AAG1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AAEjC,cAAc,cAAc,CAAA;AAG5B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AAErC,cAAc,YAAY,CAAA;AAE1B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AAEnC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA"}
|