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

Function createEffect

src/effector/createEffect.ts:33–223  ·  view source on GitHub ↗
(
  nameOrConfig: any,
  maybeConfig: any = {},
)

Source from the content-addressed store, hash-verified

31}
32
33export function createEffect<Params, Done, Fail = Error>(
34 nameOrConfig: any,
35 maybeConfig: any = {},
36): Effect<Params, Done, Fail> {
37 const config = flattenConfig(
38 isFunction(nameOrConfig) ? {handler: nameOrConfig} : nameOrConfig,
39 maybeConfig,
40 )
41 const errorTitle = generateErrorTitle('effect', config)
42 const instance = createEvent(
43 isFunction(nameOrConfig) ? {handler: nameOrConfig} : nameOrConfig,
44 {...maybeConfig, actualOp: EFFECT},
45 ) as unknown as Effect<Params, Done, Fail>
46 setUnitTrace(instance, getUnitTrace(createEffect))
47 const node = getGraph(instance)
48 setMeta(node, 'op', (instance.kind = EFFECT))
49 //@ts-expect-error
50 instance.use = (fn: Function) => {
51 assert(isFunction(fn), '.use argument should be a function', errorTitle)
52 runner.scope.handler = fn
53 return instance
54 }
55 instance.use.getCurrent = () => runner.scope.handler
56 const anyway = (instance.finally = createEvent({
57 named: 'finally',
58 derived: true,
59 }))
60 const done = (instance.done = (anyway as any).filterMap({
61 named: 'done',
62 fn({
63 status,
64 params,
65 result,
66 }: {
67 status: 'done' | 'fail'
68 params: Params
69 result: Done
70 error: Fail
71 }) {
72 if (status === 'done') return {params, result}
73 },
74 }))
75 const fail = (instance.fail = (anyway as any).filterMap({
76 named: 'fail',
77 fn({
78 status,
79 params,
80 error,
81 }: {
82 status: 'done' | 'fail'
83 params: Params
84 result: Done
85 error: Fail
86 }) {
87 if (status === 'fail') return {params, error}
88 },
89 }))
90 const doneData = (instance.doneData = done.map({

Callers 15

rfc1.test.tsxFile · 0.90
useStore.test.tsxFile · 0.90
useUnit.test.tsxFile · 0.90
useList.test.tsxFile · 0.90
scopes.test.tsxFile · 0.90
runEffectFunction · 0.90
handlersFunction · 0.90
CompFunction · 0.90
createModelFunction · 0.90

Calls 15

flattenConfigFunction · 0.90
isFunctionFunction · 0.90
generateErrorTitleFunction · 0.90
createEventFunction · 0.90
setUnitTraceFunction · 0.90
getUnitTraceFunction · 0.90
getGraphFunction · 0.90
setMetaFunction · 0.90
assertFunction · 0.90
createNodeFunction · 0.90
calcFunction · 0.90
getForkPageFunction · 0.90

Tested by 12

runEffectFunction · 0.72
handlersFunction · 0.72
CompFunction · 0.72
createModelFunction · 0.72
dumbFunction · 0.72
factoryAFunction · 0.72
variadicEffectFunction · 0.72
incorrectFunction · 0.72
faFunction · 0.72
fFunction · 0.72
nameClashCheckFunction · 0.72
faFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…