eureka-plugins
Version:
Eureka Bridge for adding Plugins
89 lines • 9.65 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = __importDefault(require("path"));
var fs_1 = __importDefault(require("fs"));
var processPath = process.cwd();
/**
* Injector resolver for plugins that have dependencies
*/
var InjectorResolver = /** @class */ (function () {
/**
* Constructor
* @param onResolve On resolve function (internal)
* @param dependencyRef The dependency resolver for chaining
*/
function InjectorResolver(onResolve, dependencyRef) {
this.onResolve = onResolve;
this.chainDependencyRef = dependencyRef;
}
/**
* Resolve with a package module (that has installed in parent project)
* @param packageName package name to require
*/
InjectorResolver.prototype.withPackage = function (packageName) {
try {
this.onResolve(require(packageName));
return this.chainDependencyRef;
}
catch (ex) {
throw new Error("the package " + packageName + " doesn't exist in the parent project");
}
};
/**
* Resolve with a stream file (Buffer)
* @param relativeToProcessPath path relative to process execution path
*/
InjectorResolver.prototype.withFile = function (relativeToProcessPath) {
var pathFile = "" + processPath + relativeToProcessPath;
if (!fs_1.default.existsSync(pathFile)) {
throw new Error("the file " + relativeToProcessPath + " doesn't exist in the parent project");
}
this.onResolve(fs_1.default.readFileSync(pathFile));
return this.chainDependencyRef;
};
/**
* Resolve with the full path for the file
* @param relativeToProcessPath path relative to process execution path
*/
InjectorResolver.prototype.withFilePath = function (relativeToProcessPath) {
this.onResolve("" + processPath + relativeToProcessPath);
return this.chainDependencyRef;
};
/**
* Resolve with the full path for the folder
* @param relativeToProcessPath path relative to process execution path
*/
InjectorResolver.prototype.withPath = function (relativeToProcessPath) {
this.onResolve(path_1.default.dirname("" + processPath + relativeToProcessPath));
return this.chainDependencyRef;
};
/**
* Resolve with the value of a environment variable
* @param envName Environment Variable
*/
InjectorResolver.prototype.withEnvironmentVariable = function (envName) {
var envValue = process.env[envName];
if (!envValue) {
var message = "the env variable " + envName + " dont exists";
console.error(message);
throw new Error(message);
}
this.onResolve(envValue);
return this.chainDependencyRef;
};
/**
* Resolve with passing value
* Warning: Use only when the other options can't fulfill the dependency value
* @param value Value for the dependency
*/
InjectorResolver.prototype.withValue = function (value) {
this.onResolve(value);
return this.chainDependencyRef;
};
return InjectorResolver;
}());
exports.default = InjectorResolver;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5qZWN0b3JSZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbmplY3RvclJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOENBQXdCO0FBQ3hCLDBDQUFvQjtBQUVwQixJQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7QUFFbEM7O0dBRUc7QUFDSDtJQUlFOzs7O09BSUc7SUFDSCwwQkFBWSxTQUFvQyxFQUFFLGFBQWlDO1FBQ2pGLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNDQUFXLEdBQVgsVUFBWSxXQUFtQjtRQUM3QixJQUFJO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztTQUNoQztRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBZSxXQUFXLHlDQUFzQyxDQUFDLENBQUM7U0FDbkY7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUNBQVEsR0FBUixVQUFTLHFCQUE2QjtRQUNwQyxJQUFNLFFBQVEsR0FBRyxLQUFHLFdBQVcsR0FBRyxxQkFBdUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsWUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLGNBQVkscUJBQXFCLHlDQUFzQyxDQUFDLENBQUM7U0FDMUY7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsdUNBQVksR0FBWixVQUFhLHFCQUE2QjtRQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUcsV0FBVyxHQUFHLHFCQUF1QixDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1DQUFRLEdBQVIsVUFBUyxxQkFBNkI7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLEtBQUcsV0FBVyxHQUFHLHFCQUF1QixDQUFDLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0RBQXVCLEdBQXZCLFVBQXdCLE9BQWU7UUFDckMsSUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsSUFBTSxPQUFPLEdBQUcsc0JBQW9CLE9BQU8saUJBQWMsQ0FBQztZQUMxRCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUI7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0NBQVMsR0FBVCxVQUFhLEtBQVE7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBcEZELElBb0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IERlcGVuZGVuY3lSZXNvbHZlciBmcm9tICcuL0RlcGVuZGVuY3lSZXNvbHZlcic7XG5jb25zdCBwcm9jZXNzUGF0aCA9IHByb2Nlc3MuY3dkKCk7XG5cbi8qKlxuICogSW5qZWN0b3IgcmVzb2x2ZXIgZm9yIHBsdWdpbnMgdGhhdCBoYXZlIGRlcGVuZGVuY2llc1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbmplY3RvclJlc29sdmVyIHtcbiAgcHJpdmF0ZSBjaGFpbkRlcGVuZGVuY3lSZWY6IERlcGVuZGVuY3lSZXNvbHZlcjtcbiAgcHJpdmF0ZSBvblJlc29sdmU6IChyZXNvbHV0aW9uOiBhbnkpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBvblJlc29sdmUgT24gcmVzb2x2ZSBmdW5jdGlvbiAoaW50ZXJuYWwpXG4gICAqIEBwYXJhbSBkZXBlbmRlbmN5UmVmIFRoZSBkZXBlbmRlbmN5IHJlc29sdmVyIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgY29uc3RydWN0b3Iob25SZXNvbHZlOiAocmVzb2x1dGlvbjogYW55KSA9PiB2b2lkLCBkZXBlbmRlbmN5UmVmOiBEZXBlbmRlbmN5UmVzb2x2ZXIpIHtcbiAgICB0aGlzLm9uUmVzb2x2ZSA9IG9uUmVzb2x2ZTtcbiAgICB0aGlzLmNoYWluRGVwZW5kZW5jeVJlZiA9IGRlcGVuZGVuY3lSZWY7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB3aXRoIGEgcGFja2FnZSBtb2R1bGUgKHRoYXQgaGFzIGluc3RhbGxlZCBpbiBwYXJlbnQgcHJvamVjdClcbiAgICogQHBhcmFtIHBhY2thZ2VOYW1lIHBhY2thZ2UgbmFtZSB0byByZXF1aXJlXG4gICAqL1xuICB3aXRoUGFja2FnZShwYWNrYWdlTmFtZTogc3RyaW5nKTogRGVwZW5kZW5jeVJlc29sdmVyIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5vblJlc29sdmUocmVxdWlyZShwYWNrYWdlTmFtZSkpO1xuICAgICAgcmV0dXJuIHRoaXMuY2hhaW5EZXBlbmRlbmN5UmVmO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHRoZSBwYWNrYWdlICR7cGFja2FnZU5hbWV9IGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHBhcmVudCBwcm9qZWN0YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgd2l0aCBhIHN0cmVhbSBmaWxlIChCdWZmZXIpXG4gICAqIEBwYXJhbSByZWxhdGl2ZVRvUHJvY2Vzc1BhdGggcGF0aCByZWxhdGl2ZSB0byBwcm9jZXNzIGV4ZWN1dGlvbiBwYXRoXG4gICAqL1xuICB3aXRoRmlsZShyZWxhdGl2ZVRvUHJvY2Vzc1BhdGg6IHN0cmluZyk6IERlcGVuZGVuY3lSZXNvbHZlciB7XG4gICAgY29uc3QgcGF0aEZpbGUgPSBgJHtwcm9jZXNzUGF0aH0ke3JlbGF0aXZlVG9Qcm9jZXNzUGF0aH1gO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhwYXRoRmlsZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdGhlIGZpbGUgJHtyZWxhdGl2ZVRvUHJvY2Vzc1BhdGh9IGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHBhcmVudCBwcm9qZWN0YCk7XG4gICAgfVxuXG4gICAgdGhpcy5vblJlc29sdmUoZnMucmVhZEZpbGVTeW5jKHBhdGhGaWxlKSk7XG4gICAgcmV0dXJuIHRoaXMuY2hhaW5EZXBlbmRlbmN5UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgd2l0aCB0aGUgZnVsbCBwYXRoIGZvciB0aGUgZmlsZVxuICAgKiBAcGFyYW0gcmVsYXRpdmVUb1Byb2Nlc3NQYXRoIHBhdGggcmVsYXRpdmUgdG8gcHJvY2VzcyBleGVjdXRpb24gcGF0aFxuICAgKi9cbiAgd2l0aEZpbGVQYXRoKHJlbGF0aXZlVG9Qcm9jZXNzUGF0aDogc3RyaW5nKTogRGVwZW5kZW5jeVJlc29sdmVyIHtcbiAgICB0aGlzLm9uUmVzb2x2ZShgJHtwcm9jZXNzUGF0aH0ke3JlbGF0aXZlVG9Qcm9jZXNzUGF0aH1gKTtcbiAgICByZXR1cm4gdGhpcy5jaGFpbkRlcGVuZGVuY3lSZWY7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB3aXRoIHRoZSBmdWxsIHBhdGggZm9yIHRoZSBmb2xkZXJcbiAgICogQHBhcmFtIHJlbGF0aXZlVG9Qcm9jZXNzUGF0aCBwYXRoIHJlbGF0aXZlIHRvIHByb2Nlc3MgZXhlY3V0aW9uIHBhdGhcbiAgICovXG4gIHdpdGhQYXRoKHJlbGF0aXZlVG9Qcm9jZXNzUGF0aDogc3RyaW5nKTogRGVwZW5kZW5jeVJlc29sdmVyIHtcbiAgICB0aGlzLm9uUmVzb2x2ZShwYXRoLmRpcm5hbWUoYCR7cHJvY2Vzc1BhdGh9JHtyZWxhdGl2ZVRvUHJvY2Vzc1BhdGh9YCkpO1xuICAgIHJldHVybiB0aGlzLmNoYWluRGVwZW5kZW5jeVJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHdpdGggdGhlIHZhbHVlIG9mIGEgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICogQHBhcmFtIGVudk5hbWUgRW52aXJvbm1lbnQgVmFyaWFibGVcbiAgICovXG4gIHdpdGhFbnZpcm9ubWVudFZhcmlhYmxlKGVudk5hbWU6IHN0cmluZyk6IERlcGVuZGVuY3lSZXNvbHZlciB7XG4gICAgY29uc3QgZW52VmFsdWUgPSBwcm9jZXNzLmVudltlbnZOYW1lXTtcbiAgICBpZiAoIWVudlZhbHVlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYHRoZSBlbnYgdmFyaWFibGUgJHtlbnZOYW1lfSBkb250IGV4aXN0c2A7XG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdGhpcy5vblJlc29sdmUoZW52VmFsdWUpO1xuICAgIHJldHVybiB0aGlzLmNoYWluRGVwZW5kZW5jeVJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHdpdGggcGFzc2luZyB2YWx1ZVxuICAgKiBXYXJuaW5nOiBVc2Ugb25seSB3aGVuIHRoZSBvdGhlciBvcHRpb25zIGNhbid0IGZ1bGZpbGwgdGhlIGRlcGVuZGVuY3kgdmFsdWVcbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIGZvciB0aGUgZGVwZW5kZW5jeVxuICAgKi9cbiAgd2l0aFZhbHVlPFQ+KHZhbHVlOiBUKTogRGVwZW5kZW5jeVJlc29sdmVyIHtcbiAgICB0aGlzLm9uUmVzb2x2ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIHRoaXMuY2hhaW5EZXBlbmRlbmN5UmVmO1xuICB9XG59Il19