Skip to content

Commit

Permalink
feat: add event emitter
Browse files Browse the repository at this point in the history
  • Loading branch information
thetutlage committed May 30, 2019
1 parent 1d7055e commit 0e5fb82
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 0 deletions.
26 changes: 26 additions & 0 deletions adonis-typings/event.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* @adonisjs/core
*
* (c) Harminder Virk <virk@adonisjs.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

/**
* The binding for the given module is defined inside `providers/AppProvider.ts`
* file.
*/
declare module '@ioc:Adonis/Core/Events' {
import { EmitterContract as BaseContract } from '@poppinss/events'

const Event: EmitterContract<EventsMap>

/**
* Module exports
*/
export interface EmitterContract<T extends any> extends BaseContract<T> {}
export interface EventsMap {}

export default Event
}
24 changes: 24 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
"@poppinss/application": "^1.0.2",
"@poppinss/config": "^1.0.4",
"@poppinss/env": "^1.0.4",
"@poppinss/events": "^1.0.0",
"@poppinss/http-server": "^1.1.3",
"@poppinss/logger": "^1.0.5",
"@poppinss/request": "^1.0.8",
Expand Down
11 changes: 11 additions & 0 deletions providers/AppProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { Response } from '@poppinss/response'
import { getLogger } from '@poppinss/logger'
import { requireAll } from '@poppinss/utils'
import { ApplicationContract } from '@poppinss/application'
import { Emitter } from '@poppinss/events'
import { Server, HttpContext, MiddlewareStore, Router, routePreProcessor } from '@poppinss/http-server'

import { HttpExceptionHandler } from '../src/HttpExceptionHandler'
Expand Down Expand Up @@ -116,6 +117,15 @@ export default class AppProvider {
this.$container.bind('Adonis/Core/HttpExceptionHandler', () => HttpExceptionHandler)
}

/**
* Register `Event emitter` to the container.
*/
protected $registerEmitter () {
this.$container.singleton('Adonis/Core/Event', () => {
return new Emitter()
})
}

/**
* Registering all required bindings to the container
*/
Expand All @@ -128,5 +138,6 @@ export default class AppProvider {
this.$registerMiddlewareStore()
this.$registerHttpServer()
this.$registerHttpExceptionHandler()
this.$registerEmitter()
}
}

0 comments on commit 0e5fb82

Please sign in to comment.