node-web-mvc
Version:
node spring mvc
32 lines (31 loc) • 1.38 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const MediaType_1 = __importDefault(require("../MediaType"));
const AbstractHttpMessageConverter_1 = __importDefault(require("./AbstractHttpMessageConverter"));
const Serialization_1 = __importDefault(require("../../../serialization/Serialization"));
class JsonMessageConverter extends AbstractHttpMessageConverter_1.default {
constructor() {
super(MediaType_1.default.APPLICATION_JSON, new MediaType_1.default('application', '*+json'));
}
supports(clazz) {
return true;
}
async readInternal(servletContext, dataType) {
if (!servletContext.request.hasBody) {
return null;
}
const buffer = await servletContext.request.readBodyAsBuffer();
const body = buffer.toString('utf8');
return JSON.parse(body);
}
async writeInternal(data, servletContext) {
const serialization = new Serialization_1.default();
const out = typeof data === 'string' ? data : serialization.serialize(data);
const response = servletContext.response;
await response.fullResponse(out, MediaType_1.default.APPLICATION_JSON);
}
}
exports.default = JsonMessageConverter;