({initialFileDescriptors, addProperties, options, isSync})
| 160 | // For example, file paths create file read/write streams. |
| 161 | // Those transformations are specified in `addProperties`, which is both direction-specific and type-specific. |
| 162 | const getFinalFileDescriptors = ({initialFileDescriptors, addProperties, options, isSync}) => { |
| 163 | const fileDescriptors = []; |
| 164 | |
| 165 | try { |
| 166 | for (const fileDescriptor of initialFileDescriptors) { |
| 167 | fileDescriptors.push(getFinalFileDescriptor({ |
| 168 | fileDescriptor, |
| 169 | fileDescriptors, |
| 170 | addProperties, |
| 171 | options, |
| 172 | isSync, |
| 173 | })); |
| 174 | } |
| 175 | |
| 176 | return fileDescriptors; |
| 177 | } catch (error) { |
| 178 | cleanupCustomStreams(fileDescriptors); |
| 179 | throw error; |
| 180 | } |
| 181 | }; |
| 182 | |
| 183 | const getFinalFileDescriptor = ({ |
| 184 | fileDescriptor: {direction, objectMode, stdioItems}, |
no test coverage detected