Repository navigation
Commit 202605f
committed
fs: support encoding option in glob
Add an `encoding` option to `fs.glob()`, `fs.globSync()`, and
`fs.promises.glob()`. The glob walker already operates on raw path
bytes; encode results at the native-to-JavaScript boundary instead so
that filenames which are not valid UTF-8 can be returned without loss
when `encoding` is `'buffer'`.
With `withFileTypes`, the `name` and `parentPath` properties of each
Dirent, as well as the values passed to `exclude` callbacks, use the
requested encoding. Filesystem operations, including the lstat used
for path callbacks, keep using the original paths. The default
encoding remains `'utf8'`.
Refs: #59202
Signed-off-by: XadillaX <i@2333.moe>
Assisted-by: Trae1 parent 1d5f8e6 commit 202605f
7 files changed
Lines changed: 437 additions & 56 deletions
File tree
- doc/api
- lib/internal/fs
- src/glob
- test/parallel
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1461 | 1461 | | |
1462 | 1462 | | |
1463 | 1463 | | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
1464 | 1467 | | |
1465 | 1468 | | |
1466 | 1469 | | |
| |||
1478 | 1481 | | |
1479 | 1482 | | |
1480 | 1483 | | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
1481 | 1489 | | |
1482 | 1490 | | |
1483 | 1491 | | |
| |||
3744 | 3752 | | |
3745 | 3753 | | |
3746 | 3754 | | |
| 3755 | + | |
| 3756 | + | |
| 3757 | + | |
3747 | 3758 | | |
3748 | 3759 | | |
3749 | 3760 | | |
| |||
3761 | 3772 | | |
3762 | 3773 | | |
3763 | 3774 | | |
| 3775 | + | |
| 3776 | + | |
| 3777 | + | |
| 3778 | + | |
| 3779 | + | |
3764 | 3780 | | |
3765 | 3781 | | |
3766 | 3782 | | |
| |||
6460 | 6476 | | |
6461 | 6477 | | |
6462 | 6478 | | |
| 6479 | + | |
| 6480 | + | |
| 6481 | + | |
6463 | 6482 | | |
6464 | 6483 | | |
6465 | 6484 | | |
| |||
6469 | 6488 | | |
6470 | 6489 | | |
6471 | 6490 | | |
6472 | | - | |
| 6491 | + | |
| 6492 | + | |
6473 | 6493 | | |
6474 | 6494 | | |
6475 | 6495 | | |
| 6496 | + | |
| 6497 | + | |
| 6498 | + | |
| 6499 | + | |
| 6500 | + | |
6476 | 6501 | | |
6477 | 6502 | | |
6478 | 6503 | | |
| |||
7731 | 7756 | | |
7732 | 7757 | | |
7733 | 7758 | | |
7734 | | - | |
7735 | | - | |
| 7759 | + | |
| 7760 | + | |
7736 | 7761 | | |
7737 | 7762 | | |
7738 | 7763 | | |
| |||
7749 | 7774 | | |
7750 | 7775 | | |
7751 | 7776 | | |
7752 | | - | |
| 7777 | + | |
7753 | 7778 | | |
7754 | 7779 | | |
| 7780 | + | |
7755 | 7781 | | |
7756 | 7782 | | |
7757 | 7783 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
45 | 47 | | |
46 | 48 | | |
47 | | - | |
| 49 | + | |
48 | 50 | | |
49 | 51 | | |
50 | 52 | | |
51 | 53 | | |
52 | 54 | | |
53 | 55 | | |
54 | | - | |
| 56 | + | |
55 | 57 | | |
56 | 58 | | |
57 | 59 | | |
| |||
75 | 77 | | |
76 | 78 | | |
77 | 79 | | |
| 80 | + | |
78 | 81 | | |
79 | 82 | | |
80 | 83 | | |
81 | 84 | | |
82 | 85 | | |
83 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
84 | 91 | | |
85 | 92 | | |
86 | 93 | | |
| |||
126 | 133 | | |
127 | 134 | | |
128 | 135 | | |
129 | | - | |
| 136 | + | |
130 | 137 | | |
131 | 138 | | |
132 | 139 | | |
133 | | - | |
| 140 | + | |
134 | 141 | | |
135 | | - | |
136 | | - | |
| 142 | + | |
| 143 | + | |
137 | 144 | | |
138 | 145 | | |
139 | 146 | | |
140 | 147 | | |
141 | 148 | | |
142 | 149 | | |
143 | 150 | | |
144 | | - | |
| 151 | + | |
145 | 152 | | |
146 | | - | |
| 153 | + | |
147 | 154 | | |
148 | 155 | | |
149 | 156 | | |
150 | 157 | | |
151 | 158 | | |
152 | | - | |
| 159 | + | |
153 | 160 | | |
154 | 161 | | |
155 | 162 | | |
| |||
161 | 168 | | |
162 | 169 | | |
163 | 170 | | |
164 | | - | |
| 171 | + | |
165 | 172 | | |
166 | 173 | | |
167 | 174 | | |
168 | | - | |
| 175 | + | |
169 | 176 | | |
170 | 177 | | |
171 | | - | |
| 178 | + | |
172 | 179 | | |
173 | 180 | | |
174 | 181 | | |
| |||
191 | 198 | | |
192 | 199 | | |
193 | 200 | | |
194 | | - | |
| 201 | + | |
195 | 202 | | |
196 | 203 | | |
197 | 204 | | |
198 | | - | |
| 205 | + | |
199 | 206 | | |
200 | 207 | | |
201 | 208 | | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | 209 | | |
208 | 210 | | |
209 | 211 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1782 | 1782 | | |
1783 | 1783 | | |
1784 | 1784 | | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
| 1795 | + | |
| 1796 | + | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
| 1809 | + | |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
| 1844 | + | |
| 1845 | + | |
| 1846 | + | |
| 1847 | + | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
| 1851 | + | |
1785 | 1852 | | |
1786 | 1853 | | |
1787 | 1854 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
55 | 64 | | |
56 | 65 | | |
57 | 66 | | |
| |||
0 commit comments