diff --git a/src/http/RequestClass.ts b/src/http/RequestClass.ts new file mode 100644 index 0000000..7b08072 --- /dev/null +++ b/src/http/RequestClass.ts @@ -0,0 +1,25 @@ +import {AppClass} from '../lifecycle/AppClass' +import {Container, Inject, Injectable} from '../di' +import {RequestLocalStorage} from './RequestLocalStorage' +import {Request} from './lifecycle/Request' + +/** + * Base for classes that gives access to the global application and request container. + * + * Similar to AppClass, but provides the Request instead of the Container. + */ +@Injectable() +export class RequestClass extends AppClass { + @Inject() + protected readonly requestClassStorage!: RequestLocalStorage + + /** Get the request container. **/ + protected container(): Container { + return this.requestClassStorage.get() + } + + /** Get the request. */ + protected request(): Request { + return this.requestClassStorage.get() + } +}