( loadPage: (after?: string) => Promise<unknown>, )
| 79 | }; |
| 80 | |
| 81 | export const collectRawWorkOSList = async ( |
| 82 | loadPage: (after?: string) => Promise<unknown>, |
| 83 | ): Promise<WorkOSCollectedList<unknown>> => { |
| 84 | const first = Option.getOrNull(decodeRawWorkOSListResponse(await loadPage())); |
| 85 | if (!first) { |
| 86 | return { |
| 87 | object: "list", |
| 88 | data: [], |
| 89 | listMetadata: completedListMetadata, |
| 90 | }; |
| 91 | } |
| 92 | |
| 93 | const data = [...first.data]; |
| 94 | let after = nextCursorFromRawList(first); |
| 95 | |
| 96 | while (after) { |
| 97 | const next = Option.getOrNull(decodeRawWorkOSListResponse(await loadPage(after))); |
| 98 | if (!next) break; |
| 99 | data.push(...next.data); |
| 100 | after = nextCursorFromRawList(next); |
| 101 | } |
| 102 | |
| 103 | return { |
| 104 | object: "list", |
| 105 | data, |
| 106 | listMetadata: completedListMetadata, |
| 107 | }; |
| 108 | }; |
| 109 | |
| 110 | class WorkOSConfigurationError extends Data.TaggedError("WorkOSConfigurationError")<{ |
| 111 | readonly message: string; |
no test coverage detected