mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-12 05:48:57 +00:00
35 lines
881 B
JavaScript
35 lines
881 B
JavaScript
var gitbook = require('../gitbook');
|
|
|
|
var Promise = require('../utils/promise');
|
|
|
|
/**
|
|
Validate a plugin
|
|
|
|
@param {Plugin}
|
|
@return {Promise<Plugin>}
|
|
*/
|
|
function validatePlugin(plugin) {
|
|
var packageInfos = plugin.getPackage();
|
|
|
|
var isValid = (
|
|
plugin.isLoaded() &&
|
|
packageInfos &&
|
|
packageInfos.get('name') &&
|
|
packageInfos.get('engines') &&
|
|
packageInfos.get('engines').get('gitbook')
|
|
);
|
|
|
|
if (!isValid) {
|
|
return Promise.reject(new Error('Error loading plugin "' + plugin.getName() + '" at "' + plugin.getPath() + '"'));
|
|
}
|
|
|
|
var engine = packageInfos.get('engines').get('gitbook');
|
|
if (!gitbook.satisfies(engine)) {
|
|
return Promise.reject(new Error('GitBook doesn\'t satisfy the requirements of this plugin: ' + engine));
|
|
}
|
|
|
|
return Promise(plugin);
|
|
}
|
|
|
|
module.exports = validatePlugin;
|