wechaty-redux
Version:
Wechaty Redux Plugin Powered By Ducks
107 lines • 5.91 kB
JavaScript
/**
* 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