Skip to content

Conversation

h33n0k
Copy link

@h33n0k h33n0k commented Mar 30, 2025

Description:

This PR finalizes the implementation of grepper-node, a Node.js client library for interacting with the Grepper API. The package is now fully functional and published on npm.

Key Features:

  • API Endpoint Support: Implements available Grepper API endpoints based on the official documentation.
  • Robust API Handling: Includes error handling for failed requests and edge cases.
  • Comprehensive Testing: Achieves 98.97% test coverage, ensuring high reliability.
  • CI/CD Integration: Automated testing, quality checks, release workflows, and npm publishing.

This project is now production-ready! 🚀 Looking forward to any feedback or suggestions for future improvements.

h33n0k and others added 23 commits March 30, 2025 22:40
- Set up TypeScript configuration
- Configure tsup for bundling TypeScript code
- Add Jest for unit testing with initial test setup
- Set up ESLint for code linting with TypeScript support
- Set up Prettier for code style formating
- Initialize package.json with necessary dependencies and scripts
- Add `Client` class to interact with the Grepper API
- Support methods for searching answers (`search`), retrieving an answer
by ID (`answer`), and updating an answer's content (`update`) based on
the current grepper's documentation
- Utilize `Effect` for error handling and functional composition- Define
schema-based validation for API responses using `fetchAndValidate`
- Add type definitions for client options, endpoints, and request
schemas
- Added comprehensive inline comments to the `Client` class and its
methods.
- Documented available options, default values, usage examples, and
expected outputs for all public functions in the `Client` class.
- Clarified the purpose and usage of the `fetchAndValidate` helper
function.
- Included error handling details and example use cases for both the
`Client` methods and the helper function.
- Highlighted the development status of the `update` method, noting its
dependency on the Grepper API's incomplete implementation.

This documentation aims to improve the maintainability, readability, and
usability of the codebase.
- Implement unit tests for the `search` method of the `Client` class.
- Implement unit tests for the error handlers
- Add jest test coverage
- Add husky pre commit hooks
- Remove yarn.lock from .gitignore
- Use typescript module for jest config
- Use lint-staged to format and lint only staged files
- Refactor handler unit tests
- Add code property to throwed errors
- Add SyntaxError handler for JSON parsing errors
- Refactor fetch helper unit tests
- Add code property for schema validation errors
- Update eslint config to allow the use of type 'any' in jest
environment
- Refactor client unit tests
- Use Schema.Literal instead of Schema.String to success property in
update response
Move unnecessary config files to package.json

- .prettierignore
- .prettierrc.json
- tsup.config.ts
Export Tagged Errors and types along with the client class
- Remove .nvmrc file
- Use commitizen to parse git commits along with husky hook
Replaced standard-version with semantic-release to perform automated publish
Test exported Error types from main entry
Use semantic-release to automaticly publish package to npm registery
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants