mirror of
https://github.com/muerwre/vk-tg-bot.git
synced 2025-04-25 15:06:41 +07:00
initial
This commit is contained in:
commit
ddefc2743a
21 changed files with 873 additions and 0 deletions
18
src/config/index.ts
Normal file
18
src/config/index.ts
Normal file
|
@ -0,0 +1,18 @@
|
|||
import yaml from 'js-yaml'
|
||||
import fs from 'fs'
|
||||
import path from 'path';
|
||||
import { Config } from './types';
|
||||
import { mergeRight } from 'ramda';
|
||||
import { validateConfig } from './validate';
|
||||
import logger from '../service/logger';
|
||||
|
||||
const defaultConfig = yaml.load<Config>(fs.readFileSync(path.join(__dirname, '../config.example.yml'), 'utf8'));
|
||||
const userConfig = yaml.load<Config>(fs.readFileSync(path.join(__dirname, '../config.yml'), 'utf8'));
|
||||
|
||||
const config = userConfig && mergeRight(defaultConfig, userConfig) || defaultConfig
|
||||
|
||||
export default function prepareConfig() {
|
||||
validateConfig(config)
|
||||
logger.debug('config is ok:', config)
|
||||
return config
|
||||
}
|
9
src/config/types.ts
Normal file
9
src/config/types.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { TelegramConfig } from '../service/telegram/types';
|
||||
import { VkConfig } from '../service/vk/types';
|
||||
import { HttpConfig } from '../api/http/types';
|
||||
|
||||
export interface Config extends Record<string, any>{
|
||||
http: HttpConfig
|
||||
telegram: TelegramConfig
|
||||
vk: VkConfig
|
||||
}
|
13
src/config/validate.ts
Normal file
13
src/config/validate.ts
Normal file
|
@ -0,0 +1,13 @@
|
|||
import { object } from 'yup'
|
||||
import { httpConfigSchema } from '../api/http/validation';
|
||||
import { Config } from './types';
|
||||
import { vkConfigSchema } from '../service/vk/validation';
|
||||
import { telegramConfigSchema } from '../service/telegram/validation';
|
||||
|
||||
const configSchema = object<Config>().required().shape({
|
||||
http: httpConfigSchema,
|
||||
vk: vkConfigSchema,
|
||||
telegram: telegramConfigSchema,
|
||||
})
|
||||
|
||||
export const validateConfig = (config: Config) => configSchema.validateSync(config)
|
Loading…
Add table
Add a link
Reference in a new issue