blob: fb1b487b1d3c0c31b4817511e49ead93f2f87122 [file] [log] [blame]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = require("path");
var utils_1 = require("./utils");
var lodash_1 = require("lodash");
var GraphQLProjectConfig_1 = require("./GraphQLProjectConfig");
var GraphQLConfig = /** @class */ (function () {
function GraphQLConfig(config, configPath) {
utils_1.validateConfig(config);
this.config = config;
this.configPath = configPath;
}
Object.defineProperty(GraphQLConfig.prototype, "configDir", {
get: function () {
return path_1.dirname(this.configPath);
},
enumerable: true,
configurable: true
});
GraphQLConfig.prototype.getProjectConfig = function (projectName) {
return new GraphQLProjectConfig_1.GraphQLProjectConfig(this.config, this.configPath, projectName);
};
GraphQLConfig.prototype.getConfigForFile = function (filePath) {
var projects = this.config.projects;
if (!projects || Object.keys(projects).length === 0) {
var config = new GraphQLProjectConfig_1.GraphQLProjectConfig(this.config, this.configPath, undefined);
return config.includesFile(filePath) ? config : undefined;
}
return lodash_1.values(this.getProjects()).find(function (project) { return project.includesFile(filePath); }) || undefined;
};
GraphQLConfig.prototype.getProjectNameForFile = function (filePath) {
var proj = this.getConfigForFile(filePath);
return proj && proj.projectName || undefined;
};
GraphQLConfig.prototype.getProjects = function () {
var result = {};
for (var projectName in (this.config.projects || {})) {
result[projectName] = this.getProjectConfig(projectName);
}
if (Object.keys(result).length === 0) {
return undefined;
}
return result;
};
GraphQLConfig.prototype.saveConfig = function (newConfig, projectName) {
var config;
if (projectName) {
config = this.config;
config.projects = config.projects || {};
config.projects[projectName] = config.projects[projectName] || {};
config.projects[projectName] = newConfig;
}
else {
config = newConfig;
}
utils_1.writeConfig(this.configPath, config);
};
return GraphQLConfig;
}());
exports.GraphQLConfig = GraphQLConfig;