Suggested starter tasks for new contributors, organized by difficulty.
Difficulty: beginner | Category: docs
Add a short prerequisite note in the Install section that Node.js >=18 is required, matching package.json engines.
Why this matters: Keeps contributor setup instructions aligned with the supported runtime.
Files to look at:
readme.mdpackage.json
Difficulty: beginner | Category: docs
Add a brief README snippet showing how to stop retries in beforeRetry and how to trigger retries from afterResponse.
Why this matters: These helpers are part of the public API but are easy to miss without explicit docs.
Files to look at:
readme.mdsource/index.tssource/core/Ky.ts
Difficulty: beginner | Category: test
Add an AVA test that asserts ky throws when prefixUrl is used with an input starting with '/'.
Why this matters: Guards against regressions in URL normalization behavior.
Files to look at:
source/core/Ky.tstest/fetch.ts
Difficulty: beginner | Category: test
Verify that undefined values are removed while null values are preserved when building search params.
Why this matters: Confirms documented query normalization behavior.
Files to look at:
source/core/Ky.tstest/fetch.ts
Difficulty: intermediate | Category: test
Add a test to ensure beforeError can change error name/message and is invoked before throwing.
Why this matters: Improves coverage of hook customization logic.
Files to look at:
source/core/Ky.tstest/hooks.ts
Difficulty: intermediate | Category: test
Create a test showing that retry.shouldRetry overrides status code and timeout checks.
Why this matters: Ensures custom retry logic remains the top-priority decision point.
Files to look at:
source/core/Ky.tstest/hooks.ts
Difficulty: intermediate | Category: refactor
Extract the Retry-After/RateLimit parsing logic from Ky.#calculateRetryDelay into a helper in source/utils and add focused tests.
Why this matters: Simplifies the retry flow and makes header parsing easier to test.
Files to look at:
source/core/Ky.tssource/utils/normalize.tstest/fetch.ts
Difficulty: advanced | Category: feature
Tighten TypeScript overloads so defaults passed to ky.create/ky.extend are reflected in the returned instance types.
Why this matters: Enhances developer experience for advanced TypeScript consumers.
Files to look at:
source/types/ky.tssource/index.ts
Difficulty: advanced | Category: test
Use a large payload helper to test onDownloadProgress/onUploadProgress streaming behavior and error handling.
Why this matters: Validates stream-based progress support across environments.
Files to look at:
source/core/Ky.tssource/utils/body.tstest/helpers/create-large-file.tstest/fetch.ts
- New to the codebase? Start with a beginner task
- Want to learn the architecture? Pick an intermediate refactor
- Ready for a challenge? Try an advanced feature task
- Read ARCHITECTURE.md to understand the system
- Check if there's an existing issue for the task
- Create a feature branch
- Write tests for your changes
- Submit a PR referencing this task
Generated by Repo Bootcamp