diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-12-22 10:18:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-22 10:18:38 +0100 |
commit | 194ebc3da9641ff96f083f9d8ab43c2d27944f9a (patch) | |
tree | c50988f32ccf18df93ae7ab40be78e9459642818 /lib/models/pluginDependency.js | |
parent | 64ccb6b00b4b63fa0e516d4e35351275b34f8c07 (diff) | |
parent | 16af264360e48e8a833e9efa9ab8d194574dbc70 (diff) | |
download | gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.zip gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.gz gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.bz2 |
Merge pull request #1543 from GitbookIO/dream
React for rendering website with plugins
Diffstat (limited to 'lib/models/pluginDependency.js')
-rw-r--r-- | lib/models/pluginDependency.js | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/lib/models/pluginDependency.js b/lib/models/pluginDependency.js deleted file mode 100644 index 8866294..0000000 --- a/lib/models/pluginDependency.js +++ /dev/null @@ -1,168 +0,0 @@ -var is = require('is'); -var semver = require('semver'); -var Immutable = require('immutable'); - -var PREFIX = require('../constants/pluginPrefix'); -var DEFAULT_VERSION = '*'; - -/* - * PluginDependency represents the informations about a plugin - * stored in config.plugins - */ -var PluginDependency = Immutable.Record({ - name: String(), - - // Requirement version (ex: ">1.0.0") - version: String(DEFAULT_VERSION), - - // Is this plugin enabled or disabled? - enabled: Boolean(true) -}, 'PluginDependency'); - -PluginDependency.prototype.getName = function() { - return this.get('name'); -}; - -PluginDependency.prototype.getVersion = function() { - return this.get('version'); -}; - -PluginDependency.prototype.isEnabled = function() { - return this.get('enabled'); -}; - -/** - * Toggle this plugin state - * @param {Boolean} - * @return {PluginDependency} - */ -PluginDependency.prototype.toggle = function(state) { - if (is.undef(state)) { - state = !this.isEnabled(); - } - - return this.set('enabled', state); -}; - -/** - * Return NPM ID for the dependency - * @return {String} - */ -PluginDependency.prototype.getNpmID = function() { - return PluginDependency.nameToNpmID(this.getName()); -}; - -/** - * Is the plugin using a git dependency - * @return {Boolean} - */ -PluginDependency.prototype.isGitDependency = function() { - return !semver.validRange(this.getVersion()); -}; - -/** - * Create a plugin with a name and a plugin - * @param {String} - * @return {Plugin|undefined} - */ -PluginDependency.create = function(name, version, enabled) { - if (is.undefined(enabled)) { - enabled = true; - } - - return new PluginDependency({ - name: name, - version: version || DEFAULT_VERSION, - enabled: Boolean(enabled) - }); -}; - -/** - * Create a plugin from a string - * @param {String} - * @return {Plugin|undefined} - */ -PluginDependency.createFromString = function(s) { - var parts = s.split('@'); - var name = parts[0]; - var version = parts.slice(1).join('@'); - var enabled = true; - - if (name[0] === '-') { - enabled = false; - name = name.slice(1); - } - - return new PluginDependency({ - name: name, - version: version || DEFAULT_VERSION, - enabled: enabled - }); -}; - -/** - * Create a PluginDependency from a string - * @param {String} - * @return {List<PluginDependency>} - */ -PluginDependency.listFromString = function(s) { - var parts = s.split(','); - return PluginDependency.listFromArray(parts); -}; - -/** - * Create a PluginDependency from an array - * @param {Array} - * @return {List<PluginDependency>} - */ -PluginDependency.listFromArray = function(arr) { - return Immutable.List(arr) - .map(function(entry) { - if (is.string(entry)) { - return PluginDependency.createFromString(entry); - } else { - return PluginDependency({ - name: entry.get('name'), - version: entry.get('version') - }); - } - }) - .filter(function(dep) { - return Boolean(dep.getName()); - }); -}; - -/** - * Export plugin dependencies as an array - * @param {List<PluginDependency>} list - * @return {Array<String>} - */ -PluginDependency.listToArray = function(list) { - return list - .map(function(dep) { - var result = ''; - - if (!dep.isEnabled()) { - result += '-'; - } - - result += dep.getName(); - if (dep.getVersion() !== DEFAULT_VERSION) { - result += '@' + dep.getVersion(); - } - - return result; - }) - .toJS(); -}; - -/** - * Return NPM id for a plugin name - * @param {String} - * @return {String} - */ -PluginDependency.nameToNpmID = function(s) { - return PREFIX + s; -}; - -module.exports = PluginDependency; |