MCPcopy Index your code
hub / github.com/effector/effector

github.com/effector/effector @23.4.4 sqlite

repository ↗ · DeepWiki ↗ · release 23.4.4 ↗
1,263 symbols 5,858 edges 501 files 12 documented · 1% 1 cross-repo links
README

Effector Comet Logo

join gitter build status discord chat become a patron Ask DeepWiki

☄️ effector

Business logic with ease

Visit effector.dev for docs, guides and examples

Table of Contents

Introduction

Effector implements business logic with ease for Javascript apps (React/React Native/Vue/Svelte/Node.js/Vanilla), allows you to manage data flow in complex applications. Effector provides best TypeScript support out of the box.

Effector follows five basic principles:

  • Application stores should be as light as possible - the idea of adding a store for specific needs should not be frightening or damaging to the developer.
  • Application stores should be freely combined - data that the application needs can be statically distributed, showing how it will be converted in runtime.
  • Autonomy from controversial concepts - no decorators, no need to use classes or proxies - this is not required to control the state of the application and therefore the api library uses only functions and plain js objects
  • Predictability and clarity of API - a small number of basic principles are reused in different cases, reducing the user's workload and increasing recognition. For example, if you know how .watch works for events, you already know how .watch works for stores.
  • The application is built from simple elements - space and way to take any required business logic out of the view, maximizing the simplicity of the components.

Installation

You can use any package manager

npm add effector

React

To getting started read our article how to write React and Typescript application.

npm add effector effector-react

SolidJS

npm add effector effector-solid

Vue

npm add effector effector-vue

Svelte

Svelte works with effector out of the box, no additional packages needed. See word chain game application written with svelte and effector.

CDN

  • https://www.jsdelivr.com/package/npm/effector
  • https://cdn.jsdelivr.net/npm/effector/effector.cjs.js
  • https://cdn.jsdelivr.net/npm/effector/effector.mjs
  • https://cdn.jsdelivr.net/npm/effector-react/effector-react.cjs.js
  • https://cdn.jsdelivr.net/npm/effector-vue/effector-vue.cjs.js

Documentation

For additional information, guides and api reference visit our documentation site

Packages

Articles

Community

Online playground

You can try effector with online playground

Code sharing, Typescript and react supported out of the box. Playground repository

DevTools

Use effector-logger for printing updates to console, displaying current store values with ui or connecting application to familiar redux devtools


More examples in documentation

Learn more

Support us

Your support allows us to improve the developer experience 🧡.

Contributors

Dmitry/ Dmitry andretshurotshka/ andretshurotshka Sova/ Sova Alexander Alexander Khoroshikh popuguy/ popuguy Igor Igor Kamyşev
pxbuffer/ pxbuffer Valeriy Valeriy Kobzar Yan/ Yan Ruslan Ruslan @doasync Illia Illia Osmanov mg901/ mg901
Igor Igor Ryzhov Nikita Nikita Kungurcev Edward Edward Gigolaev Viktor/ Viktor Arthur Arthur Irgashev Ilya/ Ilya
Ainur/ Ainur Ilya Ilya Olovyannikov

Extension points exported contracts — how you extend this code

StoreValueType (Interface)
* Hacky way to force TS perform checks against unsafe widening
packages/effector/index.d.ts
UseVModel (Interface)
(no doc)
packages/effector-vue/composition.d.ts
ImportMetaEnv (Interface)
(no doc)
documentation/src/env.d.ts
ExpressiveCodeBlockProps (Interface)
(no doc)
documentation/plugins/expressive-code/data-attributes-plugin.ts
Event (Interface)
(no doc)
src/effector/unit.h.ts
Session (Interface)
(no doc)
examples/react-and-ts/src/shared/api/session.ts
EventCallable (Interface)
(no doc) [1 implementers]
packages/effector/index.d.ts
Vue (Interface)
(no doc)
packages/effector-vue/index.d.ts

Core symbols most depended-on inside this repo

sample
called by 3685
src/effector/sample.ts
createEvent
called by 1853
src/effector/createUnit.ts
createStore
called by 1341
src/effector/createUnit.ts
guard
called by 1046
src/effector/guard.ts
on
called by 586
src/effector/unit.h.ts
watch
called by 433
src/effector/unit.h.ts
argumentHistory
called by 413
src/fixtures/testUtils.js
createEffect
called by 411
src/effector/createEffect.ts

Shape

Function 1,120
Method 90
Interface 30
Class 22
Enum 1

Languages

TypeScript99%
Java1%

Modules by API surface

src/forest/server/customDocument.ts38 symbols
src/effector/unit.h.ts38 symbols
packages/effector/index.d.ts36 symbols
src/types/src/runner/manifold/operators.ts26 symbols
src/babel/plugin/util.ts21 symbols
src/effector/createUnit.ts18 symbols
src/forest/plan/index.ts16 symbols
documentation/src/navigation.ts15 symbols
src/types/src/runner/manifold/tsFacade.ts14 symbols
src/react/__tests__/base/scopes.test.tsx14 symbols
src/effector/kernel.ts14 symbols
src/effector/__tests__/store/lists.test.ts14 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

@algolia/client-search4.22.1 · 1×
@astrojs/mdx3.1.9 · 1×
@astrojs/preact3.5.3 · 1×
@astrojs/tailwind5.1.2 · 1×
@babel/core7.28.0 · 1×
@babel/eslint-parser7.28.0 · 1×
@babel/helper-plugin-utils7.27.1 · 1×
@babel/parser7.28.0 · 1×
@babel/plugin-proposal-class-properties7.5.5 · 1×
@babel/plugin-syntax-flow7.14.5 · 1×
@babel/plugin-transform-class-properties7.27.1 · 1×
@babel/plugin-transform-export-namespace-from7.27.1 · 1×

For agents

$ claude mcp add effector \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact