-
Notifications
You must be signed in to change notification settings - Fork 1
Description
I am new to this package so feel free to correct me at any point :D
Currently the docs says that to construct a class MicropythonFsHex
, we need a plain MicroPython HEX image without a filesystem. That being said, if we need to inspect the filesystem a given HEX image with a filesystem already included, we need yet another HEX image with no filesystem, load that first, then import the HEX-to-inspect into the loaded image.
Is there a shortcut? From the importing feature I think this package has complete features already present to inspect filesystems in a HEX string. Perhaps exposing such a direct-inspect API would be of more convenient to at least a fraction of users.
After a bit of digging the internals I have found that there are indeed functions present and documented as said above, like this:
microbit-fs/src/micropython-fs-builder.ts
Lines 461 to 475 in 8b4343c
/** | |
* Reads the filesystem included in a MicroPython Intel Hex string or Map. | |
* | |
* @throws {Error} When multiple files with the same name encountered. | |
* @throws {Error} When a file chunk points to an unused chunk. | |
* @throws {Error} When a file chunk marker does not point to previous chunk. | |
* @throws {Error} When following through the chunks linked list iterates | |
* through more chunks and used chunks (sign of an infinite loop). | |
* | |
* @param intelHex - The MicroPython Intel Hex string or MemoryMap to read from. | |
* @returns Dictionary with the filename as key and byte array as values. | |
*/ | |
function getIntelHexFiles( | |
intelHex: string | MemoryMap | |
): { [filename: string]: Uint8Array } { |
However these are not exported in index.ts
:
Lines 1 to 3 in 8b4343c
export * from './micropython-appended'; | |
export * from './micropython-fs-hex'; | |
export * from './hex-mem-info'; |
Adding a single line will solve this issue, but it will add a lot of public APIs to the module. Still, given that all these functions have been properly documented, it could still be a reasonable choice.