| 76 | } |
| 77 | |
| 78 | const partitionRequestsById = <I, II>() => <T extends string, A, E>(requests: ReadonlyArray<SqlRequest<T, A, E>>) => { |
| 79 | const len = requests.length |
| 80 | const inputs: Array<II> = new Array(len) |
| 81 | const spanLinks: Array<Tracer.SpanLink> = new Array(len) |
| 82 | const byIdMap = MutableHashMap.empty<I, SqlRequest<T, A, E>>() |
| 83 | |
| 84 | for (let i = 0; i < len; i++) { |
| 85 | const request = requests[i] |
| 86 | inputs[i] = request.encoded as II |
| 87 | spanLinks[i] = request.spanLink |
| 88 | MutableHashMap.set(byIdMap, request.input as I, request) |
| 89 | } |
| 90 | |
| 91 | return [inputs, spanLinks, byIdMap] as const |
| 92 | } |
| 93 | |
| 94 | /** |
| 95 | * @since 1.0.0 |