-
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.