smartnginx/ts/smartnginx.classes.nginxhost.ts

45 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

import * as plugins from './smartnginx.plugins';
import * as paths from './smartnginx.paths';
import * as snippets from './smartnginx.snippets';
import { SmartNginx } from './smartnginx.classes.smartnginx';
2019-01-09 11:15:28 +00:00
import { IHostConfig } from './interfaces/hostconfig';
export enum hostTypes {
reverseProxy
}
/**
* manages a single nginx host
*/
2019-01-09 11:15:28 +00:00
export class NginxHost implements IHostConfig {
/**
* smartnginxInstance this NginHost belongs to
*/
2019-01-09 11:15:28 +00:00
smartnginxInstance: SmartNginx;
hostName: string; // the host name e.g. domain name
destination: string;
configString: string; // the actual host config file as string
2019-01-09 11:15:28 +00:00
privateKey: string;
publicKey: string;
constructor(smartnginxInstanceArg: SmartNginx, optionsArg: IHostConfig) {
this.smartnginxInstance = smartnginxInstanceArg;
this.hostName = optionsArg.hostName;
this.destination = optionsArg.destination;
this.configString = snippets.getHostConfigString(optionsArg.hostName, optionsArg.destination);
}
/**
*
* @param certInstanceArg
*/
2019-01-09 11:15:28 +00:00
public async deploy() {
const filePath = plugins.path.join(paths.nginxHostDirPath, `${this.hostName}.conf`);
// writeConfig
plugins.smartfile.memory.toFsSync(this.configString, filePath);
}
}