Commit c1d1472
committed
fs: handle early writeFile stream errors
Attach a temporary error listener to readable stream inputs before
opening the destination file. This lets writeFile() reject with the
stream error instead of allowing an early source error to become an
uncaught exception.
Remove the listener when the write finishes or when opening the
destination fails.
Signed-off-by: cookesan <6601329+cookesan@users.noreply.github.com>1 parent 614050b commit c1d1472
3 files changed
Lines changed: 155 additions & 16 deletions
File tree
- lib/internal/fs
- test/parallel
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
111 | 115 | | |
112 | 116 | | |
113 | 117 | | |
| |||
1116 | 1120 | | |
1117 | 1121 | | |
1118 | 1122 | | |
1119 | | - | |
1120 | | - | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
1121 | 1153 | | |
1122 | | - | |
| 1154 | + | |
| 1155 | + | |
1123 | 1156 | | |
1124 | | - | |
1125 | | - | |
1126 | | - | |
1127 | | - | |
1128 | | - | |
1129 | | - | |
1130 | | - | |
1131 | | - | |
| 1157 | + | |
| 1158 | + | |
1132 | 1159 | | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
1133 | 1172 | | |
| 1173 | + | |
| 1174 | + | |
1134 | 1175 | | |
1135 | 1176 | | |
1136 | 1177 | | |
| 1178 | + | |
1137 | 1179 | | |
1138 | 1180 | | |
1139 | 1181 | | |
| |||
1891 | 1933 | | |
1892 | 1934 | | |
1893 | 1935 | | |
| 1936 | + | |
| 1937 | + | |
| 1938 | + | |
1894 | 1939 | | |
1895 | | - | |
| 1940 | + | |
| 1941 | + | |
1896 | 1942 | | |
1897 | | - | |
| 1943 | + | |
| 1944 | + | |
| 1945 | + | |
| 1946 | + | |
| 1947 | + | |
| 1948 | + | |
| 1949 | + | |
1898 | 1950 | | |
1899 | | - | |
1900 | | - | |
| 1951 | + | |
| 1952 | + | |
1901 | 1953 | | |
1902 | 1954 | | |
1903 | 1955 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
| |||
65 | 66 | | |
66 | 67 | | |
67 | 68 | | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
68 | 78 | | |
69 | 79 | | |
70 | 80 | | |
| |||
94 | 104 | | |
95 | 105 | | |
96 | 106 | | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
97 | 126 | | |
98 | 127 | | |
99 | 128 | | |
| |||
190 | 219 | | |
191 | 220 | | |
192 | 221 | | |
| 222 | + | |
193 | 223 | | |
194 | 224 | | |
195 | 225 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
28 | 39 | | |
29 | 40 | | |
30 | 41 | | |
| |||
40 | 51 | | |
41 | 52 | | |
42 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
43 | 63 | | |
44 | 64 | | |
45 | 65 | | |
| |||
70 | 90 | | |
71 | 91 | | |
72 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
73 | 121 | | |
74 | 122 | | |
75 | 123 | | |
| |||
86 | 134 | | |
87 | 135 | | |
88 | 136 | | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
89 | 143 | | |
90 | 144 | | |
91 | 145 | | |
| |||
168 | 222 | | |
169 | 223 | | |
170 | 224 | | |
| 225 | + | |
| 226 | + | |
171 | 227 | | |
172 | 228 | | |
| 229 | + | |
173 | 230 | | |
174 | 231 | | |
175 | 232 | | |
| |||
0 commit comments