consolidate naming and start exporting interfaces

This commit is contained in:
2016-08-02 15:32:06 +02:00
parent d8a4c3d088
commit c3c2ab776d
23 changed files with 221 additions and 185 deletions

View 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;
};
};