const.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. export interface Build {
  2. chipFamily: "ESP32" | "ESP8266";
  3. improv: boolean;
  4. parts: {
  5. path: string;
  6. offset: number;
  7. }[];
  8. }
  9. export interface Manifest {
  10. name: string;
  11. builds: Build[];
  12. }
  13. interface BaseFlashState {
  14. state: State;
  15. message: string;
  16. manifest?: Manifest;
  17. build?: Build;
  18. chipFamily?: "ESP32" | "ESP8266" | "ESP32-S2" | "Unknown Chip";
  19. }
  20. export interface InitializingState extends BaseFlashState {
  21. state: State.INITIALIZING;
  22. details: { done: boolean };
  23. }
  24. export interface ManifestState extends BaseFlashState {
  25. state: State.MANIFEST;
  26. details: { done: boolean };
  27. }
  28. export interface PreparingState extends BaseFlashState {
  29. state: State.PREPARING;
  30. details: { done: boolean };
  31. }
  32. export interface ErasingState extends BaseFlashState {
  33. state: State.ERASING;
  34. details: { done: boolean };
  35. }
  36. export interface WritingState extends BaseFlashState {
  37. state: State.WRITING;
  38. details: { bytesTotal: number; bytesWritten: number; percentage: number };
  39. }
  40. export interface FinishedState extends BaseFlashState {
  41. state: State.FINISHED;
  42. }
  43. export interface ErrorState extends BaseFlashState {
  44. state: State.ERROR;
  45. details: { error: FlashError; details: string | Error };
  46. }
  47. export type FlashState =
  48. | InitializingState
  49. | ManifestState
  50. | PreparingState
  51. | ErasingState
  52. | WritingState
  53. | FinishedState
  54. | ErrorState;
  55. export const enum State {
  56. INITIALIZING = "initializing",
  57. MANIFEST = "manifest",
  58. PREPARING = "preparing",
  59. ERASING = "erasing",
  60. WRITING = "writing",
  61. FINISHED = "finished",
  62. ERROR = "error",
  63. }
  64. export const enum FlashError {
  65. FAILED_INITIALIZING = "failed_initialize",
  66. FAILED_MANIFEST_FETCH = "fetch_manifest_failed",
  67. NOT_SUPPORTED = "not_supported",
  68. FAILED_FIRMWARE_DOWNLOAD = "failed_firmware_download",
  69. WRITE_FAILED = "write_failed",
  70. }
  71. declare global {
  72. interface HTMLElementEventMap {
  73. "state-changed": CustomEvent<FlashState>;
  74. }
  75. }