docxtemplater
Version:
docx and pptx generator working with templates and data (like Mustache, for Word and Powerpoint documents)
45 lines (39 loc) • 1.11 kB
JavaScript
;
var _require = require("./errors.js"),
XTInternalError = _require.XTInternalError;
function emptyFun() {}
function identity(i) {
return i;
}
module.exports = function (module) {
var 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];
})) {
var err = new XTInternalError("This module cannot be wrapped, because it doesn't define any of the necessary functions");
err.properties = {
id: "module_cannot_be_wrapped",
explanation: "This module cannot be wrapped, because it doesn't define any of the necessary functions"
};
throw err;
}
Object.keys(defaults).forEach(function (key) {
module[key] = module[key] || defaults[key];
});
return module;
};