@dannyfranca/any-chat
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

dannyfranca/any-chat

Universal, extensible and improved JS API for Chats, like TawkTo, Jivochat, and others.

Getting Started

  • Install dependency
yarn add any-chat
  • Choose a built-in driver
import TawkTo from 'any-chat/lib/chats/tawkto'
const tawkId = '5a16c7d3198bd56b8c03ce7e/1dijcq4nr'
const Chat = new TawkTo(tawkId)

chatLoaded()

async function chatLoaded() {
    await Chat.toLoad()
    console.log(Chat.loaded)
}
  • Or extend ChatBase and build your own driver
import ChatBase from "any-chat" // Base to build you Driver
import MethodMap from "any-chat/src/types/MethodMap" // Interface contract to guide 
import EventMap from "any-chat/src/types/EventMap" // Interface contract to you callback mapping
import { jsApiMethod } from "any-chat/src/core/decorators" // decorator to use in method mapping

class ChatDriver extends ChatBase<any> implements MethodMap {

    // constructor must execute init from abstract class
    constructor() {
        super()
        super.init()
    }

    // map callbacks
    _eventMap: EventMap = {
        load: '...',
        // ...
    }

    // write your loader
    _loader(): any {
          // ...
    }

    // Map methods
    @jsApiMethod()
    public async open(): Promise<void> {
        // ...
    }

    // see examples in any-chat/chats
}

export default ChatDriver

Building Drivers

To better understand how this lib Works, look the examples in examples inside lib/chats folder.

Every methods are documented in abstract ChatBase and EventHandler. You can read the documentation generated with TypeDoc in Docs

Warnings

This lib is being tested, better documentation arrives as the project evolves.

Feel free to open issues, help with pull requests or bounce ideas off each other.

License

MIT License

Copyright (c) Danny França contato@dannyfranca.com

Package Sidebar

Install

npm i @dannyfranca/any-chat

Weekly Downloads

9

Version

0.1.2

License

MIT

Unpacked Size

74.7 kB

Total Files

67

Last publish

Collaborators

  • dannyfranca