mission.core
Version:
mission core
231 lines (205 loc) • 6.11 kB
Markdown
# 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',
};
```