consolidate naming and start exporting interfaces
This commit is contained in:
43
ts/smartnginx.classes.nginxhost.ts
Normal file
43
ts/smartnginx.classes.nginxhost.ts
Normal file
@ -0,0 +1,43 @@
|
||||
import * as plugins from "./smartnginx.plugins";
|
||||
import * as paths from "./smartnginx.paths";
|
||||
import * as snippets from "./smartnginx.snippets"
|
||||
|
||||
/**
|
||||
* the host config data that NginxHost needs to create a valid instance
|
||||
*/
|
||||
export interface hostConfigData {
|
||||
hostName: string,
|
||||
type: hostTypes,
|
||||
destination: string
|
||||
}
|
||||
|
||||
export enum hostTypes {
|
||||
reverseProxy,
|
||||
static
|
||||
}
|
||||
|
||||
/**
|
||||
* manages a single nginx host
|
||||
*/
|
||||
export class NginxHost {
|
||||
hostName: string; // the host name e.g. domain name
|
||||
type: hostTypes;
|
||||
destination: string;
|
||||
configString: string; // the actual host config file as string
|
||||
constructor(optionsArg:hostConfigData) {
|
||||
this.hostName = optionsArg.hostName;
|
||||
this.type = optionsArg.type;
|
||||
this.destination = optionsArg.destination;
|
||||
this.configString = snippets.getHostConfigString(optionsArg.hostName, optionsArg.destination);
|
||||
};
|
||||
deploy(certInstanceArg: plugins.cert.Cert) {
|
||||
let done = plugins.q.defer();
|
||||
let filePath = plugins.path.join(paths.nginxHostFileBase, this.hostName + ".conf");
|
||||
// writeConfig
|
||||
plugins.smartfile.memory.toFsSync(this.configString, filePath);
|
||||
// get cert
|
||||
certInstanceArg.getDomainCert(this.hostName)
|
||||
.then(done.resolve);
|
||||
return done.promise;
|
||||
};
|
||||
};
|
Reference in New Issue
Block a user