{"adoption": {"forks": 1017, "observed_at": "2026-08-28T04:11:20.169409+00:00", "stars": 17678}, "canonical_url": "https://ross.abutalabs.com/products/redux-thunk", "card": {"archived": false, "artifact_type": "library", "description": "Thunk middleware for Redux", "domain": ["frontend", "web-development", "developer-tools"], "enriched": true, "function": ["middleware", "state-management"], "health_score": 31, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["reduxjs/redux-thunk"], "name": "reduxjs/redux-thunk", "platform": ["browser", "cross-platform"], "pushed_at": "2025-03-16T00:36:10+00:00", "repo": "reduxjs/redux-thunk", "stars": 17678, "tags": ["redux", "thunk", "async-actions", "side-effects", "typescript", "nodejs"], "topics": [], "urls": [], "use_cases": ["dispatch async actions like API fetches from Redux", "access current state inside action creators", "inject a custom API service argument into thunks for testing", "conditionally dispatch multiple actions based on state", "write reusable logic functions that interact with the Redux store"], "what_it_is": "Redux Thunk is the official thunk middleware for Redux that lets you write action creator functions containing logic which can interact with the store's dispatch and getState methods. It is included by default in Redux Toolkit and can be added manually to a classic Redux store via applyMiddleware.", "when_to_avoid": ["you use Redux Toolkit's createAsyncThunk or RTK Query for data fetching", "you use a state management library with built-in async support like Zustand or MobX", "you need more powerful effect handling such as sagas or observables"], "when_to_choose": ["you use Redux and need to handle async logic or side effects in action creators", "you use Redux Toolkit, which bundles this middleware by default", "you want a tiny, battle-tested middleware with a simple function-based pattern"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/redux-thunk", "repo": "reduxjs/redux-thunk", "role": "main", "score": 28}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:20.169409+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:02:31.581625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f6cf299c58f57aa9b07597d96e5bef1302eabe47445fd73c1f9e79e626540b15", "fetched_at": "2026-08-28T04:11:20.169409+00:00", "kind": "readme", "missing": false, "url": "https://github.com/reduxjs/redux-thunk"}, {"content_hash": "fb7496d234e7a7785caf92b1ac3f665088144bc4ea0fcbb1c1ebe8a43da6eaf8", "fetched_at": "2026-08-29T08:00:58.494419+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/redux-thunk"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 11, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4069, "days_push": 536, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 28, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}