UNPKG

wechaty-redux

Version:

Wechaty Redux Plugin Powered By Ducks

107 lines 5.91 kB
/** * Wechaty Open Source Software - https://github.com/wechaty * * @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and * Wechaty Contributors <https://github.com/wechaty>. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ /* eslint-disable sort-keys */ import { createAction, } from 'typesafe-actions'; import * as types from './types.js'; /** * We put `puppetId` in the meta property * * This must be sync with CQRS Wechaty module */ const metaPuppetId = (puppetId, ..._) => ({ puppetId }); /** * @private Registery Actions Payload */ const payloadPuppetId = (puppetId) => ({ puppetId }); const payloadWechatyId = (wechatyId) => ({ wechatyId }); const payloadWechatyPuppetId = (options) => options; /** * @private Registry Actions Creators */ export const REGISTER_PUPPET_COMMAND = createAction(types.REGISTER_PUPPET_COMMAND, payloadPuppetId)(); export const DEREGISTER_PUPPET_COMMAND = createAction(types.DEREGISTER_PUPPET_COMMAND, payloadPuppetId)(); export const REGISTER_WECHATY_COMMAND = createAction(types.REGISTER_WECHATY_COMMAND, payloadWechatyId)(); export const DEREGISTER_WECHATY_COMMAND = createAction(types.DEREGISTER_WECHATY_COMMAND, payloadWechatyId)(); export const BIND_WECHATY_PUPPET_COMMAND = createAction(types.BIND_WECHATY_PUPPET_COMMAND, payloadWechatyPuppetId)(); export const UNBIND_WECHATY_PUPPET_COMMAND = createAction(types.UNBIND_WECHATY_PUPPET_COMMAND, payloadWechatyPuppetId)(); /** * @public * * Event Actions' Payloads */ const payloadStateActive = (_puppetId, state) => ({ state }); const payloadStateInactive = (_puppetId, state) => ({ state }); const payloadEventDong = (_puppetId, payload) => payload; const payloadEventError = (_puppetId, payload) => payload; const payloadEventHeartbeat = (_puppetId, payload) => payload; const payloadEventReady = (_puppetId, payload) => payload; const payloadEventReset = (_puppetId, payload) => payload; const payloadEventFriendship = (_puppetId, payload) => payload; const payloadEventLogin = (_puppetId, payload) => payload; const payloadEventLogout = (_puppetId, payload) => payload; const payloadEventMessage = (_puppetId, payload) => payload; const payloadEventRoomInvitation = (_puppetId, payload) => payload; const payloadEventRoomJoin = (_puppetId, payload) => payload; const payloadEventRoomLeave = (_puppetId, payload) => payload; const payloadEventRoomTopic = (_puppetId, payload) => payload; const payloadEventScan = (_puppetId, payload) => payload; /** * Actions: StateState */ export const STATE_ACTIVATED_EVENT = createAction(types.STATE_ACTIVATED_EVENT, payloadStateActive, metaPuppetId)(); export const STATE_INACTIVATED_EVENT = createAction(types.STATE_INACTIVATED_EVENT, payloadStateInactive, metaPuppetId)(); export const STARTED_EVENT = createAction(types.STARTED_EVENT, payloadPuppetId, metaPuppetId)(); export const STOPPED_EVENT = createAction(types.STOPPED_EVENT, payloadPuppetId, metaPuppetId)(); /** * Actions: Pure Events */ export const DONG_RECEIVED_EVENT = createAction(types.DONG_RECEIVED_EVENT, payloadEventDong, metaPuppetId)(); export const ERROR_RECEIVED_EVENT = createAction(types.ERROR_RECEIVED_EVENT, payloadEventError, metaPuppetId)(); export const FRIENDSHIP_RECEIVED_EVENT = createAction(types.FRIENDSHIP_RECEIVED_EVENT, payloadEventFriendship, metaPuppetId)(); export const HEARTBEAT_RECEIVED_EVENT = createAction(types.HEARTBEAT_RECEIVED_EVENT, payloadEventHeartbeat, metaPuppetId)(); export const LOGIN_RECEIVED_EVENT = createAction(types.LOGIN_RECEIVED_EVENT, payloadEventLogin, metaPuppetId)(); export const LOGOUT_RECEIVED_EVENT = createAction(types.LOGOUT_RECEIVED_EVENT, payloadEventLogout, metaPuppetId)(); export const MESSAGE_RECEIVED_EVENT = createAction(types.MESSAGE_RECEIVED_EVENT, payloadEventMessage, metaPuppetId)(); export const READY_RECEIVED_EVENT = createAction(types.READY_RECEIVED_EVENT, payloadEventReady, metaPuppetId)(); export const RESET_RECEIVED_EVENT = createAction(types.RESET_RECEIVED_EVENT, payloadEventReset, metaPuppetId)(); export const ROOM_INVITE_RECEIVED_EVENT = createAction(types.ROOM_INVITE_RECEIVED_EVENT, payloadEventRoomInvitation, metaPuppetId)(); export const ROOM_JOIN_RECEIVED_EVENT = createAction(types.ROOM_JOIN_RECEIVED_EVENT, payloadEventRoomJoin, metaPuppetId)(); export const ROOM_LEAVE_RECEIVED_EVENT = createAction(types.ROOM_LEAVE_RECEIVED_EVENT, payloadEventRoomLeave, metaPuppetId)(); export const ROOM_TOPIC_RECEIVED_EVENT = createAction(types.ROOM_TOPIC_RECEIVED_EVENT, payloadEventRoomTopic, metaPuppetId)(); export const SCAN_RECEIVED_EVENT = createAction(types.SCAN_RECEIVED_EVENT, payloadEventScan, metaPuppetId)(); /** * Commands * * Wechaty Redux provide the minimum commands for the system state management: * 1. ding: request the `dong` event * 2. reset: reset the Wechaty state * * For more commands, please refer to the Wechaty CQRS: * @link https://github.com/wechaty/cqrs */ const payloadData = (_puppetId, data) => ({ data }); export const DING_COMMAND = createAction(types.DING_COMMAND, payloadData, metaPuppetId)(); export const RESET_COMMAND = createAction(types.RESET_COMMAND, payloadData, metaPuppetId)(); /** * @private Bug compatible & workaround for Ducks API * https://github.com/huan/ducks/issues/2 */ export const NOP_COMMAND = createAction(types.NOP_COMMAND)(); //# sourceMappingURL=actions.js.map