UNPKG

node-web-mvc

Version:
32 lines (31 loc) 1.38 kB
"use strict"; 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;