UNPKG

wechaty-puppet

Version:

Abstract Puppet for Wechaty

80 lines 3.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sayableTypes = exports.sayablePayloads = void 0; /* eslint-disable sort-keys */ const typesafe_actions_1 = require("typesafe-actions"); const message_js_1 = require("./message.js"); const payloadContact = (contactId) => ({ contactId }); const payloadFilebox = (filebox) => ({ filebox }); const payloadText = (text, mentions = []) => ({ text, mentions }); /** * expand/merge the payload altogether */ const payloadLocation = (locationPayload) => ({ ...locationPayload }); const payloadMiniProgram = (miniProgramPayload) => ({ ...miniProgramPayload }); const payloadUrlLink = (urlLinkPayload) => ({ ...urlLinkPayload }); const payloadPost = (postPayload) => ({ ...postPayload }); /** * using `types` as a static typed string name list for `createAction` * * Huan(202201): if we remove the `(() => ({}))()`, then the typing will fail. * FIXME: remove the `(() => ({}))()` after we fix the issue. */ const sayableTypes = (() => ({ ...Object.keys(message_js_1.MessageType) .filter(k => isNaN(Number(k))) .reduce((acc, cur) => ({ ...acc, [cur]: cur, }), {}), }))(); exports.sayableTypes = sayableTypes; /** * Simple data */ const contact = (0, typesafe_actions_1.createAction)(sayableTypes.Contact, payloadContact)(); const text = (0, typesafe_actions_1.createAction)(sayableTypes.Text, payloadText)(); // (conversationId: string, text: string, mentionIdList?: string[]) => ({ conversationId, mentionIdList, text } /** * FileBoxs */ const attatchment = (0, typesafe_actions_1.createAction)(sayableTypes.Attachment, payloadFilebox)(); const audio = (0, typesafe_actions_1.createAction)(sayableTypes.Audio, payloadFilebox)(); const emoticon = (0, typesafe_actions_1.createAction)(sayableTypes.Emoticon, payloadFilebox)(); const image = (0, typesafe_actions_1.createAction)(sayableTypes.Image, payloadFilebox)(); const video = (0, typesafe_actions_1.createAction)(sayableTypes.Video, payloadFilebox)(); /** * Payload data */ const location = (0, typesafe_actions_1.createAction)(sayableTypes.Location, payloadLocation)(); const miniProgram = (0, typesafe_actions_1.createAction)(sayableTypes.MiniProgram, payloadMiniProgram)(); const url = (0, typesafe_actions_1.createAction)(sayableTypes.Url, payloadUrlLink)(); const post = (0, typesafe_actions_1.createAction)(sayableTypes.Post, payloadPost)(); /** * Huan(202201): Recursive type references * @link https://github.com/microsoft/TypeScript/pull/33050#issuecomment-1002455128 */ const sayablePayloadsNoPost = { attatchment, audio, contact, emoticon, image, location, miniProgram, text, url, video, }; /** * * Huan(202201): Recursive type references * @link https://github.com/microsoft/TypeScript/pull/33050#issuecomment-1002455128 * @link https://github.com/wechaty/puppet/issues/180 */ const sayablePayloads = { ...sayablePayloadsNoPost, post, }; exports.sayablePayloads = sayablePayloads; //# sourceMappingURL=sayable.js.map