From c3c2ab776df6080a98de8feab0619d4c046e7914 Mon Sep 17 00:00:00 2001 From: PhilKunz Date: Tue, 2 Aug 2016 15:32:06 +0200 Subject: [PATCH] consolidate naming and start exporting interfaces --- dist/index.d.ts | 6 ++-- dist/index.js | 15 ++++---- dist/smartnginx.classes.nginxconfig.d.ts | 13 ++++--- dist/smartnginx.classes.nginxconfig.js | 37 ++++++++++--------- dist/smartnginx.classes.nginxhost.d.ts | 25 +++++++++++++ dist/smartnginx.classes.nginxhost.js | 35 ++++++++++++++++++ dist/smartnginx.classes.nginxprocess.d.ts | 3 ++ dist/smartnginx.classes.nginxprocess.js | 5 ++- dist/smartnginx.classes.nginxzone.d.ts | 18 ---------- dist/smartnginx.classes.nginxzone.js | 32 ----------------- dist/smartnginx.paths.d.ts | 2 +- dist/smartnginx.paths.js | 4 +-- dist/smartnginx.snippets.d.ts | 2 +- dist/smartnginx.snippets.js | 20 +++++------ test/test.js | 18 +++++----- test/test.ts | 22 ++++++------ ts/index.ts | 6 ++-- ts/smartnginx.classes.nginxconfig.ts | 37 ++++++++++--------- ts/smartnginx.classes.nginxhost.ts | 43 +++++++++++++++++++++++ ts/smartnginx.classes.nginxprocess.ts | 7 ++-- ts/smartnginx.classes.nginxzone.ts | 34 ------------------ ts/smartnginx.paths.ts | 2 +- ts/smartnginx.snippets.ts | 20 +++++------ 23 files changed, 221 insertions(+), 185 deletions(-) create mode 100644 dist/smartnginx.classes.nginxhost.d.ts create mode 100644 dist/smartnginx.classes.nginxhost.js delete mode 100644 dist/smartnginx.classes.nginxzone.d.ts delete mode 100644 dist/smartnginx.classes.nginxzone.js create mode 100644 ts/smartnginx.classes.nginxhost.ts delete mode 100644 ts/smartnginx.classes.nginxzone.ts 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; };