|
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