diff --git a/dist/index.d.ts b/dist/index.d.ts
index d287fe4..8123921 100644
--- a/dist/index.d.ts
+++ b/dist/index.d.ts
@@ -1,3 +1,3 @@
-export { NginxConfig } from "./smartnginx.classes.nginxconfig";
-export { NginxProcess } from "./smartnginx.classes.nginxprocess";
-export { NginxZone, zoneTypes } from "./smartnginx.classes.nginxzone";
+export * from "./smartnginx.classes.nginxconfig";
+export * from "./smartnginx.classes.nginxprocess";
+export * from "./smartnginx.classes.nginxhost";
diff --git a/dist/index.js b/dist/index.js
index 7cbddb2..2510a31 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -1,10 +1,9 @@
"use strict";
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
// classes
-var smartnginx_classes_nginxconfig_1 = require("./smartnginx.classes.nginxconfig");
-exports.NginxConfig = smartnginx_classes_nginxconfig_1.NginxConfig;
-var smartnginx_classes_nginxprocess_1 = require("./smartnginx.classes.nginxprocess");
-exports.NginxProcess = smartnginx_classes_nginxprocess_1.NginxProcess;
-var smartnginx_classes_nginxzone_1 = require("./smartnginx.classes.nginxzone");
-exports.NginxZone = smartnginx_classes_nginxzone_1.NginxZone;
-exports.zoneTypes = smartnginx_classes_nginxzone_1.zoneTypes;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsVUFBVTtBQUNWLCtDQUEwQixrQ0FBa0MsQ0FBQztBQUFyRCxtRUFBcUQ7QUFDN0QsZ0RBQTJCLG1DQUFtQyxDQUFDO0FBQXZELHNFQUF1RDtBQUMvRCw2Q0FBa0MsZ0NBQWdDLENBQUM7QUFBM0QsNkRBQVM7QUFBQyw2REFBaUQifQ==
\ No newline at end of file
+__export(require("./smartnginx.classes.nginxconfig"));
+__export(require("./smartnginx.classes.nginxprocess"));
+__export(require("./smartnginx.classes.nginxhost"));
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsVUFBVTtBQUNWLGlCQUFjLGtDQUFrQyxDQUFDLEVBQUE7QUFDakQsaUJBQWMsbUNBQW1DLENBQUMsRUFBQTtBQUNsRCxpQkFBYyxnQ0FBZ0MsQ0FBQyxFQUFBIn0=
\ No newline at end of file
diff --git a/dist/smartnginx.classes.nginxconfig.d.ts b/dist/smartnginx.classes.nginxconfig.d.ts
index 9b0a117..4dd7cd4 100644
--- a/dist/smartnginx.classes.nginxconfig.d.ts
+++ b/dist/smartnginx.classes.nginxconfig.d.ts
@@ -1,16 +1,19 @@
///
import * as plugins from "./smartnginx.plugins";
-import { NginxZone } from "./smartnginx.classes.nginxzone";
+import { NginxHost } from "./smartnginx.classes.nginxhost";
import { NginxProcess } from "./smartnginx.classes.nginxprocess";
+/**
+ * main class that manages a NginxInstance
+ */
export declare class NginxConfig {
- zones: NginxZone[];
+ hosts: NginxHost[];
cert: plugins.cert.Cert;
nginxProcess: NginxProcess;
isDeployed: boolean;
constructor(optionsArg: plugins.cert.ICertConstructorOptions);
- addZone(zoneArg: NginxZone): void;
- listZones(): NginxZone[];
- removeZones(zoneArg: NginxZone): void;
+ addHost(nginxHostArg: NginxHost): void;
+ listHosts(): NginxHost[];
+ removeHost(nginxHostArg: NginxHost): void;
clean(): void;
deploy(): plugins.q.Promise<{}>;
}
diff --git a/dist/smartnginx.classes.nginxconfig.js b/dist/smartnginx.classes.nginxconfig.js
index 74204a8..c95fcf5 100644
--- a/dist/smartnginx.classes.nginxconfig.js
+++ b/dist/smartnginx.classes.nginxconfig.js
@@ -4,9 +4,12 @@ const paths = require("./smartnginx.paths");
const snippets = require("./smartnginx.snippets");
const smartnginx_classes_nginxprocess_1 = require("./smartnginx.classes.nginxprocess");
let allConfigs = [];
+/**
+ * main class that manages a NginxInstance
+ */
class NginxConfig {
constructor(optionsArg) {
- this.zones = [];
+ this.hosts = [];
this.nginxProcess = new smartnginx_classes_nginxprocess_1.NginxProcess(this);
this.isDeployed = false;
this.cert = new plugins.cert.Cert({
@@ -18,24 +21,24 @@ class NginxConfig {
});
}
;
- // interact with Zones
- addZone(zoneArg) {
- this.zones.push(zoneArg);
+ // interact with Hosts
+ addHost(nginxHostArg) {
+ this.hosts.push(nginxHostArg);
}
- listZones() {
- return this.zones;
+ listHosts() {
+ return this.hosts;
}
;
- removeZones(zoneArg) {
+ removeHost(nginxHostArg) {
}
clean() {
- this.zones = [];
+ this.hosts = [];
}
- // handle deployment of zones
+ // handle deployment of hosts
deploy() {
let done = plugins.q.defer();
plugins.smartfile.fs.ensureDirSync(paths.nginxConfigBase);
- plugins.smartfile.fs.ensureDirSync(paths.nginxZoneBase);
+ plugins.smartfile.fs.ensureDirSync(paths.nginxHostFileBase);
plugins.smartfile.fs.ensureDirSync(paths.nginxCertBase);
for (let config of allConfigs) {
config.isDeployed = false;
@@ -44,15 +47,15 @@ class NginxConfig {
this.isDeployed = true;
// write base config
plugins.smartfile.memory.toFsSync(snippets.getBaseConfigString(), paths.nginxConfFile);
- // deploy zones
+ // deploy hosts
let promiseArray = [];
- for (let zone of this.zones) {
- let zoneDeployedPromise = zone.deploy(this.cert);
- zoneDeployedPromise.then(() => {
- plugins.beautylog.info(`Zone ${zone.zoneName} deployed!`);
+ for (let host of this.hosts) {
+ let hostDeployedPromise = host.deploy(this.cert);
+ hostDeployedPromise.then(() => {
+ plugins.beautylog.info(`Host ${host.hostName} deployed!`);
this.nginxProcess.reloadConfig();
});
- promiseArray.push(zoneDeployedPromise);
+ promiseArray.push(hostDeployedPromise);
}
;
plugins.q.all(promiseArray)
@@ -65,4 +68,4 @@ class NginxConfig {
}
exports.NginxConfig = NginxConfig;
;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSxzQkFBc0IsQ0FBQyxDQUFBO0FBQ2hELE1BQVksS0FBSyxXQUFNLG9CQUFvQixDQUFDLENBQUE7QUFDNUMsTUFBWSxRQUFRLFdBQU0sdUJBQXVCLENBQUMsQ0FBQTtBQUVsRCxrREFBNkIsbUNBQW1DLENBQUMsQ0FBQTtBQUNqRSxJQUFJLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0FBRW5DO0lBS0ksWUFBWSxVQUFnRDtRQUo1RCxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUV4QixpQkFBWSxHQUFpQixJQUFJLDhDQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDOUIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1lBQzNCLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztZQUN2QixNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDM0IsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO1lBQ3ZDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtTQUNoQyxDQUFDLENBQUM7SUFDUCxDQUFDOztJQUVELHNCQUFzQjtJQUN0QixPQUFPLENBQUMsT0FBa0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELFNBQVM7UUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDOztJQUNELFdBQVcsQ0FBQyxPQUFrQjtJQUU5QixDQUFDO0lBQ0QsS0FBSztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCw2QkFBNkI7SUFDN0IsTUFBTTtRQUNGLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsR0FBRyxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLG9CQUFvQjtRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQzdCLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxFQUM5QixLQUFLLENBQUMsYUFBYSxDQUN0QixDQUFDO1FBQ0YsZUFBZTtRQUNmLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMxQixJQUFJLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxZQUFZLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUEsQ0FBQztRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUN0QixJQUFJLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFUCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztBQUNMLENBQUM7QUE1RFksbUJBQVcsY0E0RHZCLENBQUE7QUFBQSxDQUFDIn0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSxzQkFBc0IsQ0FBQyxDQUFBO0FBQ2hELE1BQVksS0FBSyxXQUFNLG9CQUFvQixDQUFDLENBQUE7QUFDNUMsTUFBWSxRQUFRLFdBQU0sdUJBQXVCLENBQUMsQ0FBQTtBQUVsRCxrREFBNkIsbUNBQW1DLENBQUMsQ0FBQTtBQUNqRSxJQUFJLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0FBRW5DOztHQUVHO0FBQ0g7SUFLSSxZQUFZLFVBQWdEO1FBSjVELFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBRXhCLGlCQUFZLEdBQWlCLElBQUksOENBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM5QixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87WUFDM0IsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO1lBQ3ZCLE1BQU0sRUFBRSxLQUFLLENBQUMsYUFBYTtZQUMzQixhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWE7WUFDdkMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO1NBQ2hDLENBQUMsQ0FBQztJQUNQLENBQUM7O0lBRUQsc0JBQXNCO0lBQ3RCLE9BQU8sQ0FBQyxZQUF1QjtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsU0FBUztRQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7O0lBQ0QsVUFBVSxDQUFDLFlBQXVCO0lBRWxDLENBQUM7SUFDRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUNELDZCQUE2QjtJQUM3QixNQUFNO1FBQ0YsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1RCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDNUIsTUFBTSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQztRQUFBLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixvQkFBb0I7UUFDcEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUM3QixRQUFRLENBQUMsbUJBQW1CLEVBQUUsRUFDOUIsS0FBSyxDQUFDLGFBQWEsQ0FDdEIsQ0FBQztRQUNGLGVBQWU7UUFDZixJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEIsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUIsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsWUFBWSxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7WUFDSCxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUFBLENBQUM7UUFDRixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDdEIsSUFBSSxDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBRVAsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7QUFDTCxDQUFDO0FBNURZLG1CQUFXLGNBNER2QixDQUFBO0FBQUEsQ0FBQyJ9
\ No newline at end of file
diff --git a/dist/smartnginx.classes.nginxhost.d.ts b/dist/smartnginx.classes.nginxhost.d.ts
new file mode 100644
index 0000000..4f2015c
--- /dev/null
+++ b/dist/smartnginx.classes.nginxhost.d.ts
@@ -0,0 +1,25 @@
+///
+import * as plugins from "./smartnginx.plugins";
+/**
+ * the host config data that NginxHost needs to create a valid instance
+ */
+export interface hostConfigData {
+ hostName: string;
+ type: hostTypes;
+ destination: string;
+}
+export declare enum hostTypes {
+ reverseProxy = 0,
+ static = 1,
+}
+/**
+ * manages a single nginx host
+ */
+export declare class NginxHost {
+ hostName: string;
+ type: hostTypes;
+ destination: string;
+ configString: string;
+ constructor(optionsArg: hostConfigData);
+ deploy(certInstanceArg: plugins.cert.Cert): plugins.q.Promise<{}>;
+}
diff --git a/dist/smartnginx.classes.nginxhost.js b/dist/smartnginx.classes.nginxhost.js
new file mode 100644
index 0000000..772f85e
--- /dev/null
+++ b/dist/smartnginx.classes.nginxhost.js
@@ -0,0 +1,35 @@
+"use strict";
+const plugins = require("./smartnginx.plugins");
+const paths = require("./smartnginx.paths");
+const snippets = require("./smartnginx.snippets");
+(function (hostTypes) {
+ hostTypes[hostTypes["reverseProxy"] = 0] = "reverseProxy";
+ hostTypes[hostTypes["static"] = 1] = "static";
+})(exports.hostTypes || (exports.hostTypes = {}));
+var hostTypes = exports.hostTypes;
+/**
+ * manages a single nginx host
+ */
+class NginxHost {
+ constructor(optionsArg) {
+ this.hostName = optionsArg.hostName;
+ this.type = optionsArg.type;
+ this.destination = optionsArg.destination;
+ this.configString = snippets.getHostConfigString(optionsArg.hostName, optionsArg.destination);
+ }
+ ;
+ deploy(certInstanceArg) {
+ 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;
+ }
+ ;
+}
+exports.NginxHost = NginxHost;
+;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54aG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguY2xhc3Nlcy5uZ2lueGhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsTUFBWSxLQUFLLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUM1QyxNQUFZLFFBQVEsV0FBTSx1QkFLMUIsQ0FBQyxDQUxnRDtBQVdqRCxXQUFZLFNBQVM7SUFDakIseURBQVksQ0FBQTtJQUNaLDZDQUFNLENBQUE7QUFDVixDQUFDLEVBSFcsaUJBQVMsS0FBVCxpQkFBUyxRQUdwQjtBQUhELElBQVksU0FBUyxHQUFULGlCQUdYLENBQUE7QUFFRDs7R0FFRztBQUNIO0lBS0ksWUFBWSxVQUF5QjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRyxDQUFDOztJQUNELE1BQU0sQ0FBQyxlQUFrQztRQUNyQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ25GLGNBQWM7UUFDZCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvRCxXQUFXO1FBQ1gsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7QUFDTCxDQUFDO0FBckJZLGlCQUFTLFlBcUJyQixDQUFBO0FBQUEsQ0FBQyJ9
\ No newline at end of file
diff --git a/dist/smartnginx.classes.nginxprocess.d.ts b/dist/smartnginx.classes.nginxprocess.d.ts
index 2596ca8..8e301c9 100644
--- a/dist/smartnginx.classes.nginxprocess.d.ts
+++ b/dist/smartnginx.classes.nginxprocess.d.ts
@@ -2,6 +2,9 @@
///
import * as plugins from "./smartnginx.plugins";
import { NginxConfig } from "./smartnginx.classes.nginxconfig";
+/**
+ * manages a nginxprocess for an NginxConfig
+ */
export declare class NginxProcess {
started: boolean;
nginxConfig: NginxConfig;
diff --git a/dist/smartnginx.classes.nginxprocess.js b/dist/smartnginx.classes.nginxprocess.js
index 74b96bd..aa18cc5 100644
--- a/dist/smartnginx.classes.nginxprocess.js
+++ b/dist/smartnginx.classes.nginxprocess.js
@@ -1,6 +1,9 @@
"use strict";
const plugins = require("./smartnginx.plugins");
const paths = require("./smartnginx.paths");
+/**
+ * manages a nginxprocess for an NginxConfig
+ */
class NginxProcess {
constructor(nginxConfigArg) {
this.started = false;
@@ -73,4 +76,4 @@ class NginxProcess {
;
}
exports.NginxProcess = NginxProcess;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54cHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguY2xhc3Nlcy5uZ2lueHByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsTUFBWSxLQUFLLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUk1QztJQUlJLFlBQVksY0FBYztRQUgxQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBSXJCLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDO0lBQ3RDLENBQUM7O0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxVQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTTtnQkFDakgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQUEsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUFBLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7O0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixFQUFFLENBQUEsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFBLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUFBLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO1FBQy9ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7O0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0EsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7O0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsTUFBTSxDQUFDO0lBQ1gsQ0FBQzs7QUFDTCxDQUFDO0FBakVZLG9CQUFZLGVBaUV4QixDQUFBIn0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54cHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguY2xhc3Nlcy5uZ2lueHByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsTUFBWSxLQUFLLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUk1Qzs7R0FFRztBQUNIO0lBSUksWUFBWSxjQUFjO1FBSDFCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFJckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7SUFDdEMsQ0FBQzs7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7WUFDOUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxDQUFDLGFBQWEsRUFBRSxFQUFFLFVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNO2dCQUNqSCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztnQkFBQSxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDUixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLEVBQUUsQ0FBQSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLENBQUEsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQUEsQ0FBQztRQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLHlDQUF5QyxDQUFDLENBQUE7UUFDL0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDQSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDL0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFBQSxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDRCxNQUFNLENBQUM7SUFDWCxDQUFDOztBQUNMLENBQUM7QUFqRVksb0JBQVksZUFpRXhCLENBQUEifQ==
\ No newline at end of file
diff --git a/dist/smartnginx.classes.nginxzone.d.ts b/dist/smartnginx.classes.nginxzone.d.ts
deleted file mode 100644
index 988398c..0000000
--- a/dist/smartnginx.classes.nginxzone.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-///
-import * as plugins from "./smartnginx.plugins";
-export declare enum zoneTypes {
- reverseProxy = 0,
- static = 1,
-}
-export declare class NginxZone {
- zoneName: string;
- type: zoneTypes;
- destination: string;
- configString: string;
- constructor(optionsArg: {
- zoneName: string;
- type: zoneTypes;
- destination: string;
- });
- deploy(certInstanceArg: plugins.cert.Cert): plugins.q.Promise<{}>;
-}
diff --git a/dist/smartnginx.classes.nginxzone.js b/dist/smartnginx.classes.nginxzone.js
deleted file mode 100644
index 38dbc92..0000000
--- a/dist/smartnginx.classes.nginxzone.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-const plugins = require("./smartnginx.plugins");
-const paths = require("./smartnginx.paths");
-const snippets = require("./smartnginx.snippets");
-(function (zoneTypes) {
- zoneTypes[zoneTypes["reverseProxy"] = 0] = "reverseProxy";
- zoneTypes[zoneTypes["static"] = 1] = "static";
-})(exports.zoneTypes || (exports.zoneTypes = {}));
-var zoneTypes = exports.zoneTypes;
-class NginxZone {
- constructor(optionsArg) {
- this.zoneName = optionsArg.zoneName;
- this.type = optionsArg.type;
- this.destination = optionsArg.destination;
- this.configString = snippets.getZoneConfigString(optionsArg.zoneName, optionsArg.destination);
- }
- ;
- deploy(certInstanceArg) {
- let done = plugins.q.defer();
- let filePath = plugins.path.join(paths.nginxZoneBase, this.zoneName + ".conf");
- // writeConfig
- plugins.smartfile.memory.toFsSync(this.configString, filePath);
- // get cert
- certInstanceArg.getDomainCert(this.zoneName)
- .then(done.resolve);
- return done.promise;
- }
- ;
-}
-exports.NginxZone = NginxZone;
-;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54em9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguY2xhc3Nlcy5uZ2lueHpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsTUFBWSxLQUFLLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUM1QyxNQUFZLFFBQVEsV0FBTSx1QkFDMUIsQ0FBQyxDQURnRDtBQUNqRCxXQUFZLFNBQVM7SUFDakIseURBQVksQ0FBQTtJQUNaLDZDQUFNLENBQUE7QUFDVixDQUFDLEVBSFcsaUJBQVMsS0FBVCxpQkFBUyxRQUdwQjtBQUhELElBQVksU0FBUyxHQUFULGlCQUdYLENBQUE7QUFFRDtJQUtJLFlBQVksVUFJWDtRQUNHLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7O0lBQ0QsTUFBTSxDQUFDLGVBQWtDO1FBQ3JDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQy9FLGNBQWM7UUFDZCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvRCxXQUFXO1FBQ1gsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7QUFDTCxDQUFDO0FBekJZLGlCQUFTLFlBeUJyQixDQUFBO0FBQUEsQ0FBQyJ9
\ No newline at end of file
diff --git a/dist/smartnginx.paths.d.ts b/dist/smartnginx.paths.d.ts
index 24503d8..2cdf8e9 100644
--- a/dist/smartnginx.paths.d.ts
+++ b/dist/smartnginx.paths.d.ts
@@ -1,5 +1,5 @@
export declare let packageBase: string;
export declare let nginxConfigBase: string;
-export declare let nginxZoneBase: string;
+export declare let nginxHostFileBase: string;
export declare let nginxCertBase: string;
export declare let nginxConfFile: string;
diff --git a/dist/smartnginx.paths.js b/dist/smartnginx.paths.js
index 50dd9fd..88b6452 100644
--- a/dist/smartnginx.paths.js
+++ b/dist/smartnginx.paths.js
@@ -3,8 +3,8 @@ const plugins = require("./smartnginx.plugins");
// directories
exports.packageBase = plugins.path.join(__dirname, "../");
exports.nginxConfigBase = plugins.path.join(exports.packageBase, "nginxconfig");
-exports.nginxZoneBase = plugins.path.join(exports.nginxConfigBase, "zones");
+exports.nginxHostFileBase = plugins.path.join(exports.nginxConfigBase, "hosts");
exports.nginxCertBase = plugins.path.join(exports.nginxConfigBase, "cert");
// files
exports.nginxConfFile = plugins.path.join(exports.nginxConfigBase, "nginx.conf");
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5wYXRocy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbngucGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUd6QixDQUFDLENBSDhDO0FBRS9DLGNBQWM7QUFDSCxtQkFBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUNqRCx1QkFBZSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFXLEVBQUMsYUFBYSxDQUFDLENBQUM7QUFDL0QscUJBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBZSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNELHFCQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQztBQUVyRSxRQUFRO0FBQ0cscUJBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBZSxFQUFDLFlBQVksQ0FBQyxDQUFDIn0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5wYXRocy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbngucGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUd6QixDQUFDLENBSDhDO0FBRS9DLGNBQWM7QUFDSCxtQkFBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUNqRCx1QkFBZSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFXLEVBQUMsYUFBYSxDQUFDLENBQUM7QUFDL0QseUJBQWlCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQWUsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUMvRCxxQkFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUFlLEVBQUMsTUFBTSxDQUFDLENBQUM7QUFFckUsUUFBUTtBQUNHLHFCQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQWUsRUFBQyxZQUFZLENBQUMsQ0FBQyJ9
\ No newline at end of file
diff --git a/dist/smartnginx.snippets.d.ts b/dist/smartnginx.snippets.d.ts
index cb08961..2150546 100644
--- a/dist/smartnginx.snippets.d.ts
+++ b/dist/smartnginx.snippets.d.ts
@@ -1,2 +1,2 @@
export declare let getBaseConfigString: () => string;
-export declare let getZoneConfigString: (zoneNameArg: string, destinationIpArg: string) => string;
+export declare let getHostConfigString: (hostNameArg: string, destinationIpArg: string) => string;
diff --git a/dist/smartnginx.snippets.js b/dist/smartnginx.snippets.js
index 55e6153..63fb57a 100644
--- a/dist/smartnginx.snippets.js
+++ b/dist/smartnginx.snippets.js
@@ -70,26 +70,26 @@ exports.getBaseConfigString = () => {
`);
return baseConfig;
};
-exports.getZoneConfigString = (zoneNameArg, destinationIpArg) => {
- let zoneConfig = plugins.smartstring.indent.normalize(`
- upstream ${zoneNameArg} {
+exports.getHostConfigString = (hostNameArg, destinationIpArg) => {
+ let hostConfig = plugins.smartstring.indent.normalize(`
+ upstream ${hostNameArg} {
server ${destinationIpArg};
}
server {
listen *:80 ;
- server_name ${zoneNameArg};
- rewrite ^ https://${zoneNameArg}$request_uri? permanent;
+ server_name ${hostNameArg};
+ rewrite ^ https://${hostNameArg}$request_uri? permanent;
}
server {
listen *:443 ssl;
- server_name ${zoneNameArg};
- ssl_certificate /LE_CERTS/${zoneNameArg}/fullchain.pem;
- ssl_certificate_key /LE_CERTS/${zoneNameArg}/privkey.pem;
+ server_name ${hostNameArg};
+ ssl_certificate /LE_CERTS/${hostNameArg}/fullchain.pem;
+ ssl_certificate_key /LE_CERTS/${hostNameArg}/privkey.pem;
location / {
- proxy_pass http://${zoneNameArg};
+ proxy_pass http://${hostNameArg};
include /etc/nginx/proxy_params;
}
location ~ /\.git {
@@ -97,6 +97,6 @@ exports.getZoneConfigString = (zoneNameArg, destinationIpArg) => {
}
}
`);
- return zoneConfig;
+ return hostConfig;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5zbmlwcGV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguc25pcHBldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDckMsMkJBQW1CLEdBQUc7SUFDaEMsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrRXJELENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUM7QUFDbkIsQ0FBQyxDQUFBO0FBR1UsMkJBQW1CLEdBQUcsQ0FBQyxXQUFrQixFQUFDLGdCQUF1QjtJQUMzRSxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7YUFDMUMsV0FBVztZQUNaLGdCQUFnQjs7Ozs7aUJBS1gsV0FBVzs4QkFDRSxXQUFXOzs7OztpQkFLeEIsV0FBVzsrQkFDRyxXQUFXO21DQUNQLFdBQVc7Ozt3QkFHdEIsV0FBVzs7Ozs7OztFQU9qQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDO0FBQ25CLENBQUMsQ0FBQyJ9
\ No newline at end of file
diff --git a/test/test.js b/test/test.js
index a2aac27..c7a5460 100644
--- a/test/test.js
+++ b/test/test.js
@@ -12,17 +12,17 @@ describe("smartnginx", function () {
let testNginxZone02;
describe("NginxZone", function () {
it(`"new NginxZone()" should produce an instance of NginxConfig`, function () {
- testNginxZone01 = new smartnginx.NginxZone({
- zoneName: "test100.bleu.de",
- type: smartnginx.zoneTypes.reverseProxy,
+ testNginxZone01 = new smartnginx.NginxHost({
+ hostName: "test100.bleu.de",
+ type: smartnginx.hostTypes.reverseProxy,
destination: "192.192.192.191"
});
- testNginxZone02 = new smartnginx.NginxZone({
- zoneName: "test102.bleu.de",
- type: smartnginx.zoneTypes.reverseProxy,
+ testNginxZone02 = new smartnginx.NginxHost({
+ hostName: "test102.bleu.de",
+ type: smartnginx.hostTypes.reverseProxy,
destination: "192.192.192.192"
});
- testNginxZone01.should.be.instanceof(smartnginx.NginxZone);
+ testNginxZone01.should.be.instanceof(smartnginx.NginxHost);
console.log(testNginxZone01.configString);
});
});
@@ -38,8 +38,8 @@ describe("smartnginx", function () {
});
describe(".addZone()", function () {
it("should add a zone to NginxConfig Object", function () {
- testNginxConfig.addZone(testNginxZone01);
- testNginxConfig.addZone(testNginxZone02);
+ testNginxConfig.addHost(testNginxZone01);
+ testNginxConfig.addHost(testNginxZone02);
});
});
describe(".deploy()", function () {
diff --git a/test/test.ts b/test/test.ts
index 9ed9ca2..078c117 100644
--- a/test/test.ts
+++ b/test/test.ts
@@ -8,21 +8,21 @@ import * as smartnginx from "../dist/index";
let testQenv = new Qenv(process.cwd(),path.join(process.cwd(),".nogit"));
describe("smartnginx",function(){
let testNginxConfig:smartnginx.NginxConfig;
- let testNginxZone01:smartnginx.NginxZone;
- let testNginxZone02:smartnginx.NginxZone;
+ let testNginxZone01:smartnginx.NginxHost;
+ let testNginxZone02:smartnginx.NginxHost;
describe("NginxZone",function(){
it(`"new NginxZone()" should produce an instance of NginxConfig`,function(){
- testNginxZone01 = new smartnginx.NginxZone({
- zoneName:"test100.bleu.de",
- type:smartnginx.zoneTypes.reverseProxy,
+ testNginxZone01 = new smartnginx.NginxHost({
+ hostName:"test100.bleu.de",
+ type:smartnginx.hostTypes.reverseProxy,
destination:"192.192.192.191"
});
- testNginxZone02 = new smartnginx.NginxZone({
- zoneName:"test102.bleu.de",
- type:smartnginx.zoneTypes.reverseProxy,
+ testNginxZone02 = new smartnginx.NginxHost({
+ hostName:"test102.bleu.de",
+ type:smartnginx.hostTypes.reverseProxy,
destination:"192.192.192.192"
});
- testNginxZone01.should.be.instanceof(smartnginx.NginxZone);
+ testNginxZone01.should.be.instanceof(smartnginx.NginxHost);
console.log(testNginxZone01.configString);
});
});
@@ -38,8 +38,8 @@ describe("smartnginx",function(){
});
describe(".addZone()",function(){
it("should add a zone to NginxConfig Object",function(){
- testNginxConfig.addZone(testNginxZone01);
- testNginxConfig.addZone(testNginxZone02);
+ testNginxConfig.addHost(testNginxZone01);
+ testNginxConfig.addHost(testNginxZone02);
})
});
describe(".deploy()",function(){
diff --git a/ts/index.ts b/ts/index.ts
index 8ccc1c3..ccebe00 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,6 +1,6 @@
import * as plugins from "./smartnginx.plugins";
// classes
-export {NginxConfig} from "./smartnginx.classes.nginxconfig";
-export {NginxProcess} from "./smartnginx.classes.nginxprocess";
-export {NginxZone,zoneTypes} from "./smartnginx.classes.nginxzone";
\ No newline at end of file
+export * from "./smartnginx.classes.nginxconfig";
+export * from "./smartnginx.classes.nginxprocess";
+export * from "./smartnginx.classes.nginxhost";
\ No newline at end of file
diff --git a/ts/smartnginx.classes.nginxconfig.ts b/ts/smartnginx.classes.nginxconfig.ts
index c02fc55..68cc582 100644
--- a/ts/smartnginx.classes.nginxconfig.ts
+++ b/ts/smartnginx.classes.nginxconfig.ts
@@ -1,12 +1,15 @@
import * as plugins from "./smartnginx.plugins";
import * as paths from "./smartnginx.paths";
import * as snippets from "./smartnginx.snippets";
-import { NginxZone } from "./smartnginx.classes.nginxzone";
+import { NginxHost } from "./smartnginx.classes.nginxhost";
import { NginxProcess } from "./smartnginx.classes.nginxprocess";
let allConfigs: NginxConfig[] = [];
+/**
+ * main class that manages a NginxInstance
+ */
export class NginxConfig {
- zones: NginxZone[] = [];
+ hosts: NginxHost[] = [];
cert: plugins.cert.Cert; // the Cert Instance from which the config gets its certificates
nginxProcess: NginxProcess = new NginxProcess(this);
isDeployed: boolean = false;
@@ -20,24 +23,24 @@ export class NginxConfig {
});
};
- // interact with Zones
- addZone(zoneArg: NginxZone){
- this.zones.push(zoneArg);
+ // interact with Hosts
+ addHost(nginxHostArg: NginxHost){
+ this.hosts.push(nginxHostArg);
}
- listZones(): NginxZone[]{
- return this.zones;
+ listHosts(): NginxHost[]{
+ return this.hosts;
};
- removeZones(zoneArg: NginxZone) {
+ removeHost(nginxHostArg: NginxHost) {
}
clean() {
- this.zones = [];
+ this.hosts = [];
}
- // handle deployment of zones
+ // handle deployment of hosts
deploy() {
let done = plugins.q.defer();
plugins.smartfile.fs.ensureDirSync(paths.nginxConfigBase);
- plugins.smartfile.fs.ensureDirSync(paths.nginxZoneBase);
+ plugins.smartfile.fs.ensureDirSync(paths.nginxHostFileBase);
plugins.smartfile.fs.ensureDirSync(paths.nginxCertBase);
for (let config of allConfigs) {
config.isDeployed = false;
@@ -48,15 +51,15 @@ export class NginxConfig {
snippets.getBaseConfigString(),
paths.nginxConfFile
);
- // deploy zones
+ // deploy hosts
let promiseArray = [];
- for (let zone of this.zones) {
- let zoneDeployedPromise = zone.deploy(this.cert);
- zoneDeployedPromise.then(() => {
- plugins.beautylog.info(`Zone ${zone.zoneName} deployed!`);
+ for (let host of this.hosts) {
+ let hostDeployedPromise = host.deploy(this.cert);
+ hostDeployedPromise.then(() => {
+ plugins.beautylog.info(`Host ${host.hostName} deployed!`);
this.nginxProcess.reloadConfig();
});
- promiseArray.push(zoneDeployedPromise);
+ promiseArray.push(hostDeployedPromise);
};
plugins.q.all(promiseArray)
.then(() => {
diff --git a/ts/smartnginx.classes.nginxhost.ts b/ts/smartnginx.classes.nginxhost.ts
new file mode 100644
index 0000000..822f556
--- /dev/null
+++ b/ts/smartnginx.classes.nginxhost.ts
@@ -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;
+ };
+};
\ No newline at end of file
diff --git a/ts/smartnginx.classes.nginxprocess.ts b/ts/smartnginx.classes.nginxprocess.ts
index b65a1a7..c644219 100644
--- a/ts/smartnginx.classes.nginxprocess.ts
+++ b/ts/smartnginx.classes.nginxprocess.ts
@@ -1,8 +1,11 @@
import * as plugins from "./smartnginx.plugins";
import * as paths from "./smartnginx.paths";
import { NginxConfig } from "./smartnginx.classes.nginxconfig";
-import { NginxZone } from "./smartnginx.classes.nginxzone";
+import { NginxHost } from "./smartnginx.classes.nginxhost";
+/**
+ * manages a nginxprocess for an NginxConfig
+ */
export class NginxProcess {
started: boolean = false;
nginxConfig:NginxConfig;
@@ -37,7 +40,7 @@ export class NginxProcess {
reloadConfig(){
let done = plugins.q.defer();
if(this.started == false){
- this.start()
+ this.start();
} else {
plugins.shelljs.exec("nginx -s reload");
};
diff --git a/ts/smartnginx.classes.nginxzone.ts b/ts/smartnginx.classes.nginxzone.ts
deleted file mode 100644
index 2dab206..0000000
--- a/ts/smartnginx.classes.nginxzone.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import * as plugins from "./smartnginx.plugins";
-import * as paths from "./smartnginx.paths";
-import * as snippets from "./smartnginx.snippets"
-export enum zoneTypes {
- reverseProxy,
- static
-}
-
-export class NginxZone {
- zoneName: string; // the zone name e.g. domain name
- type: zoneTypes;
- destination: string;
- configString: string; // the actual zone config file as string
- constructor(optionsArg: {
- zoneName: string,
- type: zoneTypes,
- destination: string
- }) {
- this.zoneName = optionsArg.zoneName;
- this.type = optionsArg.type;
- this.destination = optionsArg.destination;
- this.configString = snippets.getZoneConfigString(optionsArg.zoneName, optionsArg.destination);
- };
- deploy(certInstanceArg: plugins.cert.Cert) {
- let done = plugins.q.defer();
- let filePath = plugins.path.join(paths.nginxZoneBase, this.zoneName + ".conf");
- // writeConfig
- plugins.smartfile.memory.toFsSync(this.configString, filePath);
- // get cert
- certInstanceArg.getDomainCert(this.zoneName)
- .then(done.resolve);
- return done.promise;
- };
-};
\ No newline at end of file
diff --git a/ts/smartnginx.paths.ts b/ts/smartnginx.paths.ts
index 4f3d35f..aacc0e2 100644
--- a/ts/smartnginx.paths.ts
+++ b/ts/smartnginx.paths.ts
@@ -3,7 +3,7 @@ import * as plugins from "./smartnginx.plugins"
// directories
export let packageBase = plugins.path.join(__dirname,"../");
export let nginxConfigBase = plugins.path.join(packageBase,"nginxconfig");
-export let nginxZoneBase = plugins.path.join(nginxConfigBase,"zones");
+export let nginxHostFileBase = plugins.path.join(nginxConfigBase,"hosts");
export let nginxCertBase = plugins.path.join(nginxConfigBase,"cert");
// files
diff --git a/ts/smartnginx.snippets.ts b/ts/smartnginx.snippets.ts
index efdd989..0be7be0 100644
--- a/ts/smartnginx.snippets.ts
+++ b/ts/smartnginx.snippets.ts
@@ -71,26 +71,26 @@ export let getBaseConfigString = () => {
}
-export let getZoneConfigString = (zoneNameArg:string,destinationIpArg:string) => {
- let zoneConfig = plugins.smartstring.indent.normalize(`
- upstream ${zoneNameArg} {
+export let getHostConfigString = (hostNameArg:string,destinationIpArg:string) => {
+ let hostConfig = plugins.smartstring.indent.normalize(`
+ upstream ${hostNameArg} {
server ${destinationIpArg};
}
server {
listen *:80 ;
- server_name ${zoneNameArg};
- rewrite ^ https://${zoneNameArg}$request_uri? permanent;
+ server_name ${hostNameArg};
+ rewrite ^ https://${hostNameArg}$request_uri? permanent;
}
server {
listen *:443 ssl;
- server_name ${zoneNameArg};
- ssl_certificate /LE_CERTS/${zoneNameArg}/fullchain.pem;
- ssl_certificate_key /LE_CERTS/${zoneNameArg}/privkey.pem;
+ server_name ${hostNameArg};
+ ssl_certificate /LE_CERTS/${hostNameArg}/fullchain.pem;
+ ssl_certificate_key /LE_CERTS/${hostNameArg}/privkey.pem;
location / {
- proxy_pass http://${zoneNameArg};
+ proxy_pass http://${hostNameArg};
include /etc/nginx/proxy_params;
}
location ~ /\.git {
@@ -98,6 +98,6 @@ export let getZoneConfigString = (zoneNameArg:string,destinationIpArg:string) =>
}
}
`);
- return zoneConfig;
+ return hostConfig;
};