UNPKG

@vulcan-sql/core

Version:
52 lines 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProfilesLookupOptions = void 0; const tslib_1 = require("tslib"); const inversify_1 = require("inversify"); const containers_1 = require("../containers"); const models_1 = require("../models"); const os = require("os"); const path = require("path"); const lodash_1 = require("lodash"); const errors_1 = require("../lib/utils/errors"); let ProfilesLookupOptions = class ProfilesLookupOptions { constructor(options = []) { this.lookups = []; // Default paths options.push({ type: models_1.ProfilesLookupType.LocalFile, options: { path: 'profiles.yaml' }, }); options.push({ type: models_1.ProfilesLookupType.LocalFile, options: { path: path.resolve(os.homedir(), '.vulcan', 'profiles.yaml') }, }); (0, lodash_1.chain)(options) .map((option) => { if (typeof option === 'string') return { type: models_1.ProfilesLookupType.LocalFile, options: { path: option }, }; return option; }) .uniqBy(JSON.stringify) .forEach((profile) => { if (!profile.type) throw new errors_1.ConfigurationError(`Profile config is invalid: ${JSON.stringify(profile)}, "type" is required`); }) .forEach((profile) => this.lookups.push(profile)) .value(); } getLookups() { return this.lookups; } }; ProfilesLookupOptions = tslib_1.__decorate([ (0, inversify_1.injectable)(), tslib_1.__param(0, (0, inversify_1.inject)(containers_1.TYPES.ProfilesLookupInputOptions)), tslib_1.__param(0, (0, inversify_1.optional)()), tslib_1.__metadata("design:paramtypes", [Array]) ], ProfilesLookupOptions); exports.ProfilesLookupOptions = ProfilesLookupOptions; //# sourceMappingURL=profilesLookup.js.map