diff options
Diffstat (limited to 'packages/gitbook-core/src/models/Plugin.js')
-rw-r--r-- | packages/gitbook-core/src/models/Plugin.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/packages/gitbook-core/src/models/Plugin.js b/packages/gitbook-core/src/models/Plugin.js new file mode 100644 index 0000000..07b1976 --- /dev/null +++ b/packages/gitbook-core/src/models/Plugin.js @@ -0,0 +1,21 @@ +const { Record } = require('immutable'); + +const DEFAULTS = { + activate: ((dispatch, getState) => {}), + deactivate: ((dispatch, getState) => {}), + reduce: ((state, action) => state), + actions: {} +}; + +class Plugin extends Record(DEFAULTS) { + constructor(plugin) { + super({ + activate: plugin.activate || DEFAULTS.activate, + deactivate: plugin.deactivate || DEFAULTS.deactivate, + reduce: plugin.reduce || DEFAULTS.reduce, + actions: plugin.actions || DEFAULTS.actions + }); + } +} + +module.exports = Plugin; |