mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-30 02:25:55 +01:00
Plugin load refactor
This commit is contained in:
@@ -8,10 +8,8 @@ var semver = require('semver');
|
||||
var express = require('express');
|
||||
var nconf = require('nconf');
|
||||
|
||||
var db = require('./database');
|
||||
var hotswap = require('./hotswap');
|
||||
var file = require('./file');
|
||||
var languages = require('./languages');
|
||||
|
||||
var app;
|
||||
var middleware;
|
||||
@@ -20,6 +18,10 @@ var middleware;
|
||||
require('./plugins/install')(Plugins);
|
||||
require('./plugins/load')(Plugins);
|
||||
require('./plugins/hooks')(Plugins);
|
||||
Plugins.data = require('./plugins/data');
|
||||
|
||||
Plugins.getPluginPaths = Plugins.data.getPluginPaths;
|
||||
Plugins.loadPluginInfo = Plugins.data.loadPluginInfo;
|
||||
|
||||
Plugins.libraries = {};
|
||||
Plugins.loadedHooks = {};
|
||||
@@ -30,7 +32,6 @@ var middleware;
|
||||
Plugins.acpScripts = [];
|
||||
Plugins.libraryPaths = [];
|
||||
Plugins.versionWarning = [];
|
||||
Plugins.languageCodes = [];
|
||||
Plugins.soundpacks = [];
|
||||
|
||||
Plugins.initialized = false;
|
||||
@@ -84,21 +85,7 @@ var middleware;
|
||||
Plugins.libraryPaths.length = 0;
|
||||
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
// Build language code list
|
||||
languages.list(function (err, languages) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
Plugins.languageCodes = languages.map(function (data) {
|
||||
return data.code;
|
||||
});
|
||||
|
||||
next();
|
||||
});
|
||||
},
|
||||
async.apply(Plugins.getPluginPaths),
|
||||
Plugins.getPluginPaths,
|
||||
function (paths, next) {
|
||||
async.eachSeries(paths, Plugins.loadPlugin, next);
|
||||
},
|
||||
@@ -150,21 +137,7 @@ var middleware;
|
||||
var templates = {};
|
||||
var tplName;
|
||||
|
||||
async.waterfall([
|
||||
async.apply(db.getSortedSetRange, 'plugins:active', 0, -1),
|
||||
function (plugins, next) {
|
||||
var pluginBasePath = path.join(__dirname, '../node_modules');
|
||||
var paths = plugins.map(function (plugin) {
|
||||
return path.join(pluginBasePath, plugin);
|
||||
});
|
||||
|
||||
// Filter out plugins with invalid paths
|
||||
async.filter(paths, file.exists, next);
|
||||
},
|
||||
function (paths, next) {
|
||||
async.map(paths, Plugins.loadPluginInfo, next);
|
||||
},
|
||||
], function (err, plugins) {
|
||||
Plugins.data.getActive(function (err, plugins) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user