( pattern: pattern )
| 163 | }); |
| 164 | |
| 165 | function arrayChainable<pattern extends Matcher<any, any, any, any, any>>( |
| 166 | pattern: pattern |
| 167 | ): ArrayChainable<pattern> { |
| 168 | return Object.assign(variadic(pattern), { |
| 169 | optional: () => arrayChainable(optional(pattern)), |
| 170 | select: (key: any) => |
| 171 | arrayChainable( |
| 172 | key === undefined ? select(pattern) : select(key, pattern) |
| 173 | ), |
| 174 | }) as any; |
| 175 | } |
| 176 | |
| 177 | /** |
| 178 | * `P.optional(subpattern)` takes a sub pattern and returns a pattern which matches if the |