Unwrap meta modules

v1.18.x
Peter Jaszkowiak 8 years ago
parent aefdc4b24b
commit b60dbe7d1e

@ -12,16 +12,16 @@ var Meta = module.exports;
Meta.reloadRequired = false;
require('./meta/configs')(Meta);
require('./meta/themes')(Meta);
require('./meta/js')(Meta);
require('./meta/css')(Meta);
require('./meta/sounds')(Meta);
require('./meta/settings')(Meta);
require('./meta/logs')(Meta);
require('./meta/errors')(Meta);
require('./meta/tags')(Meta);
require('./meta/dependencies')(Meta);
Meta.configs = require('./meta/configs');
Meta.themes = require('./meta/themes');
Meta.js = require('./meta/js');
Meta.css = require('./meta/css');
Meta.sounds = require('./meta/sounds');
Meta.settings = require('./meta/settings');
Meta.logs = require('./meta/logs');
Meta.errors = require('./meta/errors');
Meta.tags = require('./meta/tags');
Meta.dependencies = require('./meta/dependencies');
Meta.templates = require('./meta/templates');
Meta.blacklist = require('./meta/blacklist');
Meta.languages = require('./meta/languages');

@ -6,18 +6,19 @@ var nconf = require('nconf');
var db = require('../database');
var pubsub = require('../pubsub');
var Meta = require('../meta');
var cacheBuster = require('./cacheBuster');
module.exports = function (Meta) {
var Configs = module.exports;
Meta.config = {};
Meta.configs = {};
Meta.configs.init = function (callback) {
delete Meta.config;
Configs.init = function (callback) {
Meta.config = null;
async.waterfall([
function (next) {
Meta.configs.list(next);
Configs.list(next);
},
function (config, next) {
cacheBuster.read(function (err, buster) {
@ -34,7 +35,7 @@ module.exports = function (Meta) {
], callback);
};
Meta.configs.list = function (callback) {
Configs.list = function (callback) {
db.getObject('config', function (err, config) {
config = config || {};
config.version = nconf.get('version');
@ -43,15 +44,15 @@ module.exports = function (Meta) {
});
};
Meta.configs.get = function (field, callback) {
Configs.get = function (field, callback) {
db.getObjectField('config', field, callback);
};
Meta.configs.getFields = function (fields, callback) {
Configs.getFields = function (fields, callback) {
db.getObjectFields('config', fields, callback);
};
Meta.configs.set = function (field, value, callback) {
Configs.set = function (field, value, callback) {
callback = callback || function () {};
if (!field) {
return callback(new Error('[[error:invalid-data]]'));
@ -59,11 +60,11 @@ module.exports = function (Meta) {
var data = {};
data[field] = value;
Meta.configs.setMultiple(data, callback);
Configs.setMultiple(data, callback);
};
Meta.configs.setMultiple = function (data, callback) {
Configs.setMultiple = function (data, callback) {
async.waterfall([
function (next) {
processConfig(data, next);
@ -119,7 +120,7 @@ module.exports = function (Meta) {
}
});
Meta.configs.setOnEmpty = function (values, callback) {
Configs.setOnEmpty = function (values, callback) {
async.waterfall([
function (next) {
db.getObject('config', next);
@ -141,7 +142,6 @@ module.exports = function (Meta) {
], callback);
};
Meta.configs.remove = function (field, callback) {
Configs.remove = function (field, callback) {
db.deleteObjectField('config', field, callback);
};
};

@ -11,8 +11,7 @@ var db = require('../database');
var file = require('../file');
var minifier = require('./minifier');
module.exports = function (Meta) {
Meta.css = {};
var CSS = module.exports;
var buildImports = {
client: function (source) {
@ -149,7 +148,7 @@ module.exports = function (Meta) {
});
}
Meta.css.buildBundle = function (target, fork, callback) {
CSS.buildBundle = function (target, fork, callback) {
async.waterfall([
function (next) {
getBundleMetadata(target, next);
@ -165,4 +164,3 @@ module.exports = function (Meta) {
},
], callback);
};
};

@ -9,17 +9,17 @@ require('colors');
var pkg = require('../../package.json');
module.exports = function (Meta) {
Meta.dependencies = {};
var Dependencies = module.exports;
var depsMissing = false;
var depsOutdated = false;
Meta.dependencies.check = function (callback) {
Dependencies.check = function (callback) {
var modules = Object.keys(pkg.dependencies);
winston.verbose('Checking dependencies for outdated modules');
async.each(modules, Meta.dependencies.checkModule, function (err) {
async.each(modules, Dependencies.checkModule, function (err) {
if (err) {
return callback(err);
}
@ -34,7 +34,7 @@ module.exports = function (Meta) {
});
};
Meta.dependencies.checkModule = function (moduleName, callback) {
Dependencies.checkModule = function (moduleName, callback) {
fs.readFile(path.join(__dirname, '../../node_modules/', moduleName, 'package.json'), {
encoding: 'utf-8',
}, function (err, pkgData) {
@ -47,14 +47,14 @@ module.exports = function (Meta) {
return callback(err);
}
pkgData = Meta.dependencies.parseModuleData(moduleName, pkgData);
pkgData = Dependencies.parseModuleData(moduleName, pkgData);
var satisfies = Meta.dependencies.doesSatisfy(pkgData, pkg.dependencies[moduleName]);
var satisfies = Dependencies.doesSatisfy(pkgData, pkg.dependencies[moduleName]);
callback(null, satisfies);
});
};
Meta.dependencies.parseModuleData = function (moduleName, pkgData) {
Dependencies.parseModuleData = function (moduleName, pkgData) {
try {
pkgData = JSON.parse(pkgData);
} catch (e) {
@ -65,7 +65,7 @@ module.exports = function (Meta) {
return pkgData;
};
Meta.dependencies.doesSatisfy = function (moduleData, packageJSONVersion) {
Dependencies.doesSatisfy = function (moduleData, packageJSONVersion) {
if (!moduleData) {
return false;
}
@ -78,4 +78,3 @@ module.exports = function (Meta) {
}
return satisfies;
};
};

@ -8,16 +8,15 @@ var cronJob = require('cron').CronJob;
var db = require('../database');
var analytics = require('../analytics');
module.exports = function (Meta) {
Meta.errors = {};
var Errors = module.exports;
var counters = {};
new cronJob('0 * * * * *', function () {
Meta.errors.writeData();
Errors.writeData();
}, null, true);
Meta.errors.writeData = function () {
Errors.writeData = function () {
var dbQueue = [];
if (Object.keys(counters).length > 0) {
for (var key in counters) {
@ -34,7 +33,7 @@ module.exports = function (Meta) {
}
};
Meta.errors.log404 = function (route, callback) {
Errors.log404 = function (route, callback) {
callback = callback || function () {};
if (!route) {
return setImmediate(callback);
@ -46,7 +45,7 @@ module.exports = function (Meta) {
setImmediate(callback);
};
Meta.errors.get = function (escape, callback) {
Errors.get = function (escape, callback) {
async.waterfall([
function (next) {
db.getSortedSetRevRangeWithScores('errors:404', 0, 199, next);
@ -62,7 +61,6 @@ module.exports = function (Meta) {
], callback);
};
Meta.errors.clear = function (callback) {
Errors.clear = function (callback) {
db.delete('errors:404', callback);
};
};

@ -10,10 +10,9 @@ var file = require('../file');
var plugins = require('../plugins');
var minifier = require('./minifier');
module.exports = function (Meta) {
Meta.js = {};
var JS = module.exports;
Meta.js.scripts = {
JS.scripts = {
base: [
'node_modules/jquery/dist/jquery.js',
'node_modules/socket.io-client/dist/socket.io.js',
@ -129,7 +128,7 @@ module.exports = function (Meta) {
}
function linkModules(callback) {
var modules = Meta.js.scripts.modules;
var modules = JS.scripts.modules;
async.eachLimit(Object.keys(modules), 1000, function (relPath, next) {
var srcPath = path.join(__dirname, '../../', modules[relPath]);
@ -170,9 +169,9 @@ module.exports = function (Meta) {
var moduleDirs = ['modules', 'admin', 'client'];
function getModuleList(callback) {
var modules = Object.keys(Meta.js.scripts.modules).map(function (relPath) {
var modules = Object.keys(JS.scripts.modules).map(function (relPath) {
return {
srcPath: path.join(__dirname, '../../', Meta.js.scripts.modules[relPath]),
srcPath: path.join(__dirname, '../../', JS.scripts.modules[relPath]),
destPath: path.join(__dirname, '../../build/public/src/modules', relPath),
};
});
@ -238,7 +237,7 @@ module.exports = function (Meta) {
});
}
Meta.js.buildModules = function (fork, callback) {
JS.buildModules = function (fork, callback) {
async.waterfall([
clearModules,
function (next) {
@ -254,7 +253,7 @@ module.exports = function (Meta) {
], callback);
};
Meta.js.linkStatics = function (callback) {
JS.linkStatics = function (callback) {
rimraf(path.join(__dirname, '../../build/public/plugins'), function (err) {
if (err) {
return callback(err);
@ -303,10 +302,10 @@ module.exports = function (Meta) {
return callback(err);
}
var scripts = Meta.js.scripts.base.concat(pluginScripts);
var scripts = JS.scripts.base.concat(pluginScripts);
if (target === 'client' && global.env !== 'development') {
scripts = scripts.concat(Meta.js.scripts.rjs);
scripts = scripts.concat(JS.scripts.rjs);
}
scripts = scripts.map(function (script) {
@ -321,7 +320,7 @@ module.exports = function (Meta) {
});
}
Meta.js.buildBundle = function (target, fork, callback) {
JS.buildBundle = function (target, fork, callback) {
var fileNames = {
client: 'nodebb.min.js',
admin: 'acp.min.js',
@ -344,7 +343,6 @@ module.exports = function (Meta) {
], callback);
};
Meta.js.killMinifier = function () {
JS.killMinifier = function () {
minifier.killAll();
};
};

@ -3,18 +3,16 @@
var path = require('path');
var fs = require('fs');
module.exports = function (Meta) {
Meta.logs = {
path: path.join(__dirname, '..', '..', 'logs', 'output.log'),
};
var Logs = module.exports;
Logs.path = path.join(__dirname, '..', '..', 'logs', 'output.log');
Meta.logs.get = function (callback) {
fs.readFile(Meta.logs.path, {
Logs.get = function (callback) {
fs.readFile(Logs.path, {
encoding: 'utf-8',
}, callback);
};
Meta.logs.clear = function (callback) {
fs.truncate(Meta.logs.path, 0, callback);
};
Logs.clear = function (callback) {
fs.truncate(Logs.path, 0, callback);
};

@ -4,21 +4,21 @@ var async = require('async');
var db = require('../database');
var plugins = require('../plugins');
var Meta = require('../meta');
module.exports = function (Meta) {
Meta.settings = {};
var Settings = module.exports;
Meta.settings.get = function (hash, callback) {
Settings.get = function (hash, callback) {
db.getObject('settings:' + hash, function (err, settings) {
callback(err, settings || {});
});
};
Meta.settings.getOne = function (hash, field, callback) {
Settings.getOne = function (hash, field, callback) {
db.getObjectField('settings:' + hash, field, callback);
};
Meta.settings.set = function (hash, values, callback) {
Settings.set = function (hash, values, callback) {
async.waterfall([
function (next) {
db.setObject('settings:' + hash, values, next);
@ -35,11 +35,11 @@ module.exports = function (Meta) {
], callback);
};
Meta.settings.setOne = function (hash, field, value, callback) {
Settings.setOne = function (hash, field, value, callback) {
db.setObjectField('settings:' + hash, field, value, callback);
};
Meta.settings.setOnEmpty = function (hash, values, callback) {
Settings.setOnEmpty = function (hash, values, callback) {
async.waterfall([
function (next) {
db.getObject('settings:' + hash, next);
@ -61,4 +61,3 @@ module.exports = function (Meta) {
},
], callback);
};
};

@ -9,14 +9,14 @@ var async = require('async');
var file = require('../file');
var plugins = require('../plugins');
var user = require('../user');
var Meta = require('../meta');
var soundsPath = path.join(__dirname, '../../build/public/sounds');
var uploadsPath = path.join(__dirname, '../../public/uploads/sounds');
module.exports = function (Meta) {
Meta.sounds = {};
var Sounds = module.exports;
Meta.sounds.addUploads = function addUploads(callback) {
Sounds.addUploads = function addUploads(callback) {
fs.readdir(uploadsPath, function (err, files) {
if (err) {
if (err.code !== 'ENOENT') {
@ -54,8 +54,8 @@ module.exports = function (Meta) {
});
};
Meta.sounds.build = function build(callback) {
Meta.sounds.addUploads(function (err) {
Sounds.build = function build(callback) {
Sounds.addUploads(function (err) {
if (err) {
return callback(err);
}
@ -97,7 +97,7 @@ module.exports = function (Meta) {
var keys = ['chat-incoming', 'chat-outgoing', 'notification'];
Meta.sounds.getUserSoundMap = function getUserSoundMap(uid, callback) {
Sounds.getUserSoundMap = function getUserSoundMap(uid, callback) {
async.parallel({
defaultMapping: function (next) {
Meta.configs.getFields(keys, next);
@ -130,4 +130,3 @@ module.exports = function (Meta) {
callback(null, soundMapping);
});
};
};

@ -4,12 +4,13 @@ var nconf = require('nconf');
var validator = require('validator');
var async = require('async');
var winston = require('winston');
var plugins = require('../plugins');
var Meta = require('../meta');
module.exports = function (Meta) {
Meta.tags = {};
var Tags = module.exports;
Meta.tags.parse = function (req, meta, link, callback) {
Tags.parse = function (req, meta, link, callback) {
async.parallel({
tags: function (next) {
var defaultTags = [{
@ -163,4 +164,3 @@ module.exports = function (Meta) {
meta.push(data);
}
}
};

@ -9,11 +9,11 @@ var async = require('async');
var file = require('../file');
var db = require('../database');
var Meta = require('../meta');
module.exports = function (Meta) {
Meta.themes = {};
var Themes = module.exports;
Meta.themes.get = function (callback) {
Themes.get = function (callback) {
var themePath = nconf.get('themes_path');
if (typeof themePath !== 'string') {
return callback(null, []);
@ -73,7 +73,7 @@ module.exports = function (Meta) {
], callback);
};
Meta.themes.set = function (data, callback) {
Themes.set = function (data, callback) {
var themeData = {
'theme:type': data.type,
'theme:id': data.id,
@ -112,7 +112,7 @@ module.exports = function (Meta) {
Meta.configs.setMultiple(themeData, next);
// Re-set the themes path (for when NodeBB is reloaded)
Meta.themes.setPath(config);
Themes.setPath(config);
},
], callback);
@ -128,11 +128,11 @@ module.exports = function (Meta) {
}
};
Meta.themes.setupPaths = function (callback) {
Themes.setupPaths = function (callback) {
async.waterfall([
function (next) {
async.parallel({
themesData: Meta.themes.get,
themesData: Themes.get,
currentThemeId: function (next) {
db.getObjectField('config', 'theme:id', next);
},
@ -153,13 +153,13 @@ module.exports = function (Meta) {
return callback(new Error('[[error:theme-not-found]]'));
}
Meta.themes.setPath(themeObj);
Themes.setPath(themeObj);
next();
},
], callback);
};
Meta.themes.setPath = function (themeObj) {
Themes.setPath = function (themeObj) {
// Theme's templates path
var themePath = nconf.get('base_templates_path');
var fallback = path.join(nconf.get('themes_path'), themeObj.id, 'templates');
@ -173,4 +173,3 @@ module.exports = function (Meta) {
nconf.set('theme_templates_path', themePath);
nconf.set('theme_config', path.join(nconf.get('themes_path'), themeObj.id, 'theme.json'));
};
};

Loading…
Cancel
Save