# Class Application<Config, Ref>`Abstract`

#### Type Parameters

- Config extends object
- Ref extends RefWithInjector

#### Hierarchy (view full)

- Application
  - ModuleApplication
  - StandaloneApplication

- Defined in lib/application.ts:33

#####
Index

### Constructors

constructor

### Properties

_afterList
_beforeList
app
config
configLoadOptions?
environment
logger
options

### Methods

after
before
bootstrap
create
handleAfter
handleBefore
loadConfig
prepareConfig
prepareEnvironment

## Constructors

### constructor

- new Application<Config, Ref>(environment, options?, configLoadOptions?): Application<Config, Ref>

- #### Type Parameters

  - Config extends object
  - Ref extends RefWithInjector

  #### Parameters

  - environment: Environment
  - options: Config = ...
  - `Optional` configLoadOptions: ConfigLoadOptions

  #### Returns Application<Config, Ref>

  - Defined in lib/application.ts:41

## Properties

### `Private` _afterList

_afterList: ApplicationAfterFunction<Ref>[] = []

- Defined in lib/application.ts:39

### `Private` _beforeList

_beforeList: ApplicationBeforeFunction<Config>[] = []

- Defined in lib/application.ts:38

### app

app: null | Ref = null

- Defined in lib/application.ts:35

### config

config: null | ConfigService<Record<string, any>> = null

- Defined in lib/application.ts:37

### `Optional` `Readonly` configLoadOptions

configLoadOptions?: ConfigLoadOptions

- Defined in lib/application.ts:44

### `Readonly` environment

environment: Environment

- Defined in lib/application.ts:42

### logger

logger: null | NGXLogger = null

- Defined in lib/application.ts:36

### `Readonly` options

options: Config = ...

- Defined in lib/application.ts:43

## Methods

### after

- after(fnc): void

- #### Parameters

  - fnc: ApplicationAfterFunction<Ref>

  #### Returns void

  - Defined in lib/application.ts:86

### before

- before(fnc): void

- #### Parameters

  - fnc: ApplicationBeforeFunction<Config>

  #### Returns void

  - Defined in lib/application.ts:82

### bootstrap

- bootstrap(): Promise<void>

- #### Returns Promise<void>

  - Defined in lib/application.ts:47

### `Protected` `Abstract` create

- create(): Promise<Ref>

- #### Returns Promise<Ref>

  - Defined in lib/application.ts:112

### `Protected` handleAfter

- handleAfter(app, logger, config): Promise<void>

- #### Parameters

  - app: Ref
  - logger: NGXLogger
  - config: ConfigService<Record<string, any>>

  #### Returns Promise<void>

  - Defined in lib/application.ts:96

### `Protected` handleBefore

- handleBefore(config, options): Promise<void>

- #### Parameters

  - config: ConfigService<Record<string, any>>
  - options: Config

  #### Returns Promise<void>

  - Defined in lib/application.ts:90

### `Protected` loadConfig

- loadConfig(environment): Promise<void>

- #### Parameters

  - environment: Environment

  #### Returns Promise<void>

  - Defined in lib/application.ts:102

### `Protected` `Abstract` prepareConfig

- prepareConfig(config): void

- #### Parameters

  - config: Config

  #### Returns void

  - Defined in lib/application.ts:110

### `Protected` prepareEnvironment

- prepareEnvironment(environment): Promise<void>

- #### Parameters

  - environment: Environment

  #### Returns Promise<void>

  - Defined in lib/application.ts:106