Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/igorkamyshev/farfetched
The advanced data fetching tool for web applications
https://github.com/igorkamyshev/farfetched
async data data-fetching effector fetch
Last synced: about 20 hours ago
JSON representation
The advanced data fetching tool for web applications
- Host: GitHub
- URL: https://github.com/igorkamyshev/farfetched
- Owner: igorkamyshev
- License: mit
- Created: 2022-07-05T10:49:35.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-04T05:38:54.000Z (5 months ago)
- Last Synced: 2024-10-30T00:53:42.817Z (3 months ago)
- Topics: async, data, data-fetching, effector, fetch
- Language: TypeScript
- Homepage: https://ff.effector.dev
- Size: 19.6 MB
- Stars: 189
- Watchers: 5
- Forks: 33
- Open Issues: 62
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Farfetched
The advanced data fetching tool for web applications
## Quick Features
- Transport/protocol/backend agnostic (REST, GraphQL, promises, whatever!)
- Framework-agnostic (React, Solid, Vue, Svelte, Angular, whatever!)
- Declarative — expresses the logic of a computation without describing its control flow
- First class TypeScript support out of the box
- Focused to improve both developer and user experiences### Documentation
Continue reading about Farfetched in the [documentation](https://ff.effector.dev). It covers integration with the most popular UI-frameworks (such React and Solid), error handling, dependent queries, advanced contracts and other great tools.
### Showcases
Repository contains [several showcases](./apps/) of Farfetched usage. To start playing with them, clone repository and run `pnpm install && pnpm run --filter NAME dev` in the root directory, where `NAME` is the name of the showcase.
## Contributing
If you want to contribute to Farfetched, please read the [CONTRIBUTING.md](./CONTRIBUTING.md) file first.
## Maintains
### Getting started
- clone repo
- install deps via `pnpm install`
- make changes
- make sure that your changes is passing checks:
- run tests via `pnpm run -r test:run`
- try to build it via `pnpm run -r build`
- format code via `pnpm run format:check`
- fill in changes via `pnpm changeset`
- open a PR
- enjoy 🎉### Release workflow
Releases of Farfetched are automated by [changesets](https://github.com/changesets/changesets) and GitHub Actions. Your only duty is creating changeset for every PR, it is controlled by [Changes-action](./.github/workflows/changes.yml).
After merging PR to master-branch, [Version-action](./.github/workflows/version.yml) will update special PR with the next release. To publish this release, just merge special PR and wait, [Release-action](./.github/workflows/release.yml) will publish packages.
### Repository management
#### New package creation
Copy-paste `packages/atomic-router` directory, rename it to the package name. Then, update `package.json`, `README.md` and `vite.config.ts` files. Then, delete `CHANGELOG.md` file and any other files that are not needed in the new package.
Fancy generator will be added in the future.
## Credits
Farfetched powered by [Aviasales](https://aviasales.com).
Special thanks to all contributors and especially [Alexandr](https://github.com/AlexandrHoroshih) for endless patience during our debates about this library.
Some of external libraries were inlined to Farfetched due to bundle size and custom features requirements:
- https://github.com/effector/patronum
- https://github.com/smelukov/nano-equal
- https://github.com/DirtyHairy/async-mutex