/**
 * Middleware module.
 * @namespace serverside.middleware
 * @author Taka Okunishi
 *
 */

var prototype = require('./_prototype.js');
/**
 * Define an object property getter to access prototype property.
 * @private
 */
function getPrototypeProperty (key) {
    return {
        enumerable: true,
        get: function () {
            return prototype[key];
        }
    };
}

// Export prototype properties with lazy loading.
Object.defineProperties(exports, {
    _enhanceObject: getPrototypeProperty('_enhanceObject'),
    defineAccessLogMiddleware: getPrototypeProperty('defineAccessLogMiddleware'),
    defineApemanIdMiddleware: getPrototypeProperty('defineApemanIdMiddleware'),
    defineClusterDomainMiddleware: getPrototypeProperty('defineClusterDomainMiddleware'),
    defineErrorLogMiddleware: getPrototypeProperty('defineErrorLogMiddleware'),
    definePageNotFoundMiddleware: getPrototypeProperty('definePageNotFoundMiddleware'),
    definePublicFilesMiddleware: getPrototypeProperty('definePublicFilesMiddleware'),
    defineReqEnhanceMiddleware: getPrototypeProperty('defineReqEnhanceMiddleware'),
    defineResEnhanceMiddleware: getPrototypeProperty('defineResEnhanceMiddleware'),
    defineSomethingWrongMiddleware: getPrototypeProperty('defineSomethingWrongMiddleware')

});

