Skip to content

Commit ffd7f1b

Browse files
committed
ignore_plugins
1 parent ca5333a commit ffd7f1b

File tree

2 files changed

+32
-8
lines changed

2 files changed

+32
-8
lines changed

lib/api.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ exports.test = function(errhandler, logspec) {
101101
// if first arg has property senecaplugin
102102
exports.use = function(arg0, arg1, arg2) {
103103
var self = this
104-
var plugindesc
105104

106105
// DEPRECATED: Remove when Seneca >= 4.x
107106
// Allow chaining with seneca.use('options', {...})
@@ -112,8 +111,22 @@ exports.use = function(arg0, arg1, arg2) {
112111
}
113112

114113
try {
115-
plugindesc = self.private$.use(arg0, arg1, arg2)
116-
self.register(plugindesc)
114+
var desc = self.private$.use.build_plugin_desc(arg0, arg1, arg2)
115+
116+
if(this.private$.ignore_plugins[desc.full]) {
117+
this.log.info({
118+
kind: 'plugin',
119+
case: 'ignore',
120+
name: desc.name,
121+
tag: desc.tag
122+
})
123+
124+
return self
125+
}
126+
127+
var plugin = self.private$.use.use_plugin_desc(desc)
128+
129+
self.register(plugin)
117130
} catch (e) {
118131
self.die(self.private$.error(e, 'plugin_' + e.code))
119132
}

seneca.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,18 @@ module.exports = function init(seneca_options, more_options) {
280280
}
281281

282282
// Register plugins specified in options.
283-
_.each(options.plugins, function(plugindesc) {
284-
seneca.use(plugindesc)
285-
})
283+
var pluginkeys = Object.keys(options.plugins)
284+
for( var pkI = 0; pkI < pluginkeys.length; pkI++) {
285+
var pluginkey = pluginkeys[pkI]
286+
var plugindesc = options.plugins[pluginkey]
287+
288+
if(false === plugindesc) {
289+
seneca.private$.ignore_plugins[pluginkey] = true
290+
}
291+
else {
292+
seneca.use(plugindesc)
293+
}
294+
}
286295

287296
seneca.ready(function() {
288297
this.log.info({ kind: 'notice', notice: 'hello seneca ' + seneca.id })
@@ -499,7 +508,7 @@ function make_seneca(initial_options) {
499508
}
500509
}
501510

502-
private$.plugins = {}
511+
// private$.plugins = {}
503512
private$.plugin_order = { byname: [], byref: [] }
504513
private$.use = Makeuse({
505514
prefix: 'seneca-',
@@ -1127,7 +1136,9 @@ function make_private() {
11271136
actdef: {},
11281137
transport: {
11291138
register: []
1130-
}
1139+
},
1140+
plugins: {},
1141+
ignore_plugins: {}
11311142
}
11321143
}
11331144

0 commit comments

Comments
 (0)