28 lines
703 B
Plaintext
28 lines
703 B
Plaintext
function createPlugin(plugin, config) {
|
|
return {
|
|
handler: plugin,
|
|
config,
|
|
}
|
|
}
|
|
|
|
createPlugin.withOptions = function (pluginFunction, configFunction = () => ({})) {
|
|
const optionsFunction = function (options) {
|
|
return {
|
|
__options: options,
|
|
handler: pluginFunction(options),
|
|
config: configFunction(options),
|
|
}
|
|
}
|
|
|
|
optionsFunction.__isOptionsFunction = true
|
|
|
|
// Expose plugin dependencies so that `object-hash` returns a different
|
|
// value if anything here changes, to ensure a rebuild is triggered.
|
|
optionsFunction.__pluginFunction = pluginFunction
|
|
optionsFunction.__configFunction = configFunction
|
|
|
|
return optionsFunction
|
|
}
|
|
|
|
export default createPlugin
|