Home - juanitopons/fullstack-test GitHub Wiki
fullstack-test-server - v1.0.0 › Wiki
- ApiResponse
- BooleanResponse
- CoreEntity
- CronScheduler
- CustomCronJob
- Database
- DatabaseLogger
- Department
- DepartmentCtrl
- DepartmentNotFound
- DepartmentRepo
- DepartmentService
- Employee
- EmployeeCtrl
- EmployeeNotFound
- EmployeeRepo
- EmployeeService
- EntityResponse
- ErrorHandlerMiddleware
- ErrorResponse
- ExpressServer
- InitialSchema1584700446988
- InitialSeed1584700453128
- SecurityMiddleware
- ServerLogger
- ICoreEntity
- ICustomCronJobParams
- IDatabase
- IEntityCheckRelatonOptions
- IProcessEnv
- IQueryOptions
- IServerLogger
- IValidatorParam
- ProcessEnv
- DatabaseEnv
- ExpressEnv
- LOGGER_FILES_PATH
- LoggerEnv
- MORGAN_ACCESS_APPENDER
- MORGAN_ROTATING
- cronJobs
- expressServer
- logger
- Logger
- Validator
- addSourceMapSupport
- applyMixins
- entityArrayToMap
- everyOneMinCronJob
- getDefaultsQueryOptions
- getFilter
- getLogger
- getPageOptions
- getSortOptions
- initConfig
- isDevelopment
- isProduction
- loadDotenvConfig
- mapArrayToEntity
- mapSingleToEntity
- mappingTypeExists
- pipe
- queryMapEntity
- strictEnv
- strictNodeEnvValueValidator
- stringInclude
- stringValue
- throwIfNotKeyinObj
- useContainers
- CRON_LEVEL
- DATEFILE_APPENDER
- DB_LEVEL
- ENTITY_CHECK_REL_OPS
- LOGGER_APPENDERS
- LOGGER_CONFIG
- LOGGER_LEVELS
- NODE_ENV_STRICT_VALUES
- OPTS
- QUERY_OPTIONS
- STDOUT_APPENDER
- STRICT_ENVS
• __global:
Defined in src/typings/config.d.ts:1
• NodeJS:
Defined in src/typings/config.d.ts:2
• ProcessEnv:
Defined in src/typings/config.d.ts:3
• API_URI: string
Defined in src/typings/config.d.ts:4
• MYSQL_DATABASE: string
Defined in src/typings/config.d.ts:17
• MYSQL_HOSTNAME: string
Defined in src/typings/config.d.ts:13
• MYSQL_PASSWORD: string
Defined in src/typings/config.d.ts:15
• MYSQL_PORT: string
Defined in src/typings/config.d.ts:16
• MYSQL_USER: string
Defined in src/typings/config.d.ts:14
• NODE_DEBUG: string
Defined in src/typings/config.d.ts:12
• NODE_DOCKER: string
Defined in src/typings/config.d.ts:19
• NODE_ENV: string
Defined in src/typings/config.d.ts:5
• NODE_LOG_DIR: string
Defined in src/typings/config.d.ts:8
• NODE_LOG_FILE: string
Defined in src/typings/config.d.ts:7
• NODE_LOG_LEVEL: string
Defined in src/typings/config.d.ts:6
• NODE_MORGAN_LOG: string
Defined in src/typings/config.d.ts:9
• NODE_MORGAN_LOG_FMT: string
Defined in src/typings/config.d.ts:10
• NODE_MORGAN_LOG_ROLLING_INTERVAL: string
Defined in src/typings/config.d.ts:11
• SERVER_INTERNAL_PORT: string
Defined in src/typings/config.d.ts:18
• DatabaseEnv: object = process.env as ProcessEnv
Defined in src/database/database.ts:24
-
MYSQL_DATABASE: any
-
MYSQL_HOSTNAME: any
-
MYSQL_PASSWORD: any
-
MYSQL_PORT: any
-
MYSQL_USER: any
• ExpressEnv: object = process.env as ProcessEnv
Defined in src/express.ts:23
-
API_URI: any
-
MYSQL_HOSTNAME: any
-
MYSQL_PORT: any
-
NODE_DEBUG: any
-
NODE_DOCKER: any
-
NODE_ENV: any
-
SERVER_INTERNAL_PORT: any
• LOGGER_FILES_PATH: string = ${LoggerEnv.NODE_LOG_DIR}/${LoggerEnv.NODE_LOG_FILE}
Defined in src/helpers/logger.ts:30
• LoggerEnv: object = process.env as ProcessEnv
Defined in src/helpers/logger.ts:20
-
NODE_ENV: any
-
NODE_LOG_DIR: any
-
NODE_LOG_FILE: any
-
NODE_LOG_LEVEL: any
-
NODE_MORGAN_LOG: any
-
NODE_MORGAN_LOG_FMT: any
-
NODE_MORGAN_LOG_ROLLING_INTERVAL: any
• MORGAN_ACCESS_APPENDER: RequestHandler‹ParamsDictionary› = morgan(LoggerEnv.NODE_MORGAN_LOG_FMT, { stream: MORGAN_ROTATING, })
Defined in src/helpers/logger.ts:46
• MORGAN_ROTATING: RotatingFileStream‹› = rfs.createStream(LoggerEnv.NODE_MORGAN_LOG, { interval: LoggerEnv.NODE_MORGAN_LOG_ROLLING_INTERVAL, path: LoggerEnv.NODE_LOG_DIR, })
Defined in src/helpers/logger.ts:42
• cronJobs: ICustomCronJobParams[] = [ { name: 'cron-example', cronTime: '0 */1 * * * *', onTick: everyOneMinCronJob, }, ] as ICustomCronJobParams[]
Defined in src/cron.jobs.ts:7
• expressServer: ExpressServer‹› = Container.get(ExpressServer)
Defined in src/server.ts:15
• logger: IServerLogger = getLogger()
Defined in src/server.ts:14
▸ Logger(): (Anonymous function)
Defined in src/decorators/logger.ts:6
Returns: (Anonymous function)
▸ Validator(schema: ObjectSchema): (Anonymous function)
Defined in src/app/middlewares/validator.ts:11
Parameters:
| Name | Type |
|---|---|
schema |
ObjectSchema |
Returns: (Anonymous function)
▸ addSourceMapSupport(): void
Defined in src/config.ts:17
Returns: void
▸ applyMixins(derivedCtor: any, baseCtors: any[]): void
Defined in src/helpers/utils.ts:216
Parameters:
| Name | Type |
|---|---|
derivedCtor |
any |
baseCtors |
any[] |
Returns: void
▸ entityArrayToMap<T>(entityArray: T[], mapKey: string): Map‹any, Partial‹T[]››
Defined in src/helpers/utils.ts:173
Transform array entities to mapped key column
export
Type parameters:
▪ T: CoreEntity
Parameters:
| Name | Type |
|---|---|
entityArray |
T[] |
mapKey |
string |
Returns: Map‹any, Partial‹T[]››
▸ everyOneMinCronJob(): void
Defined in src/scripts/cron/example-every-one-minute.ts:4
Returns: void
▸ getDefaultsQueryOptions(options: IQueryOptions): IQueryOptions
Defined in src/helpers/utils.ts:67
Get defaults of QueryOptions filter if no valid ones were obtained from the client
Parameters:
| Name | Type |
|---|---|
options |
IQueryOptions |
Returns: IQueryOptions
▸ getFilter(options: IQueryOptions, countAll: boolean): FindManyOptions
Defined in src/helpers/utils.ts:120
Get repositories find filter from QueryOptions interface
export
Parameters:
| Name | Type | Default |
|---|---|---|
options |
IQueryOptions | - |
countAll |
boolean | false |
Returns: FindManyOptions
▸ getLogger(): ServerLogger‹›
Defined in src/helpers/logger.ts:250
Returns: ServerLogger‹›
▸ getPageOptions(queryOptions: IQueryOptions): FindManyOptions
Defined in src/helpers/utils.ts:103
Generate typeorm repositories find filter for pagination from QueryOptions interface col
Parameters:
| Name | Type |
|---|---|
queryOptions |
IQueryOptions |
Returns: FindManyOptions
▸ getSortOptions(queryOptions: IQueryOptions): object
Defined in src/helpers/utils.ts:76
Parameters:
| Name | Type |
|---|---|
queryOptions |
IQueryOptions |
Returns: object
▸ initConfig(): void
Defined in src/config.ts:41
Returns: void
▸ isDevelopment(): boolean
Defined in src/helpers/utils.ts:17
Check for 'development' enviroment
export
Returns: boolean
▸ isProduction(): boolean
Defined in src/helpers/utils.ts:21
Returns: boolean
▸ loadDotenvConfig(): void
Defined in src/config.ts:27
Returns: void
▸ mapArrayToEntity<T>(arrayValues: Partial‹T›[], model: object): T[]
Defined in src/helpers/utils.ts:209
Type parameters:
▪ T: CoreEntity
Parameters:
| Name | Type |
|---|---|
arrayValues |
Partial‹T›[] |
model |
object |
Returns: T[]
▸ mapSingleToEntity<T>(values: Partial‹T›, model: object): T
Defined in src/helpers/utils.ts:202
Type parameters:
▪ T: CoreEntity
Parameters:
| Name | Type |
|---|---|
values |
Partial‹T› |
model |
object |
Returns: T
▸ mappingTypeExists(mappingType: string, entityRef: ICoreEntity): boolean
Defined in src/helpers/utils.ts:158
Check if mapping exists for given Entity
export
Parameters:
| Name | Type |
|---|---|
mappingType |
string |
entityRef |
ICoreEntity |
Returns: boolean
▸ pipe(...fns: any[]): (Anonymous function)
Defined in src/helpers/utils.ts:25
Parameters:
| Name | Type |
|---|---|
...fns |
any[] |
Returns: (Anonymous function)
▸ queryMapEntity<T, K>(mapColumn: string, data: Partial‹T[]›): Map‹T[K], Partial‹T[]››
Defined in src/helpers/utils.ts:195
Map entity queries by entity map type
export
Type parameters:
▪ T: CoreEntity
▪ K: keyof T
Parameters:
| Name | Type |
|---|---|
mapColumn |
string |
data |
Partial‹T[]› |
Returns: Map‹T[K], Partial‹T[]››
▸ strictEnv(): void
Defined in src/config.ts:11
Returns: void
▸ strictNodeEnvValueValidator(nodeEnvs: string[]): (Anonymous function)
Defined in src/helpers/validation/validators.ts:5
Parameters:
| Name | Type |
|---|---|
nodeEnvs |
string[] |
Returns: (Anonymous function)
▸ stringInclude(expected: string[]): (Anonymous function)
Defined in src/helpers/validation/rules.ts:22
Parameters:
| Name | Type |
|---|---|
expected |
string[] |
Returns: (Anonymous function)
▸ stringValue(expected: string): (Anonymous function)
Defined in src/helpers/validation/rules.ts:3
Parameters:
| Name | Type |
|---|---|
expected |
string |
Returns: (Anonymous function)
▸ throwIfNotKeyinObj<T, K>(obj: Partial‹T›, prop: K, validator: any, msg: string): T[K]
Defined in src/helpers/utils.ts:42
Object key function validator. Checks if key K from T exists on Partial. Also checks T[K] specific defined validator
export
Type parameters:
▪ T
▪ K: keyof T
Parameters:
| Name | Type | Default |
|---|---|---|
obj |
Partial‹T› | - |
prop |
K | - |
validator |
any | - |
msg |
string | Property key '${prop}' not found in Object |
Returns: T[K]
▸ useContainers(): void
Defined in src/config.ts:35
Returns: void
Defined in src/helpers/logger.ts:56
• name: string = "CRON"
Defined in src/helpers/logger.ts:56
▪ level: object
Defined in src/helpers/logger.ts:56
-
colour: string = "yellow"
-
value: number = 300001
Defined in src/helpers/logger.ts:33
• compress: boolean = true
Defined in src/helpers/logger.ts:37
• daysToKeep: number = 14
Defined in src/helpers/logger.ts:38
• filename: string = LOGGER_FILES_PATH
Defined in src/helpers/logger.ts:35
• keepFileExt: boolean = true
Defined in src/helpers/logger.ts:39
• type: string = "dateFile"
Defined in src/helpers/logger.ts:34
▪ layout: object
Defined in src/helpers/logger.ts:36
- type: string = "basic"
Defined in src/helpers/logger.ts:57
• name: string = "DB"
Defined in src/helpers/logger.ts:57
▪ level: object
Defined in src/helpers/logger.ts:57
-
colour: string = "cyan"
-
value: number = 200001
Defined in src/app/controller.interface.ts:30
• ownEntity: false = false
Defined in src/app/controller.interface.ts:31
Defined in src/helpers/logger.ts:50
• console: object = STDOUT_APPENDER
Defined in src/helpers/logger.ts:51
-
type: string = "stdout"
-
- type: string = "colored"
• dateFile: object = DATEFILE_APPENDER
Defined in src/helpers/logger.ts:52
-
compress: boolean = true
-
daysToKeep: number = 14
-
filename: string = LOGGER_FILES_PATH
-
keepFileExt: boolean = true
-
type: string = "dateFile"
-
- type: string = "basic"
Defined in src/helpers/logger.ts:59
▪ __computed: object
Defined in src/helpers/logger.ts:60
Defined in src/helpers/logger.ts:65
Defined in src/helpers/logger.ts:70
-
appendersCategories: string[] = ['console', 'dateFile']
-
expressAppenders: RequestHandler‹ParamsDictionary›[] = [MORGAN_ACCESS_APPENDER]
-
level: string = "info"
▪ default: object
Defined in src/helpers/logger.ts:75
-
appendersCategories: string[] = ['console']
-
expressAppenders: undefined[] = []
-
level: string = "debug"
Defined in src/helpers/logger.ts:82
• __computed: object = DB_LEVEL.level
Defined in src/helpers/logger.ts:83
Defined in src/helpers/logger.ts:84
-
colour: string = "cyan"
-
value: number = 200001
Defined in src/app/config.interface.ts:3
• DEVELOPMENT: string = "development"
Defined in src/app/config.interface.ts:4
• PRODUCTION: string = "production"
Defined in src/app/config.interface.ts:6
• STAGING: string = "staging"
Defined in src/app/config.interface.ts:5
Defined in src/app/middlewares/validator.ts:4
• abortEarly: false = false
Defined in src/app/middlewares/validator.ts:5
▪ language: object
Defined in src/app/middlewares/validator.ts:6
- key: string = "{{key}} "
Defined in src/app/controller.interface.ts:18
• itemsPerPage: string = "5"
Defined in src/app/controller.interface.ts:22
• mapping: null = null
Defined in src/app/controller.interface.ts:21
• page: string = "0"
Defined in src/app/controller.interface.ts:23
• sortColumns: string[] = ['id']
Defined in src/app/controller.interface.ts:19
• sortDirections: QuerySortOrder[] = [QuerySortOrder.DESC]
Defined in src/app/controller.interface.ts:20
Defined in src/helpers/logger.ts:41
• type: string = "stdout"
Defined in src/helpers/logger.ts:41
▪ layout: object
Defined in src/helpers/logger.ts:41
- type: string = "colored"
Defined in src/app/config.interface.ts:9
▪ API_URI: object
Defined in src/app/config.interface.ts:10
- key: string = "API_URI"
▪ MYSQL_DATABASE: object
Defined in src/app/config.interface.ts:27
- key: string = "MYSQL_DATABASE"
▪ MYSQL_HOSTNAME: object
Defined in src/app/config.interface.ts:23
- key: string = "MYSQL_HOSTNAME"
▪ MYSQL_PASSWORD: object
Defined in src/app/config.interface.ts:25
- key: string = "MYSQL_PASSWORD"
▪ MYSQL_PORT: object
Defined in src/app/config.interface.ts:26
- key: string = "MYSQL_PORT"
▪ MYSQL_USER: object
Defined in src/app/config.interface.ts:24
- key: string = "MYSQL_USER"
▪ NODE_DEBUG: object
Defined in src/app/config.interface.ts:22
- key: string = "NODE_DEBUG"
▪ NODE_ENV: object
Defined in src/app/config.interface.ts:11
-
key: string = "NODE_ENV"
-
validator(): (Anonymous function)
▪ NODE_LOG_DIR: object
Defined in src/app/config.interface.ts:18
- key: string = "NODE_LOG_DIR"
▪ NODE_LOG_FILE: object
Defined in src/app/config.interface.ts:17
- key: string = "NODE_LOG_FILE"
▪ NODE_LOG_LEVEL: object
Defined in src/app/config.interface.ts:16
- key: string = "NODE_LOG_LEVEL"
▪ NODE_MORGAN_LOG: object
Defined in src/app/config.interface.ts:19
- key: string = "NODE_MORGAN_LOG"
▪ NODE_MORGAN_LOG_FMT: object
Defined in src/app/config.interface.ts:20
- key: string = "NODE_MORGAN_LOG_FMT"
▪ NODE_MORGAN_LOG_ROLLING_INTERVAL: object
Defined in src/app/config.interface.ts:21
- key: string = "NODE_MORGAN_LOG_ROLLING_INTERVAL"
▪ SERVER_INTERNAL_PORT: object
Defined in src/app/config.interface.ts:28
- key: string = "SERVER_INTERNAL_PORT"