UNPKG

retrofit-axios-ts

Version:

A declarative and axios based retrofit implementation for JavaScript and TypeScript.

33 lines (32 loc) 1.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const constants_1 = require("../constants"); const FormUrlencoded_1 = __importDefault(require("./FormUrlencoded")); const Json_1 = __importDefault(require("./Json")); const MultiPart_1 = __importDefault(require("./MultiPart")); const TextXml_1 = __importDefault(require("./TextXml")); const dataResolverMap = new Map(); dataResolverMap.set("application/x-www-form-urlencoded", FormUrlencoded_1.default); dataResolverMap.set("multipart/form-data", MultiPart_1.default); dataResolverMap.set("application/json", Json_1.default); dataResolverMap.set("text/xml", TextXml_1.default); class DataResolverFactory { createDataResolver(contentType) { const contentTypeLowCased = contentType.toLowerCase(); for (const dataContentType of constants_1.DATA_CONTENT_TYPES) { if (contentTypeLowCased.includes(dataContentType)) { const ResolverCls = this._getDataResolverCls(dataContentType); return new ResolverCls(); } } return new (this._getDataResolverCls("application/json"))(); } _getDataResolverCls(dataContentType) { var _a; return (_a = dataResolverMap.get(dataContentType)) !== null && _a !== void 0 ? _a : Json_1.default; } } exports.default = DataResolverFactory;