Commit d1c6a13a authored by nanahira's avatar nanahira

start app on application bootstrap

parent 96cc77e7
Pipeline #6055 passed with stages
in 30 seconds
{ {
"name": "koishi-nestjs", "name": "koishi-nestjs",
"version": "1.0.7", "version": "1.0.8",
"description": "Koishi.js as Nest.js Module", "description": "Koishi.js as Nest.js Module",
"main": "dist/index.js", "main": "dist/index.js",
"typings": "dist/index.d.ts", "typings": "dist/index.d.ts",
......
import { App } from 'koishi'; import { App } from 'koishi';
import { Inject, Injectable, OnModuleInit } from '@nestjs/common'; import {
Inject,
Injectable,
OnApplicationBootstrap,
OnModuleInit,
} from '@nestjs/common';
import { KOISHI_MODULE_OPTIONS } from './koishi.constants'; import { KOISHI_MODULE_OPTIONS } from './koishi.constants';
import { KoishiModuleOptions } from './koishi.interfaces'; import { KoishiModuleOptions } from './koishi.interfaces';
@Injectable() @Injectable()
export class KoishiService extends App implements OnModuleInit { export class KoishiService
extends App
implements OnModuleInit, OnApplicationBootstrap {
constructor( constructor(
@Inject(KOISHI_MODULE_OPTIONS) @Inject(KOISHI_MODULE_OPTIONS)
private koishiModuleOptions: KoishiModuleOptions, private koishiModuleOptions: KoishiModuleOptions,
...@@ -12,7 +19,7 @@ export class KoishiService extends App implements OnModuleInit { ...@@ -12,7 +19,7 @@ export class KoishiService extends App implements OnModuleInit {
super(koishiModuleOptions); super(koishiModuleOptions);
} }
async onModuleInit() { onModuleInit() {
if (this.koishiModuleOptions.usePlugins) { if (this.koishiModuleOptions.usePlugins) {
for (const pluginDesc of this.koishiModuleOptions.usePlugins) { for (const pluginDesc of this.koishiModuleOptions.usePlugins) {
const ctx = pluginDesc.select const ctx = pluginDesc.select
...@@ -21,6 +28,9 @@ export class KoishiService extends App implements OnModuleInit { ...@@ -21,6 +28,9 @@ export class KoishiService extends App implements OnModuleInit {
ctx.plugin(pluginDesc.plugin, pluginDesc.options); ctx.plugin(pluginDesc.plugin, pluginDesc.options);
} }
} }
}
onApplicationBootstrap() {
return this.start(); return this.start();
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment