26 lines
836 B
TypeScript
26 lines
836 B
TypeScript
|
import ApplicationComponent from "../ApplicationComponent";
|
||
|
import express, {Express, Router} from "express";
|
||
|
import {PathParams} from "express-serve-static-core";
|
||
|
|
||
|
export default class ServeStaticDirectoryComponent extends ApplicationComponent<void> {
|
||
|
private readonly root: string;
|
||
|
private readonly path?: PathParams;
|
||
|
|
||
|
constructor(root: string, routePath?: PathParams) {
|
||
|
super();
|
||
|
this.root = root;
|
||
|
this.path = routePath;
|
||
|
}
|
||
|
|
||
|
public async start(app: Express, router: Router): Promise<void> {
|
||
|
if (typeof this.path !== 'undefined') {
|
||
|
router.use(this.path, express.static(this.root, {maxAge: 1000 * 3600 * 72}));
|
||
|
} else {
|
||
|
router.use(express.static(this.root, {maxAge: 1000 * 3600 * 72}));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public async stop(): Promise<void> {
|
||
|
}
|
||
|
|
||
|
}
|