|
1 | 1 | import { |
2 | 2 | reactAsyncIterSpecialInfoSymbol, |
| 3 | + parseReactAsyncIterable, |
3 | 4 | type ReactAsyncIterable, |
4 | 5 | type ReactAsyncIterSpecialInfo, |
5 | 6 | } from '../common/ReactAsyncIterable.js'; |
@@ -104,41 +105,28 @@ function iterateFormatted( |
104 | 105 | return formatFn(source, 0); |
105 | 106 | } |
106 | 107 |
|
107 | | - const sourcePrevSpecialInfo = source[reactAsyncIterSpecialInfoSymbol]; |
| 108 | + const { baseIter, formatFn: precedingFormatFn } = parseReactAsyncIterable(source); |
108 | 109 |
|
109 | 110 | return { |
110 | 111 | [Symbol.asyncIterator]: () => asyncIterSyncMap(source, formatFn)[Symbol.asyncIterator](), |
111 | 112 |
|
112 | | - ...(!sourcePrevSpecialInfo |
113 | | - ? { |
114 | | - value: !source.value |
115 | | - ? undefined |
116 | | - : { |
117 | | - current: formatFn(source.value.current, 0), |
118 | | - }, |
119 | | - |
120 | | - [reactAsyncIterSpecialInfoSymbol]: { |
121 | | - origSource: source, |
122 | | - formatFn, |
123 | | - }, |
124 | | - } |
125 | | - : { |
126 | | - value: !source.value |
127 | | - ? undefined |
128 | | - : { |
129 | | - current: (() => { |
130 | | - const prevMapResult = sourcePrevSpecialInfo.formatFn(source.value.current, 0); |
131 | | - return formatFn(prevMapResult, 0); |
132 | | - })(), |
133 | | - }, |
134 | | - |
135 | | - [reactAsyncIterSpecialInfoSymbol]: { |
136 | | - origSource: sourcePrevSpecialInfo.origSource, |
137 | | - formatFn: (value: unknown, i: number) => { |
138 | | - const prevMapResult = sourcePrevSpecialInfo.formatFn(value, i); |
139 | | - return formatFn(prevMapResult, i); |
| 113 | + get value() { |
| 114 | + return !source.value |
| 115 | + ? undefined |
| 116 | + : { |
| 117 | + get current() { |
| 118 | + const result = precedingFormatFn(source.value!.current, 0); |
| 119 | + return formatFn(result, 0); |
140 | 120 | }, |
141 | | - }, |
142 | | - }), |
| 121 | + }; |
| 122 | + }, |
| 123 | + |
| 124 | + [reactAsyncIterSpecialInfoSymbol]: { |
| 125 | + origSource: baseIter, |
| 126 | + formatFn: (value: unknown, i: number) => { |
| 127 | + const result = precedingFormatFn(value, i); |
| 128 | + return formatFn(result, i); |
| 129 | + }, |
| 130 | + }, |
143 | 131 | }; |
144 | 132 | } |
0 commit comments