( fields: R )
| 99 | * @since 0.24.0 |
| 100 | */ |
| 101 | export const struct = <R extends { readonly [x: string]: Monoid<any> }>( |
| 102 | fields: R |
| 103 | ): Monoid<{ readonly [K in keyof R]: [R[K]] extends [Monoid<infer A>] ? A : never }> => { |
| 104 | const empty = {} as any |
| 105 | for (const k in fields) { |
| 106 | if (Object.prototype.hasOwnProperty.call(fields, k)) { |
| 107 | empty[k] = fields[k].empty |
| 108 | } |
| 109 | } |
| 110 | return fromSemigroup(semigroup.struct(fields), empty) |
| 111 | } |
no test coverage detected
searching dependent graphs…