本文整理汇总了TypeScript中camelot-unchained.utils.clone方法的典型用法代码示例。如果您正苦于以下问题:TypeScript utils.clone方法的具体用法?TypeScript utils.clone怎么用?TypeScript utils.clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类camelot-unchained.utils
的用法示例。
在下文中一共展示了utils.clone方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: characterRemovedReducer
actionDefs[CHARACTER_REMOVED] = function characterRemovedReducer(state: ControllerState, action: ControllerAction): ControllerState {
const characters = utils.clone(state.characters);
delete characters[action.id];
const servers = updateCharacterCounts(utils.clone(state.servers), characters);
return utils.merge(state, {
characters: characters,
servers: servers
});
}
示例2: 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,
};
},
示例3: characterUpdateReducer
actionDefs[CHARACTER_UPDATE] = function characterUpdateReducer(state: ControllerState, action: ControllerAction): ControllerState {
const characters = utils.clone(state.characters);
characters[action.character.id] = action.character;
const servers = updateCharacterCounts(utils.clone(state.servers), characters);
return utils.merge(state, {
characters: characters,
servers: servers
});
}
示例4:
reducer: (s, a) => {
const servers = utils.clone(s.servers);
servers[a.id].available = false;
return {
servers,
};
},
示例5: 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];
servers[key].channelStatus = channelDict[server.channelID] ? channelDict[server.channelID].channelStatus :
ChannelStatus.NotInstalled;
servers[key].lastUpdated = channelDict[server.channelID].lastUpdated || 0;
}
return {
servers: utils.merge(servers, channelServers),
};
},
示例6: serverUnavailableReducer
actionDefs[SERVER_UNAVAILABLE] = function serverUnavailableReducer(state: ControllerState, action: ControllerAction): ControllerState {
const servers = utils.clone(state.servers);
servers[action.id].available = false;
return utils.merge(state, {
servers: servers
});
}
示例7: alertExpiredReducer
actionDefs[ALERT_EXPIRED] = function alertExpiredReducer(state: ControllerState, action: ControllerAction): ControllerState {
const alerts = utils.clone(state.alerts);
delete alerts[action.id];
return utils.merge(state, {
alerts: alerts
});
}
示例8: alertRecievedReducer
actionDefs[ALERT_RECIEVED] = function alertRecievedReducer(state: ControllerState, action: ControllerAction): ControllerState {
const alerts = utils.clone(state.alerts);
alerts[action.alert.id] = action.alert;
return utils.merge(state, {
alerts: alerts
});
};