(...args: unknown[])
| 251 | > |
| 252 | : never; |
| 253 | export function dependency(...args: unknown[]): any { |
| 254 | if (args.length === 0) return dependency; |
| 255 | const [name, defaultFactory] = args as [name: string, defaultFactory?: () => unknown]; |
| 256 | const defaultHandler = |
| 257 | defaultFactory && |
| 258 | (({ resume }: any) => { |
| 259 | resume(defaultFactory()); |
| 260 | }); |
| 261 | return renameFunction( |
| 262 | effect(`dependency:${name}`, { |
| 263 | _overrideFunctionName: false, |
| 264 | ...(typeof defaultFactory === "function" ? { defaultHandler } : {}), |
| 265 | } as {}), |
| 266 | `ask${capitalize(name)}`, |
| 267 | ); |
| 268 | } |
| 269 | |
| 270 | type DependencyName<E extends Effect> = |
| 271 | E extends Effect<`dependency:${infer Name}`, []> ? Name : never; |
no test coverage detected