Add base for plugin linking/installation

This commit is contained in:
Samy Pesse
2016-02-16 15:53:12 +01:00
parent 327d0bf5c5
commit 702db46f20
2 changed files with 40 additions and 11 deletions
+2 -11
View File
@@ -1,25 +1,16 @@
var _ = require('lodash');
var path = require('path');
var resolve = require('resolve');
var Promise = require('../utils/promise');
var gitbook = require('../gitbook');
var PLUGIN_PREFIX = 'gitbook-plugin-';
// Return an absolute name for the plugin (the one on NPM)
function npmId(name) {
if (name.indexOf(PLUGIN_PREFIX) === 0) return name;
return [PLUGIN_PREFIX, name].join('');
}
var registry = require('./registry');
function BookPlugin(book, pluginId) {
this.book = book;
this.log = this.book.log;
this.id = pluginId;
this.npmId = npmId(pluginId);
this.npmId = registry.npmId(pluginId);
this.baseDir;
this.packageInfos = undefined;
+38
View File
@@ -0,0 +1,38 @@
var npm = require('npm');
var PLUGIN_PREFIX = 'gitbook-plugin-';
// Return an absolute name for the plugin (the one on NPM)
function npmId(name) {
if (name.indexOf(PLUGIN_PREFIX) === 0) return name;
return [PLUGIN_PREFIX, name].join('');
}
// Return a plugin ID 9the one on GitBook
function pluginId(name) {
return name.replace(PLUGIN_PREFIX, '');
}
// Validate an NPM plugin ID
function validateId(name) {
return name.indexOf(PLUGIN_PREFIX) === 0;
}
// Link a plugin for use in a specific book
function linkPlugin(book, pluginPath) {
book.log('linking', pluginPath);
}
// Install a plugin in a book
function installPlugin(book, pluginId) {
book.log('installing plugin', pluginId);
}
module.exports = {
npmId: npmId,
pluginId: pluginId,
validateId: validateId,
link: linkPlugin,
install: installPlugin
};