Skip to content
This repository was archived by the owner on May 16, 2019. It is now read-only.

Commit

Permalink
feat: allow plugins to return a promise initializer
Browse files Browse the repository at this point in the history
  • Loading branch information
stackdumper committed Jan 13, 2019
1 parent 1a10cd6 commit a4cdbe4
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 13 deletions.
12 changes: 7 additions & 5 deletions packages/core/emeralt-cli/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@ createEmeraltServer({
}),
database: EmeraltDatabaseInMemory({}),
storage: EmeraltStorageInMemory({}),
}).listen(8080, () => {
console.log(chalk.bold.greenBright('Emeralt is listening at 8080...'))
console.log('Default user:')
console.log(`Username: ${chalk.greenBright('emeralt')}`)
console.log(`Password: ${chalk.greenBright('emeralt')}`)
}).then((server) => {
server.listen(8080, () => {
console.log(chalk.bold.greenBright('Emeralt is listening at 8080...'))
console.log('Default user:')
console.log(`Username: ${chalk.greenBright('emeralt')}`)
console.log(`Password: ${chalk.greenBright('emeralt')}`)
})
})
9 changes: 5 additions & 4 deletions packages/core/emeralt-server/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@ type EmeraltServer = http.Server & {
emeralt: TEmeraltServerParamsInternal
}

export const createEmeraltServer = (params: TEmeraltServerParams) => {
export const createEmeraltServer = async (params: TEmeraltServerParams) => {
// initialize plugins
const internal: TEmeraltServerParamsInternal = {
config: params.config,
auth: params.auth(params.config),
database: params.database(params.config),
storage: params.storage(params.config),
auth: await params.auth(params.config),
database: await params.database(params.config),
storage: await params.storage(params.config),
}

const services = createServices(internal)
Expand Down
6 changes: 3 additions & 3 deletions packages/core/emeralt-server/test/mocks/mock-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { EmeraltDatabaseInMemory } from '@emeralt/database-inmemory'
import { EmeraltAuthInMemory } from '@emeralt/auth-inmemory'
import { EmeraltStorageInMemory } from '@emeralt/storage-inmemory'

export const createMockServer = () => {
const server = createEmeraltServer({
export const createMockServer = async () => {
const server = await createEmeraltServer({
config: {
logLevel: 'silent',
jwt: {
Expand All @@ -19,7 +19,7 @@ export const createMockServer = () => {
}),
database: EmeraltDatabaseInMemory({}),
storage: EmeraltStorageInMemory({}),
}).listen()
}).then((s) => s.listen())

// @ts-ignore
const address = `http://localhost:${server.address().port}`
Expand Down
2 changes: 1 addition & 1 deletion packages/core/emeralt-types/src/emeralt/plugin.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { TEmeraltServerConfig } from './server'

export interface IEmeraltPlugin<T, C = {}> {
(pluginConfig: C): (serverConfig: TEmeraltServerConfig) => T
(pluginConfig: C): (serverConfig: TEmeraltServerConfig) => Promise<T> | T
}

0 comments on commit a4cdbe4

Please sign in to comment.