(
source: Source,
config: EffectConfig = {}
)
| 108 | * ``` |
| 109 | */ |
| 110 | export function createEffect< |
| 111 | Result extends EffectResult<unknown>, |
| 112 | Source extends () => Result, |
| 113 | >( |
| 114 | source: Source, |
| 115 | config: EffectConfig = {} |
| 116 | ): (Source | Result) & CreateEffectMetadata { |
| 117 | const effect = config.functional ? source : source(); |
| 118 | const value: EffectConfig = { |
| 119 | ...DEFAULT_EFFECT_CONFIG, |
| 120 | ...config, // Overrides any defaults if values are provided |
| 121 | }; |
| 122 | Object.defineProperty(effect, CREATE_EFFECT_METADATA_KEY, { |
| 123 | value, |
| 124 | }); |
| 125 | return effect as typeof effect & CreateEffectMetadata; |
| 126 | } |
| 127 | |
| 128 | export function getCreateEffectMetadata<T extends Record<keyof T, Object>>( |
| 129 | instance: T |
no test coverage detected