'use strict'; const jsonpBody = require('jsonp-body'); const { JSONP_CONFIG } = require('../../lib/private_key'); module.exports = { /** * detect if response should be jsonp */ get acceptJSONP() { return !!(this[JSONP_CONFIG] && this[JSONP_CONFIG].jsonpFunction); }, /** * JSONP wrap body function * Set jsonp response wrap function, other plugin can use it. * If not necessary, please don't use this method in your application code. * @param {Object} body respones body * @private */ createJsonpBody(body) { const jsonpConfig = this[JSONP_CONFIG]; if (!jsonpConfig || !jsonpConfig.jsonpFunction) { this.body = body; return; } this.set('x-content-type-options', 'nosniff'); this.type = 'js'; body = body === undefined ? null : body; // protect from jsonp xss this.body = jsonpBody(body, jsonpConfig.jsonpFunction, jsonpConfig.options); }, };