UNPKG

eureka-plugins

Version:

Eureka Bridge for adding Plugins

89 lines 9.65 kB
"use strict"; 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