Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Contributing to Axios Robots

We love contributions! 🤝 Whether it's reporting a bug, suggesting a feature, or writing code, we'd love to have you involved.

Please feel free to submit a Pull Request. If you're looking for a place to start, check out the [Roadmap in our README](README.md#-roadmap).

## Project Structure

When contributing, please try to follow the existing **Clean Architecture** pattern:

- **`src/data/`**: Data access layer (Repositories).
- **`src/domain/`**: Core business logic.
- **`interfaces/`**: Abstractions and contracts.
- **`models/`**: Domain entities and value objects.
- **`services/`**: Domain services.
- **`strategies/`**: Strategy implementations (e.g. for Crawl-delay).
- **`usecases/`**: Application-specific business rules.
- **`src/errors/`**: Custom error definitions.
- **`src/interceptor.ts`**: The main Axios interceptor entry point.
12 changes: 3 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,21 +121,15 @@ The interceptor throws a `RobotsError` in the following cases:
- [x] **Wildcards**: Supports standard path matching including `*` and `$`.
- [x] **Crawl-delay**: The interceptor enforces `Crawl-delay` directives (automatic throttling) if configured.

### 🚧 Missing / TODO
### 🚧 Roadmap
- [ ] **Sitemap**: Does not currently expose or parse `Sitemap` directives for the consumer.
- [ ] **Cache TTL**: Caching is currently indefinite for the lifecycle of the Axios instance.

## Contributing

We love contributions! 🤝 Whether it's reporting a bug, suggesting a feature, or writing code, we'd love to have you involved.
We love contributions! Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests.

Please feel free to submit a Pull Request. If you're looking for a place to start, check out the [Roadmap](#-missing--todo).

When contributing, please try to follow the existing **Clean Architecture** pattern:
- **`domain/`**: Core logic (RobotsService, fetching/parsing robots.txt).
- **`errors/`**: Custom error classes and messages.
- **`interceptor.ts`**: Axios integration logic.
- **`types.ts`**: Shared interfaces.
If you're looking for a place to start, check out the [Roadmap](#-roadmap).

## License

Expand Down