extends conditional class

This commit is contained in:
Leifer Mendez
2022-11-09 12:28:20 +01:00
parent 24484015b3
commit 39e2356feb
15 changed files with 137 additions and 75 deletions

View File

@@ -0,0 +1,5 @@
const { EventEmitter } = require('node:events')
class MockProvider extends EventEmitter {}
module.exports = MockProvider

View File

@@ -0,0 +1 @@
class TwilioProvider {}

View File

@@ -1,4 +1,8 @@
class ProviderClass {
/**
* events: message | auth | auth_error | ...
*
*/
constructor() {}
sendMessage = (message) => {

View File

@@ -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 }

View File

@@ -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": [],