CodeVetter · Repo Unpack · System map
reduxjs/redux
The primary deliverable is an npm library whose public boundary is src/index.ts. Store execution, reducer composition, middleware composition, and public types occupy separate modules. Application state lives in a store closure, while React integration belongs to external packages used by examples. The documentation site has its own dependency installation, external source acquisition, and static deployment configuration.
- src/index.ts exports createStore, legacy_createStore, combineReducers, bindActionCreators, applyMiddleware, compose, isAction, isPlainObject, and public store/reducer/action/middleware types.
- createStore owns currentReducer, currentState, listener Maps, a listener ID counter, and the isDispatching guard within each store instance.
- The package exports modern ESM for import consumers, CJS as its default entry, declarations through redux.d.mts, and a legacy ESM module entry; published files include dist and src.
- tsdown builds five output variants: modern ESM, ES2017 legacy ESM, minified production browser ESM, CJS, and declaration-only ESM.
- Root scripts use pnpm, tsdown, Vitest, TypeScript, oxlint, and oxfmt; build cleans generated output and subsequently strips sourcemap file fields.
- Root, docs, and website are independent pnpm projects rather than workspace packages; root settings select hoisted linking, disable automatic peer installation, and allow esbuild dependency builds.
- The counter-ts application creates its store with external @reduxjs/toolkit and renders App inside the external react-redux Provider; these integrations are outside the Redux core implementation.
- Netlify builds the independent docs and website projects, forcibly fetches external docs, runs Docusaurus, and publishes website/build; npm publishing is a separate manual workflow using provenance.