@dannyfranca/any-chat
v0.1.2
Published
Universal, extensible and improved JS API for Chats, like TawkTo, Jivochat, and others.
Downloads
146
Maintainers
Readme
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
Copyright (c) Danny França [email protected]