node_modules/_egg-view@2.1.2@egg-view/app/extend/context.js

'use strict';

const ContextView = require('../../lib/context_view');
const VIEW = Symbol('Context#view');


module.exports = {

  /**
   * Render a file, then set to body, the parameter is same as {@link @ContextView#render}
   * @return {Promise} result
   */
  render(...args) {
    return this.renderView(...args).then(body => {
      this.body = body;
    });
  },

  /**
   * Render a file, same as {@link @ContextView#render}
   * @return {Promise} result
   */
  renderView(...args) {
    return this.view.render(...args);
  },

  /**
   * Render template string, same as {@link @ContextView#renderString}
   * @return {Promise} result
   */
  renderString(...args) {
    return this.view.renderString(...args);
  },

  /**
   * View instance that is created every request
   * @member {ContextView} Context#view
   */
  get view() {
    if (!this[VIEW]) {
      this[VIEW] = new ContextView(this);
    }
    return this[VIEW];
  },

};