Skip to content
This repository was archived by the owner on Jul 4, 2024. It is now read-only.

Commit 33e6ffa

Browse files
envis10nroonie007
authored andcommitted
Add fix for instance creation.
Applied formatting Added unit test for instance creation and usage.
1 parent 7af2a68 commit 33e6ffa

File tree

2 files changed

+56
-7
lines changed

2 files changed

+56
-7
lines changed

mod.ts

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
import { urlJoin } from "https://deno.land/x/url_join/mod.ts";
22

3-
import type {
4-
IRequest,
5-
IConfig,
6-
Data,
7-
IAxiodResponse,
8-
} from "./interfaces.ts";
3+
import type { Data, IAxiodResponse, IConfig, IRequest } from "./interfaces.ts";
94
import { methods } from "./helpers.ts";
105

116
function axiod(
@@ -32,7 +27,54 @@ axiod.create = (config?: IRequest) => {
3227
const instance = Object.assign({}, axiod);
3328
instance.defaults = Object.assign({}, axiod.defaults, config);
3429
instance.defaults.timeout = 1000;
35-
30+
instance.request = (options: IRequest): Promise<IAxiodResponse> => {
31+
return axiod.request(Object.assign({}, instance.defaults, options));
32+
};
33+
instance.get = (url: string, config?: IConfig) => {
34+
return instance.request(
35+
Object.assign({}, { url }, config, { method: "get" }),
36+
);
37+
};
38+
instance.post = (url: string, data?: Data, config?: IConfig) => {
39+
return instance.request(
40+
Object.assign({}, { url }, config, { method: "post", data }),
41+
);
42+
};
43+
instance.put = (url: string, data?: Data, config?: IConfig) => {
44+
return instance.request(
45+
Object.assign({}, { url }, config, { method: "put", data }),
46+
);
47+
};
48+
instance.delete = (url: string, data?: Data, config?: IConfig) => {
49+
return instance.request(
50+
Object.assign({}, { url }, config, { method: "delete", data }),
51+
);
52+
};
53+
instance.options = (url: string, data?: Data, config?: IConfig) => {
54+
return instance.request(
55+
Object.assign({}, { url }, config, { method: "options", data }),
56+
);
57+
};
58+
instance.head = (url: string, data?: Data, config?: IConfig) => {
59+
return instance.request(
60+
Object.assign({}, { url }, config, { method: "head", data }),
61+
);
62+
};
63+
instance.connect = (url: string, data?: Data, config?: IConfig) => {
64+
return instance.request(
65+
Object.assign({}, { url }, config, { method: "connect", data }),
66+
);
67+
};
68+
instance.trace = (url: string, data?: Data, config?: IConfig) => {
69+
return instance.request(
70+
Object.assign({}, { url }, config, { method: "trace", data }),
71+
);
72+
};
73+
instance.patch = (url: string, data?: Data, config?: IConfig) => {
74+
return instance.request(
75+
Object.assign({}, { url }, config, { method: "patch", data }),
76+
);
77+
};
3678
return instance;
3779
};
3880

request-methods.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,10 @@ Deno.test("Axiod POST request with JSON data", async () => {
4343
assertEquals(data.data.data["foo1"], "bar1");
4444
assertEquals(data.data.data["foo2"], "bar2");
4545
});
46+
47+
Deno.test("Axiod Create baseURL fix", async () => {
48+
const ax = axiod.create({ baseURL: "https://postman-echo.com" });
49+
const data = await ax.post("/post", { foo1: "bar1", foo2: "bar2" });
50+
assertEquals(data.data.data["foo1"], "bar1");
51+
assertEquals(data.data.data["foo2"], "bar2");
52+
});

0 commit comments

Comments
 (0)