MCPcopy Create free account
hub / github.com/Effect-TS/effect / all

Function all

packages/effect/src/internal/config.ts:534–552  ·  view source on GitHub ↗
(
  arg: Arg
)

Source from the content-addressed store, hash-verified

532
533/** @internal */
534export const all = <const Arg extends Iterable<Config.Config<any>> | Record<string, Config.Config<any>>>(
535 arg: Arg
536): Config.Config<
537 [Arg] extends [ReadonlyArray<Config.Config<any>>] ? {
538 -readonly [K in keyof Arg]: [Arg[K]] extends [Config.Config<infer A>] ? A : never
539 }
540 : [Arg] extends [Iterable<Config.Config<infer A>>] ? Array<A>
541 : [Arg] extends [Record<string, Config.Config<any>>] ? {
542 -readonly [K in keyof Arg]: [Arg[K]] extends [Config.Config<infer A>] ? A : never
543 }
544 : never
545> => {
546 if (Array.isArray(arg)) {
547 return tuple(arg) as any
548 } else if (Symbol.iterator in arg) {
549 return tuple([...(arg as Iterable<Config.Config<any>>)]) as any
550 }
551 return struct(arg) as any
552}
553
554const struct = <NER extends Record<string, Config.Config<any>>>(r: NER): Config.Config<
555 {

Callers 1

stm.tsFile · 0.50

Calls 2

tupleFunction · 0.70
structFunction · 0.70

Tested by

no test coverage detected