fcr-core
Version:
Core APIs for building online scenes
81 lines • 2.42 kB
JavaScript
import "core-js/modules/es.array.push.js";
import "core-js/modules/esnext.map.delete-all.js";
import "core-js/modules/esnext.map.emplace.js";
import "core-js/modules/esnext.map.every.js";
import "core-js/modules/esnext.map.filter.js";
import "core-js/modules/esnext.map.find.js";
import "core-js/modules/esnext.map.find-key.js";
import "core-js/modules/esnext.map.includes.js";
import "core-js/modules/esnext.map.key-of.js";
import "core-js/modules/esnext.map.map-keys.js";
import "core-js/modules/esnext.map.map-values.js";
import "core-js/modules/esnext.map.merge.js";
import "core-js/modules/esnext.map.reduce.js";
import "core-js/modules/esnext.map.some.js";
import "core-js/modules/esnext.map.update.js";
export class FcrRoomCache {
_platformMapByUserId = new Map();
_avatarMapByUserId = new Map();
_userMapByUserId = new Map();
//@internal
_userList = [];
get userList() {
return this._userList;
}
get userMapByUserId() {
return this._userMapByUserId;
}
setUserMapByUserId = (userId, user) => {
this._userMapByUserId.set(userId, user);
};
deleteUserMapByUserId = userId => {
this._userMapByUserId.delete(userId);
};
setUserList = userList => {
this._userList = userList;
};
insertUserToList = (index, user) => {
this._userList.splice(index, 0, user);
};
deleteUserList = index => {
this._userList.splice(index, 1);
};
addUserToList = user => {
this._userList.push(user);
};
getUserPlatform = userId => {
return this._platformMapByUserId.get(userId);
};
getUserAvatar = userId => {
return this._avatarMapByUserId.get(userId);
};
setUserPlatform = (userId, platform) => {
this._platformMapByUserId.set(userId, platform);
};
setUserAvatar = (userId, avatar) => {
this._avatarMapByUserId.set(userId, avatar);
};
deleteUserPlatform = userId => {
this._platformMapByUserId.delete(userId);
};
deleteUserAvatar = userId => {
this._avatarMapByUserId.delete(userId);
};
clear = () => {
this._userMapByUserId.clear();
this._userList = [];
this._platformMapByUserId.clear();
this._avatarMapByUserId.clear();
};
}
export class FcrSharedCache {
_roomCache = new Map();
getRoomCache = roomId => {
let roomCache = this._roomCache.get(roomId);
if (!roomCache) {
roomCache = new FcrRoomCache();
this._roomCache.set(roomId, roomCache);
}
return roomCache;
};
}