openapi-client-sdk-loader
Version:
An Open API loader for webpack. Compiles yaml to client sdk.
92 lines (67 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var _handlebars = _interopRequireDefault(require("handlebars"));
var _glob = _interopRequireDefault(require("glob"));
var _utils = require("../utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = (source, {
template: templatePath,
templateOptions
}) => {
const template = _fs.default.readFileSync(`${templatePath}/index.handlebars`);
_handlebars.default.registerHelper({
json(context) {
return JSON.stringify(context);
},
capitalize(context) {
return (0, _utils.capitalize)(context);
},
eq(v1, v2) {
return v1 === v2;
},
ne(v1, v2) {
return v1 !== v2;
},
lt(v1, v2) {
return v1 < v2;
},
gt(v1, v2) {
return v1 > v2;
},
lte(v1, v2) {
return v1 <= v2;
},
gte(v1, v2) {
return v1 >= v2;
},
and(...args) {
return args.every(Boolean);
},
or(...args) {
return args.slice(0, -1).some(Boolean);
},
not(context) {
return !!context;
}
});
const partials = _glob.default.sync(`${templatePath}/**/*.handlebars`);
if (partials && partials.length) {
partials.forEach(partial => {
if (partial !== `${templatePath}/index.handlebars`) {
_handlebars.default.registerPartial(_path.default.parse(partial).name, _fs.default.readFileSync(partial).toString());
}
});
}
const compiled = _handlebars.default.compile(template.toString(), {
noEscape: true
});
return compiled({ ...source,
options: templateOptions || {}
});
};
exports.default = _default;