Dependencies
Dependencies
ky ships with zero runtime dependencies. The package.json manifest declares no dependencies field — only devDependencies used for building, linting, type-checking, and testing. The published package contains only the distribution directory.
Runtime footprint
The library is distributed as ESM only:
"type": "module""exports"points to./distribution/index.jswith types at./distribution/index.d.ts"sideEffects": false(tree-shakable)"engines": { "node": ">=22" }
Because there are no runtime dependencies, ky relies entirely on the host platform's Fetch API and Web standards (e.g. AbortSignal, referenced in source/utils/merge.ts via supportsAbortSignal).
Development dependencies
The dev-only toolchain falls into four groups.
Build & TypeScript
typescript(^5.9.3) — compilessource/todistribution/viatsc --project tsconfig.dist.json(see thebuildscript).@sindresorhus/tsconfig(^8.1.0) — basetsconfigpreset.del-cli(^7.0.0) — clearsdistributionbefore each build.tsx(^4.21.0) — used as a Node loader (--import=tsx/esm) soavacan execute TypeScript test files directly.
Linting
xo(^1.2.3) — runs as the first step ofnpm test. The manifest'sxoblock disables a number of rules (e.g.unicorn/filename-case, several@typescript-eslint/no-unsafe-*rules,unicorn/no-invalid-fetch-options).
Testing
ava(^6.4.1) — test runner; configured to treat.tsfiles as ESM modules.playwright(^1.58.2) — browser-based testing (adebugscript runsavaunderPWDEBUG=1).expect-type(^1.3.0) and@type-challenges/utils(^0.1.1) — compile-time type assertions. The latter is imported insource/core/constants.tsasimport type {Expect, Equal} from '@type-challenges/utils', used for type-level checks inside the source tree.jest-leak-detector(^30.2.0) — memory-leak detection in tests.
Test fixtures (HTTP servers and bodies)
express(^5.2.1) with@types/express(^5.0.6) — used bytest/helpers/create-http-test-server.tsto build the test HTTP server (import express from 'express').busboy(^1.6.0) with@types/busboy(^1.5.4) — multipart parsing in tests.@types/node(^25.3.0) — Node typings, used throughout (e.g.import http from 'node:http'in the test helper).
Notable absences
The keywords field lists comparable libraries (got, axios, node-fetch) for discoverability, but none of them are dependencies — ky is built directly on the platform Fetch API.
npm · 15
| @sindresorhus/tsconfig | ^8.1.0 | dev |
| @type-challenges/utils | ^0.1.1 | dev |
| @types/busboy | ^1.5.4 | dev |
| @types/express | ^5.0.6 | dev |
| @types/node | ^25.3.0 | dev |
| ava | ^6.4.1 | dev |
| busboy | ^1.6.0 | dev |
| del-cli | ^7.0.0 | dev |
| expect-type | ^1.3.0 | dev |
| express | ^5.2.1 | dev |
| jest-leak-detector | ^30.2.0 | dev |
| playwright | ^1.58.2 | dev |
| tsx | ^4.21.0 | dev |
| typescript | ^5.9.3 | dev |
| xo | ^1.2.3 | dev |