UNPKG

wechaty-redux

Version:

Wechaty Redux Plugin Powered By Ducks

54 lines 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WechatyRedux = void 0; /** * 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. * */ const wechaty_puppet_1 = require("wechaty-puppet"); const mod_js_1 = require("./registry/mod.js"); const puppet__js_1 = require("./puppet$.js"); function WechatyRedux(options) { wechaty_puppet_1.log.verbose('WechatyRedux', '(%s)', JSON.stringify(options)); const store = options.store; const uninstallerList = []; return function WechatyReduxPlugin(wechaty) { wechaty_puppet_1.log.verbose('WechatyRedux', 'WechatyReduxPlugin(%s)', wechaty); /** * Register Wechaty to the Registry * to support `getWechaty(id)` usage in the future */ const deregister = (0, mod_js_1.registerWechaty)(wechaty, store); uninstallerList.push(() => deregister()); /** * Huan(202203): The `wechaty.puppet` MUST be instanciated * before using the Redux plugin */ const sub = (0, puppet__js_1.puppet$)(wechaty.puppet, { store, wechaty, }).subscribe(store.dispatch); uninstallerList.push(() => sub.unsubscribe()); return () => { uninstallerList.forEach(setImmediate); uninstallerList.length = 0; }; }; } exports.WechatyRedux = WechatyRedux; //# sourceMappingURL=wechaty-redux.js.map