diff --git a/docs/agents.md b/docs/agents.md index 7a53305..b9bbf4a 100644 --- a/docs/agents.md +++ b/docs/agents.md @@ -36,7 +36,7 @@ export const test: CustomHttpAgent = { }; // Note: push it to the package agents list -agents.push(test); +agents.add(test); ``` The **agent** property is an Undici Agent. diff --git a/examples/agent.mjs b/examples/agent.mjs index 358c0b4..e62a9b8 100644 --- a/examples/agent.mjs +++ b/examples/agent.mjs @@ -15,7 +15,7 @@ const yoda = { preprod: "", dev: "https://yoda.myunisoft.fr:1407" }; -httpie.agents.push(yoda); +httpie.agents.add(yoda); const { data } = await httpie.get("/yoda/api/v1/ipa/healthz"); console.log(data); diff --git a/package-lock.json b/package-lock.json index bb475ce..f0a9239 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@myunisoft/httpie", - "version": "1.0.0", + "version": "1.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@myunisoft/httpie", - "version": "1.0.0", + "version": "1.1.0", "license": "MIT", "dependencies": { "content-type": "^1.0.4", @@ -16,6 +16,7 @@ }, "devDependencies": { "@myunisoft/eslint-config": "^1.3.2", + "@slimio/is": "^1.5.1", "@types/content-type": "^1.1.5", "@types/jest": "^26.0.24", "@types/lru-cache": "^5.1.1", @@ -1027,6 +1028,15 @@ "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@slimio/is": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@slimio/is/-/is-1.5.1.tgz", + "integrity": "sha512-xQ0AgodIE8nHYy508AVmpxqnIr/Ytyz5Xm7I6NQU33+RvDzs94T9c0dTnUWuariByLr1geXXe6kMaTM9TcOIEA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -6660,6 +6670,12 @@ "@sinonjs/commons": "^1.7.0" } }, + "@slimio/is": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@slimio/is/-/is-1.5.1.tgz", + "integrity": "sha512-xQ0AgodIE8nHYy508AVmpxqnIr/Ytyz5Xm7I6NQU33+RvDzs94T9c0dTnUWuariByLr1geXXe6kMaTM9TcOIEA==", + "dev": true + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", diff --git a/package.json b/package.json index 200fc25..e66c83c 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "homepage": "https://github.com/MyUnisoft/httpie#readme", "devDependencies": { "@myunisoft/eslint-config": "^1.3.2", + "@slimio/is": "^1.5.1", "@types/content-type": "^1.1.5", "@types/jest": "^26.0.24", "@types/lru-cache": "^5.1.1", diff --git a/src/agents.ts b/src/agents.ts index 3635a4a..435584c 100644 --- a/src/agents.ts +++ b/src/agents.ts @@ -36,7 +36,7 @@ export interface CustomHttpAgent { limit?: InlineCallbackAction; } -export const agents: CustomHttpAgent[] = []; +export const agents: Set = new Set(); /** * @description Detect if a given string URI is matching a given Agent custom path. diff --git a/test/agents.spec.ts b/test/agents.spec.ts index 8271580..29840bf 100644 --- a/test/agents.spec.ts +++ b/test/agents.spec.ts @@ -1,3 +1,6 @@ +// Import Third-party Dependencies +import is from "@slimio/is"; + // Import Internal Dependencies import { windev } from "./helpers"; import * as Agents from "../src/agents"; @@ -7,7 +10,8 @@ const kWindevMonitoringURL = "https://ws-dev.myunisoft.fr/ws_monitoring"; describe("agents", () => { it("should be an Array of CustomHttpAgent and must remain extensible", () => { - expect(Array.isArray(Agents.agents)).toStrictEqual(true); + expect(is.set(Agents.agents)).toStrictEqual(true); + expect(Object.isExtensible(Agents.agents)).toStrictEqual(true); }); }); diff --git a/test/helpers.ts b/test/helpers.ts index 6ef7802..656304c 100644 --- a/test/helpers.ts +++ b/test/helpers.ts @@ -16,6 +16,6 @@ const windev: CustomHttpAgent = { preprod: "https://ws-dev.myunisoft.fr", dev: "https://ws-dev.myunisoft.fr" }; -agents.push(windev); +agents.add(windev); export { windev }; diff --git a/test/server/index.ts b/test/server/index.ts index 0228e93..68dbb56 100644 --- a/test/server/index.ts +++ b/test/server/index.ts @@ -39,7 +39,7 @@ export async function createServer(customPath = "local", port = 3000) { preprod: `http://localhost:${port}/`, dev: `http://localhost:${port}/` }; - agents.push(serverAgent); + agents.add(serverAgent); server.get("/", async() => { return {