mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 12:39:24 +00:00
extends conditional class
This commit is contained in:
5
packages/provider/adapters/mock.js
Normal file
5
packages/provider/adapters/mock.js
Normal file
@@ -0,0 +1,5 @@
|
||||
const { EventEmitter } = require('node:events')
|
||||
|
||||
class MockProvider extends EventEmitter {}
|
||||
|
||||
module.exports = MockProvider
|
||||
1
packages/provider/adapters/twilio.js
Normal file
1
packages/provider/adapters/twilio.js
Normal file
@@ -0,0 +1 @@
|
||||
class TwilioProvider {}
|
||||
@@ -1,4 +1,8 @@
|
||||
class ProviderClass {
|
||||
/**
|
||||
* events: message | auth | auth_error | ...
|
||||
*
|
||||
*/
|
||||
constructor() {}
|
||||
|
||||
sendMessage = (message) => {
|
||||
|
||||
@@ -1,2 +1,22 @@
|
||||
const ProviderClass = require('./classes/provider.class')
|
||||
module.exports = { instance: ProviderClass }
|
||||
const TwilioProvider = require('./adapters/twilio')
|
||||
const MockProvider = require('./adapters/mock')
|
||||
|
||||
const prepareVendor = ({ vendor, credentials }) => {
|
||||
if (vendor === 'twilio') return new TwilioProvider(credentials)
|
||||
// if (vendor === 'meta') return new TwilioProvider(credentials)
|
||||
// if (vendor === 'wev') return new TwilioProvider(credentials)
|
||||
return new MockProvider()
|
||||
}
|
||||
|
||||
/**
|
||||
* Crear instancia de clase
|
||||
* @param {*} args
|
||||
* @returns
|
||||
*/
|
||||
const create = (args) => {
|
||||
const vendor = prepareVendor(args)
|
||||
return Object.setPrototypeOf(new ProviderClass(), vendor)
|
||||
}
|
||||
|
||||
module.exports = { create }
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@bot-whatsapp/provider",
|
||||
"version": "0.0.1",
|
||||
"description": "",
|
||||
"description": "Esto es el conector a Twilio, Meta, etc...",
|
||||
"main": "index.js",
|
||||
"private": true,
|
||||
"keywords": [],
|
||||
|
||||
Reference in New Issue
Block a user