text: 'use strict';
  
  /**
   * Module dependencies
   */
  
  // Native
  const path = require('path');
  
  // Externals
  const co = require('co');
  const render = require('koa-ejs');
  
  /**
   * EJS hook
   */
  
  module.exports = function(strapi) {
    const hook = {
      /**
       * Default options
       */
  
      defaults: {
        root: path.join(strapi.config.appPath, strapi.config.paths.views),
        layout: 'layout',
        viewExt: 'ejs',
        cache: true,
        debug: true,
      },
  
      /**
       * Initialize the hook
       */
  
      initialize() {
        // Force cache mode in production
        if (strapi.config.environment === 'production') {
          strapi.config.hook.settings.ejs.cache = true;
        }
  
        render(
          strapi.app,
          Object.assign(this.defaults, strapi.config.hook.settings.ejs)
        );
  
        strapi.app.context.render = co.wrap(strapi.app.context.render);
      },
    };
  
    return hook;
  };
  