grapesjs_codeapps
Version:
Free and Open Source Web Builder Framework/SC Modification
57 lines (50 loc) • 1.25 kB
JavaScript
module.exports = config => {
var c = config || {},
defaults = require('./config/config');
// Set default options
for (var name in defaults) {
if (!(name in c)) c[name] = defaults[name];
}
var plugins = {};
return {
/**
* Add new plugin. Plugins could not be overwritten
* @param {string} id Plugin ID
* @param {Function} plugin Function which contains all plugin logic
* @return {Function} The plugin function
* @example
* PluginManager.add('some-plugin', function(editor){
* editor.Commands.add('new-command', {
* run: function(editor, senderBtn){
* console.log('Executed new-command');
* }
* })
* });
*/
add(id, plugin) {
if (plugins[id]) {
return plugins[id];
}
plugins[id] = plugin;
return plugin;
},
/**
* Returns plugin by ID
* @param {string} id Plugin ID
* @return {Function|undefined} Plugin
* @example
* var plugin = PluginManager.get('some-plugin');
* plugin(editor);
*/
get(id) {
return plugins[id];
},
/**
* Returns object with all plugins
* @return {Object}
*/
getAll() {
return plugins;
}
};
};