UNPKG

mission.core

Version:
231 lines (205 loc) 6.11 kB
# Configurations ## DB Config `config\db.config.ts` ``` import { DatabaseConfig } from 'mission.core'; export const DbConfig: DatabaseConfig = { userName: App.Config.DATABASE_USER_NAME, password: App.Config.DATABASE_PASSWORD, database: App.Config.DATABASE_NAME, options: { host: App.Config.DATABASE_HOST_NAME, port: App.Config.DATABASE_PORT, dialect: App.Config.DATABASE_DIALECT, logging: console.warn, force: true, timezone: '+12:00', benchmark: true } }; ``` *** ## Logger Config `config\logger.config.ts` ``` import { LoggerOptionList } from 'mission.core'; export const LoggerConfig: { StartUpLoggerConfig: LoggerOptionList, ExceptionLoggerConfig: LoggerOptionList, SqlLoggerConfig: LoggerOptionList } = { StartUpLoggerConfig: [ { Console: { level: 'info', colorize: true, timestamp: true, json: true }, File: { filename: 'startup.log', dirname: App.Config.LOG_FOLDER_PATH, level: 'info', handleExceptions: true, timestamp: true, humanReadableUnhandledException: true, json: false } } ], ExceptionLoggerConfig: [ { Console: { level: 'info', colorize: true, timestamp: true, json: true }, DailyRotateFile: { filename: 'exception.log', dirname: App.Config.LOG_FOLDER_PATH, level: 'info', handleExceptions: true, timestamp: true, humanReadableUnhandledException: true, json: false } } ], SqlLoggerConfig: [ { Console: { level: 'info', colorize: true, timestamp: true, json: false }, File: { filename: 'sql.log', dirname: App.Config.LOG_FOLDER_PATH, level: 'info', handleExceptions: true, humanReadableUnhandledException: true, json: false } } ] }; ``` *** ## Session Config `config\session.config.ts` ``` import { SessionOptions } from 'mission.core'; import { WebConfig } from './WebServerConfig'; export const SessionConfig: SessionOptions = { secret: App.Config.SESSION_SECRET, cookie: { secure: WebConfig.isHttpsEnabled, maxAge: App.Config.SESSION_MAX_AGE, httpOnly: true }, resave: false, saveUninitialized: true }; ``` *** ## Web Server Config `config\webserver.config.ts` ``` import { WebServerConfig } from 'mission.core'; export const WebConfig: WebServerConfig = { apiPort: App.Config.PORT, isHttpsEnabled: !!App.Config.SSL_CERTIFICATE_PATH, httpsCertificatepath: App.Config.SSL_CERTIFICATE_PATH, httpsKeypath: App.Config.SSL_KEY_PATH, staticFileConfig: { dotfiles: 'ignore', etag: false, extensions: ['htm', 'html'], index: ['index.html', 'index.htm'], maxAge: '1d', redirect: false, setHeaders: function (res: any, path: string, stat: string) { res.set('x-timestamp', Date.now().toString()); } }, corsOptions: { origin: '*', methods: ['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS'], allowedHeaders: ['Authorization', 'Origin', 'X-Requested-With', 'Content-Type', 'Accept'], exposedHeaders: [], credentials: true, maxAge: 3600 }, webBasePath: App.Config.WEB_APPLICATION_PATH, docsBasepath: App.Config.API_DOCUMENT_PATH }; ``` *** ## Cache Config 'config\cache.config.ts` ``` import { RedisConfig, } from 'mission.core'; import { RedisStoreOptions } from 'connect-redis'; export const RedisSessionConfig: RedisStoreOptions = { host: App.Config.REDIS_HOST_NAME, port: App.Config.REDIS_PORT, db: 0 }; export const CacheConfig: RedisConfig = { host: App.Config.REDIS_HOST_NAME, port: App.Config.REDIS_PORT, connect_timeout: 60000, db: 'cache' }; ``` *** ## App Config `app.config.ts` ``` export const Config = { SSL_CERTIFICATE_PATH: '', SSL_KEY_PATH: '', PORT: this.SSL_CERTIFICATE_PATH ? 443 : 3000, DEFAULT_PAGE_SIZE: 50, WEB_APPLICATION_PATH: '/www', API_DOCUMENT_PATH: '/docs', CORS_ENABLED: false, /************* Database config **************/ DATABASE_DIALECT: 'mysql', DATABASE_NAME: 'tools', DATABASE_USER_NAME: 'root', DATABASE_PASSWORD: 'irtt', DATABASE_HOST_NAME: 'localhost', DATABASE_PORT: 3306, /************* Redis config **************/ REDIS_HOST_NAME: 'localhost', REDIS_PORT: 6379, REDIS_SSH_PORT: 22, /************* Cache config **************/ CACHE_ENABLED: true, CACHE_PROVIDER: 'rediscacheprovider', /************* Session config **************/ SESSION_SECRET: 'SecretKey', SESSION_MAX_AGE: 1000 * 60 * 10, /************* Email - SMTP config **************/ SMPT_HOST: 'smtp.gmail.com', SMPT_PORT: 465, SMTP_SECURE: true, // use SSL SMTP_USER: 'user@gmail.com', SMTP_PASSWORD: 'mission.api', /************* Elasticsearch config **************/ /************* Log config **************/ LOG_FOLDER_PATH: './logs/', STARTUP_LOG_LEVEL: 'error', EXCEPTION_LOG_LEVEL: 'error', SQL_LOG_LEVEL: 'error', LOG_ENABLED: true, LOG_LEVEL: 'error', LOGGER_NAME: 'ConsoleLogger', FALL_BACK_LOGGER_NAME: 'ConsoleLogger', INSTRUMENTATION_LOGGER_NAME: 'ConsoleLogger', SQL_QUERY_LOGGER_NAME: 'ConsoleLogger', }; ```