summaryrefslogtreecommitdiffstats
path: root/lib/models/config.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/models/config.js')
-rw-r--r--lib/models/config.js181
1 files changed, 0 insertions, 181 deletions
diff --git a/lib/models/config.js b/lib/models/config.js
deleted file mode 100644
index 6de52f9..0000000
--- a/lib/models/config.js
+++ /dev/null
@@ -1,181 +0,0 @@
-var is = require('is');
-var Immutable = require('immutable');
-
-var File = require('./file');
-var PluginDependency = require('./pluginDependency');
-var configDefault = require('../constants/configDefault');
-var reducedObject = require('../utils/reducedObject');
-
-var Config = Immutable.Record({
- file: File(),
- values: configDefault
-}, 'Config');
-
-Config.prototype.getFile = function() {
- return this.get('file');
-};
-
-Config.prototype.getValues = function() {
- return this.get('values');
-};
-
-/**
- * Return minimum version of configuration,
- * Basically it returns the current config minus the default one
- * @return {Map}
- */
-Config.prototype.toReducedVersion = function() {
- return reducedObject(configDefault, this.getValues());
-};
-
-/**
- * Render config as text
- * @return {Promise<String>}
- */
-Config.prototype.toText = function() {
- return JSON.stringify(this.toReducedVersion().toJS(), null, 4);
-};
-
-/**
- * Change the file for the configuration
- * @param {File} file
- * @return {Config}
- */
-Config.prototype.setFile = function(file) {
- return this.set('file', file);
-};
-
-/**
- * Return a configuration value by its key path
- * @param {String} key
- * @return {Mixed}
- */
-Config.prototype.getValue = function(keyPath, def) {
- var values = this.getValues();
- keyPath = Config.keyToKeyPath(keyPath);
-
- if (!values.hasIn(keyPath)) {
- return Immutable.fromJS(def);
- }
-
- return values.getIn(keyPath);
-};
-
-/**
- * Update a configuration value
- * @param {String} key
- * @param {Mixed} value
- * @return {Config}
- */
-Config.prototype.setValue = function(keyPath, value) {
- keyPath = Config.keyToKeyPath(keyPath);
-
- value = Immutable.fromJS(value);
-
- var values = this.getValues();
- values = values.setIn(keyPath, value);
-
- return this.set('values', values);
-};
-
-/**
- * Return a list of plugin dependencies
- * @return {List<PluginDependency>}
- */
-Config.prototype.getPluginDependencies = function() {
- var plugins = this.getValue('plugins');
-
- if (is.string(plugins)) {
- return PluginDependency.listFromString(plugins);
- } else {
- return PluginDependency.listFromArray(plugins);
- }
-};
-
-/**
- * Return a plugin dependency by its name
- * @param {String} name
- * @return {PluginDependency}
- */
-Config.prototype.getPluginDependency = function(name) {
- var plugins = this.getPluginDependencies();
-
- return plugins.find(function(dep) {
- return dep.getName() === name;
- });
-};
-
-/**
- * Update the list of plugins dependencies
- * @param {List<PluginDependency>}
- * @return {Config}
- */
-Config.prototype.setPluginDependencies = function(deps) {
- var plugins = PluginDependency.listToArray(deps);
-
- return this.setValue('plugins', plugins);
-};
-
-
-/**
- * Update values for an existing configuration
- * @param {Object} values
- * @returns {Config}
- */
-Config.prototype.updateValues = function(values) {
- values = Immutable.fromJS(values);
-
- return this.set('values', values);
-};
-
-/**
- * Update values for an existing configuration
- * @param {Config} config
- * @param {Object} values
- * @returns {Config}
- */
-Config.prototype.mergeValues = function(values) {
- var currentValues = this.getValues();
- values = Immutable.fromJS(values);
-
- currentValues = currentValues.mergeDeep(values);
-
- return this.set('values', currentValues);
-};
-
-/**
- * Create a new config for a file
- * @param {File} file
- * @param {Object} values
- * @returns {Config}
- */
-Config.create = function(file, values) {
- return new Config({
- file: file,
- values: Immutable.fromJS(values)
- });
-};
-
-/**
- * Create a new config
- * @param {Object} values
- * @returns {Config}
- */
-Config.createWithValues = function(values) {
- return new Config({
- values: Immutable.fromJS(values)
- });
-};
-
-
-/**
- * Convert a keyPath to an array of keys
- * @param {String|Array}
- * @return {Array}
- */
-Config.keyToKeyPath = function(keyPath) {
- if (is.string(keyPath)) keyPath = keyPath.split('.');
- return keyPath;
-};
-
-module.exports = Config;