(
results: T[],
options: CompactExecutionPayloadOptions = {}
)
| 232 | * Compacts subflow result aggregates while preserving indexable `results`. |
| 233 | */ |
| 234 | export async function compactSubflowResults<T>( |
| 235 | results: T[], |
| 236 | options: CompactExecutionPayloadOptions = {} |
| 237 | ): Promise<T[]> { |
| 238 | const entryOptions = { ...options, preserveRoot: false } |
| 239 | let compactedResults = (await Promise.all( |
| 240 | results.map((result) => compactExecutionPayload(result, entryOptions)) |
| 241 | )) as T[] |
| 242 | |
| 243 | const aggregate = getJsonAndSize({ results: compactedResults }) |
| 244 | if (aggregate && aggregate.size <= (options.thresholdBytes ?? LARGE_VALUE_THRESHOLD_BYTES)) { |
| 245 | return compactedResults |
| 246 | } |
| 247 | |
| 248 | compactedResults = (await Promise.all( |
| 249 | compactedResults.map((result) => forceStoreValue(result, options)) |
| 250 | )) as T[] |
| 251 | |
| 252 | return compactedResults |
| 253 | } |
| 254 | |
| 255 | export async function compactBlockLogs( |
| 256 | logs: BlockLog[] | undefined, |
no test coverage detected