summaryrefslogtreecommitdiffstats
path: root/lib/plugins/resolveVersion.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins/resolveVersion.js')
-rw-r--r--lib/plugins/resolveVersion.js71
1 files changed, 0 insertions, 71 deletions
diff --git a/lib/plugins/resolveVersion.js b/lib/plugins/resolveVersion.js
deleted file mode 100644
index 61aef8d..0000000
--- a/lib/plugins/resolveVersion.js
+++ /dev/null
@@ -1,71 +0,0 @@
-var npm = require('npm');
-var semver = require('semver');
-var Immutable = require('immutable');
-
-var Promise = require('../utils/promise');
-var Plugin = require('../models/plugin');
-var gitbook = require('../gitbook');
-
-var npmIsReady;
-
-/**
- Initialize and prepare NPM
-
- @return {Promise}
-*/
-function initNPM() {
- if (npmIsReady) return npmIsReady;
-
- npmIsReady = Promise.nfcall(npm.load, {
- silent: true,
- loglevel: 'silent'
- });
-
- return npmIsReady;
-}
-
-/**
- Resolve a plugin dependency to a version
-
- @param {PluginDependency} plugin
- @return {Promise<String>}
-*/
-function resolveVersion(plugin) {
- var npmId = Plugin.nameToNpmID(plugin.getName());
- var requiredVersion = plugin.getVersion();
-
- if (plugin.isGitDependency()) {
- return Promise.resolve(requiredVersion);
- }
-
- return initNPM()
- .then(function() {
- return Promise.nfcall(npm.commands.view, [npmId + '@' + requiredVersion, 'engines'], true);
- })
- .then(function(versions) {
- versions = Immutable.Map(versions).entrySeq();
-
- var result = versions
- .map(function(entry) {
- return {
- version: entry[0],
- gitbook: (entry[1].engines || {}).gitbook
- };
- })
- .filter(function(v) {
- return v.gitbook && gitbook.satisfies(v.gitbook);
- })
- .sort(function(v1, v2) {
- return semver.lt(v1.version, v2.version)? 1 : -1;
- })
- .get(0);
-
- if (!result) {
- return undefined;
- } else {
- return result.version;
- }
- });
-}
-
-module.exports = resolveVersion;