File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -189,11 +189,10 @@ To use the VFS with SEA:
189189const fs = require (' node:fs' );
190190const sea = require (' node:sea' );
191191
192- // Check if SEA assets are available
193- if (sea .hasAssets ()) {
194- // Initialize and mount the SEA VFS
195- const vfs = sea .getVfs ();
192+ // Get the SEA VFS (returns null if not running as SEA)
193+ const vfs = sea .getVfs ();
196194
195+ if (vfs) {
197196 // Now you can use standard fs APIs to read bundled assets
198197 const config = JSON .parse (fs .readFileSync (' /sea/config.json' , ' utf8' ));
199198 const data = fs .readFileSync (' /sea/data/file.txt' );
Original file line number Diff line number Diff line change @@ -468,27 +468,6 @@ myVfs.provider.setReadOnly();
468468// myVfs.writeFileSync('/app/config.json', 'new content');
469469```
470470
471- ## Class: ` SEAProvider `
472-
473- <!-- YAML
474- added: REPLACEME
475- -->
476-
477- The ` SEAProvider ` provides read-only access to assets bundled in a Single
478- Executable Application (SEA). It can only be used when running as a SEA.
479-
480- ``` cjs
481- const { create , SEAProvider } = require (' node:vfs' );
482-
483- // Only works in SEA builds
484- try {
485- const seaVfs = create (new SEAProvider ());
486- seaVfs .mount (' /assets' );
487- } catch (err) {
488- console .log (' Not running as SEA' );
489- }
490- ```
491-
492471## Class: ` RealFSProvider `
493472
494473<!-- YAML
Original file line number Diff line number Diff line change @@ -55,21 +55,7 @@ function getSeaVfs(options) {
5555 return cachedSeaVfs ;
5656}
5757
58- /**
59- * Checks if SEA VFS is available (i.e., running as SEA with assets).
60- * @returns {boolean }
61- */
62- function hasSeaAssets ( ) {
63- if ( ! isSea ( ) ) {
64- return false ;
65- }
66- const { getAssetKeys } = internalBinding ( 'sea' ) ;
67- const keys = getAssetKeys ( ) || [ ] ;
68- return keys . length > 0 ;
69- }
70-
7158module . exports = {
7259 createSeaVfs,
7360 getSeaVfs,
74- hasSeaAssets,
7561} ;
Original file line number Diff line number Diff line change @@ -83,7 +83,6 @@ function getAssetKeys() {
8383
8484const {
8585 getSeaVfs : getVfs ,
86- hasSeaAssets : hasAssets ,
8786} = require ( 'internal/vfs/sea' ) ;
8887
8988module . exports = {
@@ -93,5 +92,4 @@ module.exports = {
9392 getAssetAsBlob,
9493 getAssetKeys,
9594 getVfs,
96- hasAssets,
9795} ;
Original file line number Diff line number Diff line change 11'use strict' ;
22
3- const {
4- codes : {
5- ERR_INVALID_STATE ,
6- } ,
7- } = require ( 'internal/errors' ) ;
83const { VirtualFileSystem } = require ( 'internal/vfs/file_system' ) ;
94const { VirtualProvider } = require ( 'internal/vfs/provider' ) ;
105const { MemoryProvider } = require ( 'internal/vfs/providers/memory' ) ;
116const { RealFSProvider } = require ( 'internal/vfs/providers/real' ) ;
127
13- // SEAProvider is lazy-loaded to avoid loading SEA bindings when not needed
14- let SEAProvider ;
15-
16- function getSEAProvider ( ) {
17- if ( SEAProvider === undefined ) {
18- try {
19- SEAProvider = require ( 'internal/vfs/providers/sea' ) . SEAProvider ;
20- } catch {
21- // SEA bindings not available (not running in SEA)
22- SEAProvider = class SEAProviderUnavailable {
23- constructor ( ) {
24- throw new ERR_INVALID_STATE ( 'SEAProvider can only be used in a Single Executable Application' ) ;
25- }
26- } ;
27- }
28- }
29- return SEAProvider ;
30- }
31-
328/**
339 * Creates a new VirtualFileSystem instance.
3410 * @param {VirtualProvider } [provider] The provider to use (defaults to MemoryProvider)
@@ -54,7 +30,4 @@ module.exports = {
5430 VirtualProvider,
5531 MemoryProvider,
5632 RealFSProvider,
57- get SEAProvider ( ) {
58- return getSEAProvider ( ) ;
59- } ,
6033} ;
Original file line number Diff line number Diff line change @@ -3,11 +3,6 @@ const fs = require('fs');
33const sea = require ( 'node:sea' ) ;
44const assert = require ( 'assert' ) ;
55
6- // Test hasSeaAssets() returns true when we have assets
7- const hasAssets = sea . hasAssets ( ) ;
8- assert . strictEqual ( hasAssets , true , 'hasSeaAssets() should return true' ) ;
9- console . log ( 'hasSeaAssets:' , hasAssets ) ;
10-
116// Test getSeaVfs() returns a VFS instance
127const vfs = sea . getVfs ( ) ;
138assert . ok ( vfs !== null , 'getSeaVfs() should not return null' ) ;
Original file line number Diff line number Diff line change @@ -9,13 +9,6 @@ const sea = require('node:sea');
99
1010// Test that SEA functions are exported from sea module
1111assert . strictEqual ( typeof sea . getVfs , 'function' ) ;
12- assert . strictEqual ( typeof sea . hasAssets , 'function' ) ;
13-
14- // Test hasSeaAssets() returns false when not running as SEA
15- {
16- const hasAssets = sea . hasAssets ( ) ;
17- assert . strictEqual ( hasAssets , false ) ;
18- }
1912
2013// Test getSeaVfs() returns null when not running as SEA
2114{
You can’t perform that action at this time.
0 commit comments