Numerous Pulsating Martians

    wechaty-puppet
    TypeScript icon, indicating that this package has built-in type declarations

    0.40.0 • Public • Published

    wechaty-puppet

    Powered by Wechaty NPM Version npm (tag) TypeScript Linux/Mac Build Status Greenkeeper badge

    chatie puppet

    Picture Credit: https://www.shareicon.net

    Abstract(Base) Class of Puppet Providers for Wechaty Framework.

    This module is part of the Wechaty Framework SDK.

    Learn more at:

    1. Wiki: https://github.com/wechaty/wechaty/wiki/Puppet
    2. Issue: https://github.com/wechaty/wechaty/issues/1167

    Documentation

    Wechaty Puppet Provider Interface Documentation can be found at https://wechaty.github.io/wechaty-puppet/typedoc/classes/puppet.html

    Automatica Generated by TypeDoc

    Example

    PuppetMock: https://github.com/wechaty/wechaty-puppet-mock

    The above puppet provider is just for mocking and easy to understand. It will be a good starter when you want to develope a new puppet by yourself for fullfil your need, for example, connect Wechaty with Wechat Official Account.

    Providers

    Dependencies

    1. FileBox (npm module file-box) MUST be imported from wechaty-puppet because all the Wechaty Framework needs to check instanceof FileBox, we must be sure all FileBox is the same version.
    2. MemoryCard (npm module memory-card) MUST be imported from wechaty-puppet because all the Wechaty Framework needs to check instanceof MemoryCard, we must be sure all MemoryCard is the same version.

    Peer Dependence

    Puppet(npm module wechaty-puppet) itself must be a peer Dependencies for all the Puppet Providers, and should only be installed via Wechaty because all Puppet Providers should share the same Puppet Base Class with Wechaty, we must be sure all Puppet is the same version.

    Wechaty Puppet Toolsets

    1. Using SwitchState

    You can get to know the puppet start/stop state from the state property:

    1. puppet.state.on() === 'pending' will be true when the puppet is starting
    2. puppet.state.on() === true will be true when the puppet is started
    3. puppet.state.off() === 'pending' will be true when the puppet is stoping
    4. `puppet.state.off() === true' will be true when the puppet is stopped

    Learn more about the puppet.state at https://github.com/huan/state-switch

    2. Using Brolog

    Using Brolog to output necessary log messages.

    2.1 Get log from Brolog

    import { log } from 'brolog'

    2.2 Log Format

    log.verbose('ModuleName', 'methodName() Your Verbose Message Here')
    log.silly('ModuleName', 'methodName() Your Silly Message Here')

    2.3 Log Level

    Brolog has five log levels, it should be used and follow the following rules:

    Log Level What does it means Usage in Puppet
    log.silly() There's some detail debug information Can be used in everywhere as you like
    log.verbose() There's some debug information Should be used at the beginning of every method()
    log.info() There's something we need to let user know Should NEVER to be used because Puppet is Library
    log.warn() There's a Coverable Error Should not be used unless we have to
    log.error() There's a Un-covered Error Should not be used unless we have to

    3. Using LRU Cache

    Set the max size for wechaty entities in LRU Cache.

    Env Name What does it means
    WECHATY_PUPPET_LRU_CACHE_SIZE_CONTACT The max cache size for contact, default value 3000
    WECHATY_PUPPET_LRU_CACHE_SIZE_FRIENDSHIP The max cache size for friendship, default value 100
    WECHATY_PUPPET_LRU_CACHE_SIZE_MESSAGE The max cache size for message, default value 500
    WECHATY_PUPPET_LRU_CACHE_SIZE_ROOM The max cache size for room, default value 500
    WECHATY_PUPPET_LRU_CACHE_SIZE_ROOM_INVITATION The max cache size for room invitation, default value 100
    WECHATY_PUPPET_LRU_CACHE_SIZE_ROOM_MEMBER The max cache size for room member, default value 30000

    Resources

    Pure Function

    History

    master

    v0.16 (Sep 2019)

    Works with the following Puppet Providers:

    1. wechaty-puppet-puppeteer
    2. wechaty-puppet-padchat
    3. wechaty-puppet-mock
    4. wechaty-puppet-wechat4u

    v0.0.1 (Jun 2018)

    1. Define the Abstract Puppet Layer for Wechaty
    2. Seperate code from Wechaty

    Author

    Huan LI (李卓桓) zixia@zixia.net

    Profile of Huan LI (李卓桓) on StackOverflow

    Copyright & License

    • Code & Docs © 2018-now Huan LI <zixia@zixia.net>
    • Code released under the Apache-2.0 License
    • Docs released under Creative Commons

    Install

    npm i wechaty-puppet

    DownloadsWeekly Downloads

    1,429

    Version

    0.40.0

    License

    Apache-2.0

    Unpacked Size

    395 kB

    Total Files

    155

    Last publish

    Collaborators

    • zixia