sea: implement sea.getAssetKeys() · nodejs/node@0bf9775
@@ -221,7 +221,10 @@ executable, users can retrieve the assets using the [`sea.getAsset()`][] and
221221The single-executable application can access the assets as follows:
222222223223```cjs
224-const { getAsset, getAssetAsBlob, getRawAsset } = require('node:sea');
224+const { getAsset, getAssetAsBlob, getRawAsset, getAssetKeys } = require('node:sea');
225+// Get all asset keys.
226+const keys = getAssetKeys();
227+console.log(keys); // ['a.jpg', 'b.txt']
225228// Returns a copy of the data in an ArrayBuffer.
226229const image = getAsset('a.jpg');
227230// Returns a string decoded from the asset as UTF8.
@@ -232,8 +235,8 @@ const blob = getAssetAsBlob('a.jpg');
232235const raw = getRawAsset('a.jpg');
233236```
234237235-See documentation of the [`sea.getAsset()`][], [`sea.getAssetAsBlob()`][] and [`sea.getRawAsset()`][]
236-APIs for more information.
238+See documentation of the [`sea.getAsset()`][], [`sea.getAssetAsBlob()`][],
239+[`sea.getRawAsset()`][] and [`sea.getAssetKeys()`][] APIs for more information.
237240238241### Startup snapshot support
239242@@ -429,6 +432,19 @@ writes to the returned array buffer is likely to result in a crash.
429432 `assets` field in the single-executable application configuration.
430433* Returns: {ArrayBuffer}
431434435+### `sea.getAssetKeys()`
436+437+<!-- YAML
438+added: REPLACEME
439+-->
440+441+* Returns {string\[]} An array containing all the keys of the assets
442+ embedded in the executable. If no assets are embedded, returns an empty array.
443+444+This method can be used to retrieve an array of all the keys of assets
445+embedded into the single-executable application.
446+An error is thrown when not running inside a single-executable application.
447+432448### `require(id)` in the injected main script is not file based
433449434450`require()` in the injected main script is not the same as the [`require()`][]
@@ -503,6 +519,7 @@ to help us document them.
503519[`require.main`]: modules.md#accessing-the-main-module
504520[`sea.getAsset()`]: #seagetassetkey-encoding
505521[`sea.getAssetAsBlob()`]: #seagetassetasblobkey-options
522+[`sea.getAssetKeys()`]: #seagetassetkeys
506523[`sea.getRawAsset()`]: #seagetrawassetkey
507524[`v8.startupSnapshot.setDeserializeMainFunction()`]: v8.md#v8startupsnapshotsetdeserializemainfunctioncallback-data
508525[`v8.startupSnapshot` API]: v8.md#startup-snapshot-api