Repository navigation
Commit 4991e64
committed
sea: mount bundled assets as a virtual file system
Add a "useVfs" boolean to the SEA configuration. When enabled, the
bundled assets are mounted as a read-only virtual file system before
the main script runs, and the main script is placed at the mount point
root and executed from there via wrapModuleLoad. __filename, __dirname,
relative require() calls, and node_modules lookups then all resolve
against the bundled assets, confined to the mount. Since a VFS never
shadows the real file system, bundled code reaches the assets through
__dirname-relative paths instead of a fixed mount location.
The new SEAProvider derives the directory tree from the asset keys and
keeps asset content in the executable's SEA blob, copying it into JS
memory only when a file is opened. The main script is not duplicated
into the assets at build time; its source already lives in the blob and
is injected into the provider at runtime. The implicit SEA mount does
not emit the VirtualFileSystem experimental warning, which is already
covered by the SEA warning.
"useVfs" is rejected together with "useSnapshot", "useCodeCache",
and "mainFormat": "module"; ESM entry points are left as future
work.
Signed-off-by: Matteo Collina <hello@matteocollina.com>1 parent cb20bb3 commit 4991e64
19 files changed
Lines changed: 915 additions & 2 deletions
File tree
- doc/api
- lib/internal
- main
- vfs
- providers
- src
- test
- fixtures/sea/vfs
- sea
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| 119 | + | |
119 | 120 | | |
120 | 121 | | |
121 | 122 | | |
| |||
175 | 176 | | |
176 | 177 | | |
177 | 178 | | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
178 | 259 | | |
179 | 260 | | |
180 | 261 | | |
| |||
648 | 729 | | |
649 | 730 | | |
650 | 731 | | |
| 732 | + | |
| 733 | + | |
651 | 734 | | |
652 | 735 | | |
653 | 736 | | |
| |||
660 | 743 | | |
661 | 744 | | |
662 | 745 | | |
| 746 | + | |
663 | 747 | | |
664 | 748 | | |
665 | 749 | | |
666 | 750 | | |
667 | 751 | | |
| 752 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
417 | 417 | | |
418 | 418 | | |
419 | 419 | | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
420 | 448 | | |
421 | 449 | | |
422 | 450 | | |
| |||
540 | 568 | | |
541 | 569 | | |
542 | 570 | | |
| 571 | + | |
543 | 572 | | |
544 | 573 | | |
545 | 574 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
16 | 21 | | |
17 | 22 | | |
18 | | - | |
| 23 | + | |
19 | 24 | | |
20 | 25 | | |
21 | 26 | | |
| |||
120 | 125 | | |
121 | 126 | | |
122 | 127 | | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
123 | 147 | | |
124 | 148 | | |
125 | 149 | | |
126 | 150 | | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
127 | 164 | | |
128 | 165 | | |
129 | 166 | | |
| |||
0 commit comments