Skip to content

Commit

Permalink
fix: close connection on application shutdown
Browse files Browse the repository at this point in the history
  • Loading branch information
hyperloris committed Sep 18, 2022
1 parent 7e51cc3 commit 12b7c84
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions lib/tile38-core.module.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { DynamicModule, Global, Module, Provider } from '@nestjs/common';
import { DynamicModule, Global, Module, OnApplicationShutdown, Provider } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
import { Tile38 } from '@tiermobility/tile38-ts';

import { tile38ModuleOptions, tile38ModuleToken } from './constants';
import { Tile38ModuleAsyncOptions, Tile38ModuleOptions, Tile38OptionsFactory } from './interfaces';
Expand All @@ -7,7 +9,9 @@ import { getTile38Client } from './util';

@Global()
@Module({})
export class Tile38CoreModule {
export class Tile38CoreModule implements OnApplicationShutdown {
public constructor(private readonly moduleRef: ModuleRef) {}

public static forRoot(options: Tile38ModuleOptions): DynamicModule {
const tile38Provider = createTile38Provider(options);

Expand All @@ -33,6 +37,13 @@ export class Tile38CoreModule {
};
}

public async onApplicationShutdown(): Promise<void> {
const tile38 = this.moduleRef.get<Tile38>(tile38ModuleToken);
if (tile38) {
await tile38.quit();
}
}

private static createAsyncProviders(options: Tile38ModuleAsyncOptions): Provider[] {
if (options.useExisting || options.useFactory) {
return [this.createAsyncOptionsProvider(options)];
Expand Down

0 comments on commit 12b7c84

Please sign in to comment.