UNPKG

@axway/api-builder-runtime

Version:

API Builder Runtime

42 lines (37 loc) 1.09 kB
var path = require('path'), fs = require('fs'); /* * attempt to render our body into a layout */ exports.render = function (app, body, opts, ext, render, callback) { opts = opts || {}; let layout; if (opts.layout) { layout = opts.layout; } else if (opts.layout !== false) { layout = app.get('layout'); } if (!layout) { return callback(null, body); } opts.body = body; // don't do the layout by setting to false opts.layout = false; // if this is a layout file, we need to return to prevent and infinite loop if (path.extname(layout) === '.' + ext) { return callback(null, render(app, layout, opts)); } return app.render(layout, opts, callback); }; /* * resolve a layout to the full path. raises Error if not found */ exports.resolveLayoutFilename = function (app, filename) { filename = fs.existsSync(filename) ? filename : app.get('views') ? path.join(app.get('views'), filename) : path.join(process.cwd(), 'web', 'views', filename); if (!fs.existsSync(filename)) { throw new Error('Unable to find layout "' + filename + '"'); } return filename; };