fake-iamport-server
Version:
Fake iamport server for testing
63 lines (54 loc) • 1.33 kB
text/typescript
import { NestFactory } from "@nestjs/core";
import {
FastifyAdapter,
NestFastifyApplication,
} from "@nestjs/platform-fastify";
import { FakeIamportConfiguration } from "./FakeIamportConfiguration";
import { FakeIamportModule } from "./FakeIamportModule";
/**
* Fake 아임포트 서버의 백엔드 프로그램.
*
* @author Samchon
*/
export class FakeIamportBackend {
private application_?: NestFastifyApplication;
/**
* 서버 개설.
*/
public async open(): Promise<void> {
//----
// OPEN THE BACKEND SERVER
//----
// MOUNT CONTROLLERS
this.application_ = await NestFactory.create(
FakeIamportModule,
new FastifyAdapter(),
{ logger: false },
);
// DO OPEN
this.application_.enableCors();
await this.application_.listen(
FakeIamportConfiguration.API_PORT,
"0.0.0.0",
);
//----
// POST-PROCESSES
//----
// INFORM TO THE PM2
if (process.send) process.send("ready");
// WHEN KILL COMMAND COMES
process.on("SIGINT", async () => {
await this.close();
process.exit(0);
});
}
/**
* 서버 폐쇄.
*/
public async close(): Promise<void> {
if (this.application_ === undefined) return;
// DO CLOSE
await this.application_.close();
delete this.application_;
}
}