UNPKG

14.8 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/BotsModule.ts"],"names":["asyncMapValues","obj","callback","Bluebird","props","BotsModule","app","providers","plugins","log","bots","v","routes","routers","config","require","version","err","console","error","__config","module","modelsModule","model","plugin","getRoutes","Array","isArray","plugingRoutes","Object","values","path","action","onStart","bind","ctx","reply","models","assignProviders","providersConfigs","pluginsConfig","getProviders","debug","keys","key","provider","warn","__parent","botsModule","getPlugins","currentPlugins","pluginFn","name","pluginConfig","Plugin","create","Boolean","map","c","bot","BotsRouter","assign","__run","Module"],"mappings":"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","sourcesContent":["// @ts-ignore\nimport { IAnyKeyValue, IAsyncPlugins, IAsyncProviders, IBotProvider } from '@lskjs/bots-base/types';\n// @ts-ignore\nimport { BotsRouter } from '@lskjs/bots-router';\n// @ts-ignore\nimport { IModel, IModelKeyValue, IModelsModule } from '@lskjs/db';\n// @ts-ignore\nimport { IAsyncModuleKeyValue, ILogger, Module } from '@lskjs/module';\n// @ts-ignore\nimport { createAsyncModule } from '@lskjs/module/utils/createAsyncModule';\n// import asyncMapValues from '@lskjs/utils/asyncMapValues';\n// @ts-ignore\nimport importFn from '@lskjs/utils/importFn';\nimport Bluebird from 'bluebird';\nimport flatten from 'lodash/flatten';\nimport mapValues from 'lodash/mapValues';\nimport pickBy from 'lodash/pickBy';\n\nimport models from './models';\nimport plugins from './plugins';\nimport providers from './providers';\n// import { Dictionary, NumericDictionary, DictionaryIterator } from '@types/lodash';\n\n// export default <T>(\n// obj: Dictionary<T> | NumericDictionary<T> | null | undefined,\n// callback: string | DictionaryIterator<T, any>,\n// ): Promise<Dictionary<any>> => Bluebird.props(mapValues(obj, callback)); // @ts-ignore\n\ntype Dictionary<T> = {\n [key: string]: T;\n};\n\nexport const asyncMapValues = <T>(\n obj: Dictionary<T>,\n callback: (value: T, key: string) => Promise<unknown>,\n): Promise<Dictionary<any>> => Bluebird.props(mapValues(obj, callback));\n\nexport default class BotsModule extends Module {\n app?: any;\n providers: IAsyncProviders = providers;\n plugins: IAsyncPlugins = {};\n log: ILogger;\n bots: {\n [name: string]: IBotProvider;\n };\n v: string;\n routes: any;\n routers: any;\n config: {\n providers: Record<\n string,\n {\n provider: string;\n [name: string]: unknown;\n }\n >;\n plugins: Record<string, unknown>;\n [name: string]: unknown;\n };\n\n setProps(...props: any[]): void {\n super.setProps(...props);\n try {\n // eslint-disable-next-line import/no-unresolved\n this.v = require('./package.json').version;\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('setProps err', err);\n }\n }\n\n async getConfig(): Promise<Record<string, any>> {\n const config = {\n ...(this.config || {}),\n // @ts-ignore\n ...(this.__config || {}),\n providers: {\n ...(this.config.providers || {}),\n // @ts-ignore\n ...(this.__config.providers || {}),\n },\n plugins: {\n ...(this.config.plugins || {}),\n // @ts-ignore\n ...(this.__config.plugins || {}),\n },\n };\n return config;\n }\n\n async model(...args: any[]): Promise<IModel | IModelKeyValue> {\n // @ts-ignore\n const modelsModule = (await this.module('models')) as IModelsModule;\n // @ts-ignore\n return modelsModule.model(...args);\n }\n\n async getPlugins(): Promise<IAnyKeyValue> {\n return {\n ...plugins,\n ...(this.plugins || {}),\n };\n }\n\n async getProviders(): Promise<IAnyKeyValue> {\n return {\n ...providers,\n ...(this.providers || {}),\n };\n }\n\n async getRoutes(): Promise<any[]> {\n const plugingRoutes = await asyncMapValues(this.plugins, async (plugin: any) => {\n if (plugin && plugin.getRoutes) {\n const routes = await plugin.getRoutes();\n if (!Array.isArray(routes)) return [routes];\n return routes;\n }\n return [];\n });\n return [\n ...flatten(Object.values(plugingRoutes)),\n {\n path: '/start',\n action: this.onStart.bind(this),\n },\n {\n path: '(.*)',\n action({ path, log }: any) {\n log.error('404', path);\n return true;\n },\n },\n ];\n }\n\n async onStart({ ctx }: any): Promise<void> {\n await ctx.reply(`Hello LSK world`);\n // const createButtons = (value) => {\n // if (Array.isArray(value)) return value.map(createButtons);\n // return Markup.callbackButton(value, value);\n // };\n // const buttons = [\n // ['/start', '/menu', '/menu/submenu'],\n // ['/menu/submenu/1', '/menu/submenu/2', '/menu/submenu/4'],\n // ];\n\n // const content = `Hello LSK world`;\n\n // await ctx.reply(content);\n\n // // await ctx.editMessageText();\n // // await ctx.answerCbQuery();\n\n // // await ctx.replyWithChatAction('typing');\n // // await Bluebird.delay(500);\n // // await ctx.editMessageText(this.app.i18.t('bot.city.enter'));\n // // await ctx.answerCbQuery();\n // return true;\n }\n\n async getModules(): Promise<IAsyncModuleKeyValue> {\n return {\n ...super.getModules(),\n // @ts-ignore\n models: [() => import('@lskjs/db/models'), { models }],\n };\n }\n\n async init(): Promise<void> {\n await super.init();\n // console.log('this.app.config.bots', this.app.config.bots)\n // console.log(this.config)\n const { assignProviders = true, providers: providersConfigs, plugins: pluginsConfig } = this.config;\n const providers = await this.getProviders(); // eslint-disable-line no-shadow\n this.log.debug('providers', Object.keys(providers));\n this.bots = await asyncMapValues(providersConfigs, async (config, key) => {\n const { provider } = config;\n if (!provider) {\n this.log.warn(`Empty provider for bot '${key}'`);\n return null;\n }\n if (!providers[provider]) {\n this.log.warn(`Can't find provider '${provider}' for bot '${key}'`);\n return null;\n }\n return createAsyncModule(providers[provider], {\n __parent: this,\n app: this.app,\n botsModule: this,\n config,\n key,\n });\n // const Provider = await importFn(providers[provider]);\n // return Provider.create({ app: this.app, botsModule: this, config, key });\n });\n\n this.log.debug('bots', Object.keys(this.bots));\n const currentPlugins = await this.getPlugins();\n this.plugins = await asyncMapValues(currentPlugins, async (pluginFn, name) => {\n const pluginConfig = pluginsConfig && pluginsConfig[name];\n return createAsyncModule(pluginFn, {\n __parent: this,\n app: this.app,\n botsModule: this,\n bots: this.bots,\n config: pluginConfig || {},\n });\n\n // const pluging = await this.module(`plugins.${name}`);\n const Plugin = await importFn(pluginFn);\n if (pluginConfig === false) return null;\n return Plugin.create({\n __parent: this,\n app: this.app,\n botsModule: this,\n bots: this.bots,\n config: pluginConfig || {},\n });\n });\n // @ts-ignore\n this.plugins = pickBy(this.plugins, Boolean);\n this.log.debug('plugins', Object.keys(this.plugins));\n\n this.routes = await this.getRoutes();\n this.log.debug(\n 'Bots.routes',\n this.routes.map((c: any) => c.path),\n );\n\n this.routers = await asyncMapValues(this.bots, async (bot) =>\n BotsRouter.create({\n __parent: this,\n app: this.app,\n botsModule: this,\n bots: this.bots,\n bot,\n routes: this.routes,\n }),\n );\n\n if (assignProviders) Object.assign(this, this.bots);\n }\n async run(): Promise<void> {\n await super.run();\n if (!this.config) return;\n await asyncMapValues(this.bots, (bot) => bot.__run());\n await asyncMapValues(this.plugins, (plugin: any) => plugin.__run());\n this.log.debug(\n 'bots x plugins',\n await asyncMapValues(this.bots, async (bot) => (bot.plugins || []).map((plugin: any) => plugin.name)),\n );\n }\n}\n"],"file":"BotsModule.js"}
\No newline at end of file