mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-07-21 02:29:23 +00:00
feature(cloudcmd) add plugins
This commit is contained in:
parent
39934033b8
commit
4d14071ede
8 changed files with 186 additions and 7 deletions
|
|
@ -157,6 +157,7 @@ var Util, DOM, CloudFunc, join;
|
|||
Util.exec.series([
|
||||
initModules,
|
||||
baseInit,
|
||||
loadPlugins,
|
||||
function() {
|
||||
CloudCmd.route(location.hash);
|
||||
}
|
||||
|
|
@ -194,6 +195,13 @@ var Util, DOM, CloudFunc, join;
|
|||
Util.exec.if(document.body.scrollIntoViewIfNeeded, func, funcBefore);
|
||||
};
|
||||
|
||||
function loadPlugins(callback) {
|
||||
var prefix = CloudCmd.PREFIX;
|
||||
var plugins = prefix + '/plugins.js';
|
||||
|
||||
DOM.load.js(plugins, callback);
|
||||
}
|
||||
|
||||
this.join = function(urls) {
|
||||
var prefix = CloudCmd.PREFIX;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ var rest = require(DIR_SERVER + 'rest');
|
|||
var route = require(DIR_SERVER + 'route');
|
||||
var validate = require(DIR_SERVER + 'validate');
|
||||
var prefixer = require(DIR_SERVER + 'prefixer');
|
||||
var pluginer = require(DIR_SERVER + 'plugins');
|
||||
|
||||
var apart = require('apart');
|
||||
var join = require('join-io');
|
||||
|
|
@ -50,9 +51,13 @@ function getPrefix(prefix) {
|
|||
module.exports = function(params) {
|
||||
var p = params || {};
|
||||
var options = p.config || {};
|
||||
var plugins = p.plugins;
|
||||
|
||||
var keys = Object.keys(options);
|
||||
var prefix;
|
||||
|
||||
checkPlugins(plugins);
|
||||
|
||||
keys.forEach(function(name) {
|
||||
var value = options[name];
|
||||
|
||||
|
|
@ -84,7 +89,7 @@ module.exports = function(params) {
|
|||
if (p.socket)
|
||||
listen(prefix, p.socket);
|
||||
|
||||
return cloudcmd(prefix);
|
||||
return cloudcmd(prefix, plugins);
|
||||
};
|
||||
|
||||
function defaultTrue(value) {
|
||||
|
|
@ -169,7 +174,7 @@ function listen(prefix, socket) {
|
|||
});
|
||||
}
|
||||
|
||||
function cloudcmd(prefix) {
|
||||
function cloudcmd(prefix, plugins) {
|
||||
var isOption = function(name) {
|
||||
return config(name);
|
||||
};
|
||||
|
|
@ -260,6 +265,7 @@ function cloudcmd(prefix) {
|
|||
is : isMinify
|
||||
}),
|
||||
|
||||
pluginer(plugins),
|
||||
ponseStatic
|
||||
];
|
||||
|
||||
|
|
@ -290,3 +296,10 @@ function setUrl(pref) {
|
|||
};
|
||||
}
|
||||
|
||||
function checkPlugins(plugins) {
|
||||
if (typeof plugins === 'undefined')
|
||||
return;
|
||||
|
||||
if (!Array.isArray(plugins))
|
||||
throw Error('plugins should be an array!');
|
||||
}
|
||||
|
|
|
|||
20
lib/server/plugins.js
Normal file
20
lib/server/plugins.js
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
'use strict';
|
||||
|
||||
var currify = require('currify/legacy');
|
||||
var files = require('files-io');
|
||||
|
||||
module.exports = currify(function(plugins, req, res, next) {
|
||||
if (req.url !== '/plugins.js')
|
||||
return next();
|
||||
|
||||
if (!plugins || !plugins.length)
|
||||
return res.send('');
|
||||
|
||||
files.readPipe(plugins, res, (e) => {
|
||||
if (!e)
|
||||
return;
|
||||
|
||||
res.end(e.message);
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue