36 lines
770 B
JavaScript
36 lines
770 B
JavaScript
function emptyFun() {}
|
|
function identity(i) {
|
|
return i;
|
|
}
|
|
module.exports = function (module) {
|
|
const defaults = {
|
|
set: emptyFun,
|
|
parse: emptyFun,
|
|
render: emptyFun,
|
|
getTraits: emptyFun,
|
|
getFileType: emptyFun,
|
|
nullGetter: emptyFun,
|
|
optionsTransformer: identity,
|
|
postrender: identity,
|
|
errorsTransformer: identity,
|
|
getRenderedMap: identity,
|
|
preparse: identity,
|
|
postparse: identity,
|
|
on: emptyFun,
|
|
resolve: emptyFun,
|
|
};
|
|
if (
|
|
Object.keys(defaults).every(function (key) {
|
|
return !module[key];
|
|
})
|
|
) {
|
|
throw new Error(
|
|
"This module cannot be wrapped, because it doesn't define any of the necessary functions"
|
|
);
|
|
}
|
|
Object.keys(defaults).forEach(function (key) {
|
|
module[key] = module[key] || defaults[key];
|
|
});
|
|
return module;
|
|
};
|