docxtemplater/es6/module-wrapper.js
2021-09-04 10:15:02 +05:00

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;
};