deep-package-manager
Version:
DEEP Package Manager
123 lines (92 loc) • 3.13 kB
JavaScript
/**
* Created by AlexanderC on 2/11/16.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Injector = undefined;
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _GTMDriver = require('./Driver/GTMDriver');
var _DeepConfigDriver = require('./Driver/DeepConfigDriver');
var _DeployIdDriver = require('./Driver/DeployIdDriver');
var _RootAssetsDriver = require('./Driver/RootAssetsDriver');
var _PageLoaderDriver = require('./Driver/PageLoaderDriver');
var _VersionDriver = require('./Driver/VersionDriver');
var _FaviconDriver = require('./Driver/FaviconDriver');
var _DeepEnvPlaceholderDriver = require('./Driver/DeepEnvPlaceholderDriver');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class Injector {
/**
* @param {String} htmlContent
*/
constructor(htmlContent) {
this._htmlContent = htmlContent;
}
/**
* @param {String} htmlFile
* @param {Object|null} deepConfig
* @param {String|null} gtmContainerId
* @param {Object} microservices
* @param {Object|null} pageLoader
* @param {String|null} version
* @param {String|null} favicon
* @param {Onject|null} workingMicroserviceConfig
*/
static fileInjectAll(htmlFile, deepConfig = null, gtmContainerId = null, microservices = {}, pageLoader = null, version = null, favicon = null, workingMicroserviceConfig = null) {
let drivers = [];
if (deepConfig) {
drivers.push(new _DeepConfigDriver.DeepConfigDriver(deepConfig));
drivers.push(new _DeployIdDriver.DeployIdDriver(deepConfig.deployId));
}
if (gtmContainerId) {
drivers.push(new _GTMDriver.GTMDriver(gtmContainerId));
}
if (microservices) {
drivers.push(new _RootAssetsDriver.RootAssetsDriver(microservices));
}
if (pageLoader && pageLoader.src && microservices) {
drivers.push(new _PageLoaderDriver.PageLoaderDriver(pageLoader, microservices));
}
if (favicon) {
drivers.push(new _FaviconDriver.FaviconDriver(favicon, microservices));
}
if (version) {
drivers.push(new _VersionDriver.VersionDriver(version));
}
if (workingMicroserviceConfig) {
drivers.push(new _DeepEnvPlaceholderDriver.DeepEnvPlaceholderDriver(workingMicroserviceConfig));
}
if (drivers.length <= 0) {
return;
}
Injector.fileInject(htmlFile, ...drivers);
}
/**
* @param {String} htmlFile
* @param {AbstractDriver|GTMDriver|*} drivers
*/
static fileInject(htmlFile, ...drivers) {
let injector = new Injector(_fs2.default.readFileSync(htmlFile).toString());
_fs2.default.writeFileSync(htmlFile, injector.inject(...drivers));
}
/**
* @returns {String}
*/
get rawHtmlContent() {
return this._htmlContent;
}
/**
* @param {AbstractDriver[]|GTMDriver[]|*} drivers
* @returns {String|*}
*/
inject(...drivers) {
let htmlContent = this._htmlContent;
drivers.forEach(driver => {
htmlContent = driver.inject(htmlContent);
});
return htmlContent;
}
}
exports.Injector = Injector;