Socket
Socket
Sign inDemoInstall

ts-retrofit

Package Overview
Dependencies
23
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.18.0 to 1.19.0

35

lib/baseService.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {

@@ -8,2 +24,9 @@ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;

};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __metadata = (this && this.__metadata) || function (k, v) {

@@ -21,9 +44,2 @@ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);

};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -33,2 +49,3 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
exports.ServiceBuilder = exports.ResponseInterceptor = exports.RequestInterceptor = exports.BaseService = exports.nonHTTPRequestMethod = void 0;
const qs = __importStar(require("qs"));

@@ -40,3 +57,3 @@ const axios_1 = __importDefault(require("axios"));

const NON_HTTP_REQUEST_PROPERTY_NAME = "__nonHTTPRequestMethod__";
exports.nonHTTPRequestMethod = (target, methodName) => {
const nonHTTPRequestMethod = (target, methodName) => {
const descriptor = {

@@ -48,2 +65,3 @@ value: true,

};
exports.nonHTTPRequestMethod = nonHTTPRequestMethod;
class BaseService {

@@ -131,2 +149,3 @@ constructor(serviceBuilder) {

error = err;
// @ts-ignore
response = err.response;

@@ -133,0 +152,0 @@ }

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpContentType = exports.DATA_CONTENT_TYPES = void 0;
exports.DATA_CONTENT_TYPES = [

@@ -4,0 +5,0 @@ "application/x-www-form-urlencoded",

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;

@@ -13,2 +29,3 @@ };

Object.defineProperty(exports, "__esModule", { value: true });
exports.DataResolverFactory = exports.TextXmlResolver = exports.JsonResolver = exports.MultiPartResolver = exports.FormUrlencodedResolver = exports.BaseDataResolver = void 0;
const qs = __importStar(require("qs"));

@@ -54,8 +71,6 @@ const form_data_1 = __importDefault(require("form-data"));

for (const key in data) {
if (data[key].filename) {
formData.append(key, data[key].value, { filename: data[key].filename });
}
else if (Array.isArray(data[key])) {
if (Array.isArray(data[key])) {
for (const element of data[key]) {
formData.append(key, element.value, { filename: element.filename });
const options = this.getFormDataAppendOptions(element);
formData.append(key, element.value, options);
}

@@ -65,7 +80,9 @@ }

for (const element of data[key].value) {
formData.append(key, element);
const options = this.getFormDataAppendOptions(data[key]);
formData.append(key, element, options);
}
}
else {
formData.append(key, data[key].value);
const options = this.getFormDataAppendOptions(data[key]);
formData.append(key, data[key].value, options);
}

@@ -75,2 +92,11 @@ }

}
getFormDataAppendOptions(partDescriptor) {
const options = {};
Object.keys(partDescriptor).forEach((key) => {
if (key !== "value") {
options[key] = partDescriptor[key];
}
});
return options;
}
}

@@ -77,0 +103,0 @@ exports.MultiPartResolver = MultiPartResolver;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Deprecated = exports.GraphQLVariables = exports.GraphQL = exports.Config = exports.ResponseStatus = exports.Timeout = exports.ResponseTransformer = exports.RequestTransformer = exports.ResponseType = exports.Part = exports.Multipart = exports.FieldMap = exports.Field = exports.FormUrlEncoded = exports.QueryMap = exports.Query = exports.Queries = exports.QueryArrayFormat = exports.HeaderMap = exports.Header = exports.Headers = exports.Body = exports.Path = exports.BasePath = exports.OPTIONS = exports.HEAD = exports.DELETE = exports.PATCH = exports.PUT = exports.POST = exports.GET = void 0;
/**

@@ -37,5 +38,6 @@ * Ensure the `__meta__` attribute is in the target object and `methodName` has been initialized.

*/
exports.GET = (url, options) => {
const GET = (url, options) => {
return registerMethod("GET", url, options);
};
exports.GET = GET;
/**

@@ -48,5 +50,6 @@ * POST decorator.

*/
exports.POST = (url, options) => {
const POST = (url, options) => {
return registerMethod("POST", url, options);
};
exports.POST = POST;
/**

@@ -59,5 +62,6 @@ * PUT decorator.

*/
exports.PUT = (url, options) => {
const PUT = (url, options) => {
return registerMethod("PUT", url, options);
};
exports.PUT = PUT;
/**

@@ -70,5 +74,6 @@ * PATCH decorator.

*/
exports.PATCH = (url, options) => {
const PATCH = (url, options) => {
return registerMethod("PATCH", url, options);
};
exports.PATCH = PATCH;
/**

@@ -81,5 +86,6 @@ * DELETE decorator.

*/
exports.DELETE = (url, options) => {
const DELETE = (url, options) => {
return registerMethod("DELETE", url, options);
};
exports.DELETE = DELETE;
/**

@@ -92,5 +98,6 @@ * HEAD decorator.

*/
exports.HEAD = (url, options) => {
const HEAD = (url, options) => {
return registerMethod("HEAD", url, options);
};
exports.HEAD = HEAD;
/**

@@ -103,5 +110,6 @@ * OPTIONS decorator.

*/
exports.OPTIONS = (url, options) => {
const OPTIONS = (url, options) => {
return registerMethod("OPTIONS", url, options);
};
exports.OPTIONS = OPTIONS;
/**

@@ -113,3 +121,3 @@ * Set base path for API service.

*/
exports.BasePath = (path) => {
const BasePath = (path) => {
return (target) => {

@@ -120,2 +128,3 @@ ensureMeta(target.prototype, "basePath");

};
exports.BasePath = BasePath;
/**

@@ -127,3 +136,3 @@ * Set path parameter for API endpoint.

*/
exports.Path = (paramName) => {
const Path = (paramName) => {
return (target, methodName, paramIndex) => {

@@ -137,2 +146,3 @@ ensureMeta(target, methodName);

};
exports.Path = Path;
/**

@@ -146,6 +156,7 @@ * Set body for API endpoint.

*/
exports.Body = (target, methodName, paramIndex) => {
const Body = (target, methodName, paramIndex) => {
ensureMeta(target, methodName);
target.__meta__[methodName].bodyIndex = paramIndex;
};
exports.Body = Body;
/**

@@ -160,3 +171,3 @@ * Set static HTTP headers for API endpoint.

*/
exports.Headers = (headers) => {
const Headers = (headers) => {
return (target, methodName, descriptor) => {

@@ -170,2 +181,3 @@ ensureMeta(target, methodName);

};
exports.Headers = Headers;
/**

@@ -177,3 +189,3 @@ * Set HTTP header as variable in API method.

*/
exports.Header = (paramName) => {
const Header = (paramName) => {
return (target, methodName, paramIndex) => {

@@ -187,2 +199,3 @@ ensureMeta(target, methodName);

};
exports.Header = Header;
/**

@@ -196,6 +209,7 @@ * Set header map for API endpoint.

*/
exports.HeaderMap = (target, methodName, paramIndex) => {
const HeaderMap = (target, methodName, paramIndex) => {
ensureMeta(target, methodName);
target.__meta__[methodName].headerMapIndex = paramIndex;
};
exports.HeaderMap = HeaderMap;
/**

@@ -207,3 +221,3 @@ * Set array format for query

*/
exports.QueryArrayFormat = (queryArrayFormat) => {
const QueryArrayFormat = (queryArrayFormat) => {
return (target, methodName, descriptor) => {

@@ -214,2 +228,3 @@ ensureMeta(target, methodName);

};
exports.QueryArrayFormat = QueryArrayFormat;
/**

@@ -225,3 +240,3 @@ * Set static query for API endpoint.

*/
exports.Queries = (query) => {
const Queries = (query) => {
return (target, methodName, descriptor) => {

@@ -235,2 +250,3 @@ ensureMeta(target, methodName);

};
exports.Queries = Queries;
/**

@@ -242,3 +258,3 @@ * Set query as variable in API method.

*/
exports.Query = (paramName) => {
const Query = (paramName) => {
return (target, methodName, paramIndex) => {

@@ -252,2 +268,3 @@ ensureMeta(target, methodName);

};
exports.Query = Query;
/**

@@ -261,6 +278,7 @@ * Set query map for API endpoint.

*/
exports.QueryMap = (target, methodName, paramIndex) => {
const QueryMap = (target, methodName, paramIndex) => {
ensureMeta(target, methodName);
target.__meta__[methodName].queryMapIndex = paramIndex;
};
exports.QueryMap = QueryMap;
/**

@@ -274,5 +292,6 @@ * 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' will be added.

*/
exports.FormUrlEncoded = (target, methodName, descriptor) => {
exports.Headers({ "content-type": "application/x-www-form-urlencoded;charset=utf-8" })(target, methodName, descriptor);
const FormUrlEncoded = (target, methodName, descriptor) => {
(0, exports.Headers)({ "content-type": "application/x-www-form-urlencoded;charset=utf-8" })(target, methodName, descriptor);
};
exports.FormUrlEncoded = FormUrlEncoded;
/**

@@ -284,3 +303,3 @@ * Set field of form for API endpoint. Only effective when method has been decorated by @FormUrlEncoded.

*/
exports.Field = (paramName) => {
const Field = (paramName) => {
return (target, methodName, paramIndex) => {

@@ -294,2 +313,3 @@ ensureMeta(target, methodName);

};
exports.Field = Field;
/**

@@ -303,6 +323,7 @@ * Set field map for API endpoint.

*/
exports.FieldMap = (target, methodName, paramIndex) => {
const FieldMap = (target, methodName, paramIndex) => {
ensureMeta(target, methodName);
target.__meta__[methodName].fieldMapIndex = paramIndex;
};
exports.FieldMap = FieldMap;
/**

@@ -316,5 +337,6 @@ * 'content-type': 'multipart/form-data' will be added to HTTP headers.

*/
exports.Multipart = (target, methodName, descriptor) => {
exports.Headers({ "content-type": "multipart/form-data" })(target, methodName, descriptor);
const Multipart = (target, methodName, descriptor) => {
(0, exports.Headers)({ "content-type": "multipart/form-data" })(target, methodName, descriptor);
};
exports.Multipart = Multipart;
/**

@@ -326,3 +348,3 @@ * Set part of form data for API endpoint. Only effective when method has been decorated by @Multipart.

*/
exports.Part = (paramName) => {
const Part = (paramName) => {
return (target, methodName, paramIndex) => {

@@ -336,2 +358,3 @@ ensureMeta(target, methodName);

};
exports.Part = Part;
/**

@@ -343,3 +366,3 @@ * Set the response type for method.

*/
exports.ResponseType = (responseType) => {
const ResponseType = (responseType) => {
return (target, methodName) => {

@@ -350,2 +373,3 @@ ensureMeta(target, methodName);

};
exports.ResponseType = ResponseType;
/**

@@ -360,3 +384,3 @@ * Set request transformer for method.

*/
exports.RequestTransformer = (transformer) => {
const RequestTransformer = (transformer) => {
return (target, methodName) => {

@@ -367,2 +391,3 @@ ensureMeta(target, methodName);

};
exports.RequestTransformer = RequestTransformer;
/**

@@ -378,3 +403,3 @@ * Set response transformer for method.

*/
exports.ResponseTransformer = (transformer) => {
const ResponseTransformer = (transformer) => {
return (target, methodName) => {

@@ -385,2 +410,3 @@ ensureMeta(target, methodName);

};
exports.ResponseTransformer = ResponseTransformer;
/**

@@ -392,3 +418,3 @@ * Set timeout for method, this config will shield service timeout.

*/
exports.Timeout = (timeout) => {
const Timeout = (timeout) => {
return (target, methodName) => {

@@ -399,2 +425,3 @@ ensureMeta(target, methodName);

};
exports.Timeout = Timeout;
/**

@@ -406,3 +433,3 @@ * Declare response status code for method, do nothing just a declaration.

*/
exports.ResponseStatus = (responseStatus) => {
const ResponseStatus = (responseStatus) => {
return (target, methodName) => {

@@ -413,2 +440,3 @@ ensureMeta(target, methodName);

};
exports.ResponseStatus = ResponseStatus;
/**

@@ -420,3 +448,3 @@ * A direct way to set config for a request in axios.

*/
exports.Config = (config) => {
const Config = (config) => {
return (target, methodName) => {

@@ -427,2 +455,3 @@ ensureMeta(target, methodName);

};
exports.Config = Config;
/**

@@ -435,3 +464,3 @@ * A easy way to send GraphQL query.

*/
exports.GraphQL = (query, operationName) => {
const GraphQL = (query, operationName) => {
return (target, methodName) => {

@@ -443,2 +472,3 @@ ensureMeta(target, methodName);

};
exports.GraphQL = GraphQL;
/**

@@ -452,6 +482,7 @@ * Adds variables to GraphQL query

*/
exports.GraphQLVariables = (target, methodName, paramIndex) => {
const GraphQLVariables = (target, methodName, paramIndex) => {
ensureMeta(target, methodName);
target.__meta__[methodName].gqlVariablesIndex = paramIndex;
};
exports.GraphQLVariables = GraphQLVariables;
/**

@@ -463,3 +494,3 @@ * Mark method as deprecated

*/
exports.Deprecated = (hint) => {
const Deprecated = (hint) => {
return (target, methodName, descriptor) => {

@@ -471,1 +502,2 @@ ensureMeta(target, methodName);

};
exports.Deprecated = Deprecated;
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__export(require("./baseService"));
__export(require("./decorators"));
__exportStar(require("./baseService"), exports);
__exportStar(require("./decorators"), exports);
import { AxiosRequestConfig, AxiosResponse, AxiosInstance } from "axios";
export declare type RequestConfig = AxiosRequestConfig;
export type RequestConfig = AxiosRequestConfig;
export interface Response<T = any> extends AxiosResponse<T> {
}
export declare type LogCallback = (config: RequestConfig, response: Response) => void;
export type LogCallback = (config: RequestConfig, response: Response) => void;
export declare const nonHTTPRequestMethod: (target: any, methodName: string) => void;

@@ -34,4 +34,4 @@ export declare class BaseService {

}
export declare type RequestInterceptorFunction = (value: AxiosRequestConfig) => AxiosRequestConfig | Promise<AxiosRequestConfig>;
export declare type ResponseInterceptorFunction<T = any> = (value: AxiosResponse<T>) => AxiosResponse<T> | Promise<AxiosResponse<T>>;
export type RequestInterceptorFunction = (value: AxiosRequestConfig) => AxiosRequestConfig | Promise<AxiosRequestConfig>;
export type ResponseInterceptorFunction<T = any> = (value: AxiosResponse<T>) => AxiosResponse<T> | Promise<AxiosResponse<T>>;
declare abstract class BaseInterceptor {

@@ -38,0 +38,0 @@ onRejected(error: any): void;

import { Method } from "axios";
export declare type HttpMethod = Method;
export type HttpMethod = Method;
export declare const DATA_CONTENT_TYPES: string[];

@@ -4,0 +4,0 @@ export declare enum HttpContentType {

@@ -11,2 +11,3 @@ export declare class BaseDataResolver {

resolve(headers: any, data: any): any;
private getFormDataAppendOptions;
}

@@ -13,0 +14,0 @@ export declare class JsonResolver extends BaseDataResolver {

@@ -12,2 +12,3 @@ import { ResponseType as AxiosResponseType, AxiosTransformer, AxiosRequestConfig } from "axios";

filename?: string;
contentType?: string;
}

@@ -17,3 +18,3 @@ export interface HttpMethodOptions {

}
export declare type QueryArrayFormat = "indices" | "brackets" | "repeat" | "comma";
export type QueryArrayFormat = "indices" | "brackets" | "repeat" | "comma";
export interface QueryOptions {

@@ -29,3 +30,3 @@ arrayFormat?: QueryArrayFormat;

*/
export declare const GET: (url: string, options?: HttpMethodOptions | undefined) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const GET: (url: string, options?: HttpMethodOptions) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
/**

@@ -38,3 +39,3 @@ * POST decorator.

*/
export declare const POST: (url: string, options?: HttpMethodOptions | undefined) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const POST: (url: string, options?: HttpMethodOptions) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
/**

@@ -47,3 +48,3 @@ * PUT decorator.

*/
export declare const PUT: (url: string, options?: HttpMethodOptions | undefined) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const PUT: (url: string, options?: HttpMethodOptions) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
/**

@@ -56,3 +57,3 @@ * PATCH decorator.

*/
export declare const PATCH: (url: string, options?: HttpMethodOptions | undefined) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const PATCH: (url: string, options?: HttpMethodOptions) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
/**

@@ -65,3 +66,3 @@ * DELETE decorator.

*/
export declare const DELETE: (url: string, options?: HttpMethodOptions | undefined) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const DELETE: (url: string, options?: HttpMethodOptions) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
/**

@@ -74,3 +75,3 @@ * HEAD decorator.

*/
export declare const HEAD: (url: string, options?: HttpMethodOptions | undefined) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const HEAD: (url: string, options?: HttpMethodOptions) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
/**

@@ -83,3 +84,3 @@ * OPTIONS decorator.

*/
export declare const OPTIONS: (url: string, options?: HttpMethodOptions | undefined) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const OPTIONS: (url: string, options?: HttpMethodOptions) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
/**

@@ -140,3 +141,3 @@ * Set base path for API service.

*/
export declare const QueryArrayFormat: (queryArrayFormat: "repeat" | "indices" | "brackets" | "comma") => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const QueryArrayFormat: (queryArrayFormat: QueryArrayFormat) => (target: BaseService, methodName: string, descriptor: PropertyDescriptor) => void;
/**

@@ -266,3 +267,3 @@ * Set static query for API endpoint.

*/
export declare const GraphQL: (query: string, operationName?: string | undefined) => (target: any, methodName: string) => void;
export declare const GraphQL: (query: string, operationName?: string) => (target: any, methodName: string) => void;
/**

@@ -283,3 +284,3 @@ * Adds variables to GraphQL query

*/
export declare const Deprecated: (hint?: string | undefined) => (target: any, methodName: string, descriptor: PropertyDescriptor) => void;
export declare const Deprecated: (hint?: string) => (target: any, methodName: string, descriptor: PropertyDescriptor) => void;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isNode = void 0;
exports.isNode = typeof process !== "undefined"
&& process.versions != null
&& process.versions.node != null;
{
"name": "ts-retrofit",
"version": "1.18.0",
"version": "1.19.0",
"description": "A declarative and axios based retrofit implementation for JavaScript and TypeScript.",

@@ -50,4 +50,4 @@ "repository": "https://github.com/nullcc/ts-retrofit",

"tslint": "^5.19.0",
"typescript": "^3.7.5"
"typescript": "^4.9.5"
}
}

@@ -8,3 +8,3 @@ # ts-retrofit

| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ----------------------------------- |
| ![Statements](https://img.shields.io/badge/Coverage-96.21%25-brightgreen.svg "Make me better!") | ![Branches](https://img.shields.io/badge/Coverage-86.05%25-yellow.svg "Make me better!") | ![Functions](https://img.shields.io/badge/Coverage-89.47%25-yellow.svg "Make me better!") | ![Lines](https://img.shields.io/badge/Coverage-96.21%25-brightgreen.svg "Make me better!") |
| ![Statements](https://img.shields.io/badge/Coverage-96.3%25-brightgreen.svg "Make me better!") | ![Branches](https://img.shields.io/badge/Coverage-86.05%25-yellow.svg "Make me better!") | ![Functions](https://img.shields.io/badge/Coverage-89.66%25-yellow.svg "Make me better!") | ![Lines](https://img.shields.io/badge/Coverage-96.03%25-brightgreen.svg "Make me better!") |

@@ -11,0 +11,0 @@ > A declarative and [axios](https://github.com/axios/axios) based retrofit implementation for JavaScript and TypeScript.

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc