本文整理汇总了TypeScript中@csegames/camelot-unchained.utils.clone方法的典型用法代码示例。如果您正苦于以下问题:TypeScript utils.clone方法的具体用法?TypeScript utils.clone怎么用?TypeScript utils.clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@csegames/camelot-unchained.utils
的用法示例。
在下文中一共展示了utils.clone方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: updateCharacterCounts
reducer: (s, a) => {
const characters = utils.clone(s.characters);
delete characters[a.id];
const servers = updateCharacterCounts(utils.clone(s.servers), characters);
return {
characters,
servers,
};
},
示例2:
reducer: (s, a) => {
const servers = utils.clone(s.servers);
servers[a.id].available = false;
return {
servers,
};
},
示例3: webAPIServerToPatcherServer
reducer: (s, a) => {
if (a.server.name === 'localhost') return {};
const servers = utils.clone(s.servers);
servers[a.server.name] = utils.merge(servers[a.server.name], webAPIServerToPatcherServer(a.server));
return {
servers,
};
},
示例4: channelToPatcherServer
reducer: (s, a) => {
const channelServers: utils.Dictionary<PatcherServer> = {};
const channelDict: utils.Dictionary<Channel> = {};
for (let i = 0; i < a.channels.length; ++i) {
const c = a.channels[i];
// check if we have a server with a matching name to a channel, if not the channel becomes it's own 'server'.
if (!s.servers[c.channelName]) {
// create a server for this channel
channelServers[c.channelName] = channelToPatcherServer(c);
} else {
// if it's not it's own server add to a dictionary to update servers by channel id
channelDict[c.channelID] = c;
// while we're here lets see if we need to update the last updated time
if (s.servers[c.channelName].channelStatus === ChannelStatus.Updating && c.channelStatus === ChannelStatus.Ready) {
localStorage.setItem(`channel_updated_${c.channelName}`, a.when.toLocaleString());
}
}
}
const servers = utils.clone(s.servers);
for (const key in servers) {
const server = servers[key];
const channel = channelDict[server.channelID];
if (channel) {
servers[key].channelStatus = channelDict[server.channelID].channelStatus;
servers[key].lastUpdated = channelDict[server.channelID].lastUpdated;
} else {
servers[key].channelStatus = ChannelStatus.NotInstalled;
servers[key].lastUpdated = 0;
}
}
return {
servers: utils.merge(servers, channelServers),
};
},