Skip to content

refactor: typing improvements#1894

Merged
pedrolamas merged 1 commit into
fluidd-core:developfrom
pedrolamas:pedrolamas/refactor-types-object-freeze
Jun 28, 2026
Merged

refactor: typing improvements#1894
pedrolamas merged 1 commit into
fluidd-core:developfrom
pedrolamas:pedrolamas/refactor-types-object-freeze

Conversation

@pedrolamas

Copy link
Copy Markdown
Member

Refactor to improve some types and freeze to ignore reactivity and improve performance

Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
@pedrolamas pedrolamas added this to the 1.37.3 milestone Jun 28, 2026
@pedrolamas pedrolamas requested a review from Copilot June 28, 2026 10:23
@pedrolamas pedrolamas added the Code - Optimizations Everything that relates to code optimizations! label Jun 28, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors several Vuex store state shapes to strengthen TypeScript immutability guarantees and reduce Vue 2 reactivity overhead by freezing data received from Moonraker/Spoolman, aligning with Fluidd’s pattern of treating socket payloads as immutable snapshots.

Changes:

  • Tighten Spoolman typings (e.g., multi_color_direction as a string-literal union).
  • Make multiple store state collections/objects readonly and freeze assigned payloads to avoid unnecessary deep reactivity.
  • Propagate readonly typing to a filesystem widget getter consuming files/getRootFiles.

Reviewed changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/typings/moonraker.spoolman.d.ts Adds a constrained union type for filament multi-color direction.
src/store/spoolman/types.ts Marks info and spools state as readonly to reflect immutability.
src/store/spoolman/mutations.ts Freezes spools/info payloads on assignment.
src/store/jobQueue/types.ts Marks queuedJobs as a readonly array.
src/store/jobQueue/mutations.ts Freezes queued job arrays when committing to state.
src/store/history/types.ts Makes history job elements readonly at the type level.
src/store/history/mutations.ts Freezes history job objects when storing/updating them.
src/store/files/types.ts Applies readonly typing to roots, disk usage, root files, and directory entries.
src/store/files/mutations.ts Freezes file/dir/diskUsage entries and root arrays to limit reactivity churn.
src/store/console/types.ts Makes console entries and gcodeHelp readonly at the type level.
src/store/console/mutations.ts Freezes gcodeHelp payload on assignment.
src/components/widgets/filesystem/FileSystemGoToFileDialog.vue Updates rootFiles getter typing to readonly to match store.

Comment thread src/store/jobQueue/mutations.ts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 12 changed files in this pull request and generated no new comments.

@pedrolamas pedrolamas merged commit bb92391 into fluidd-core:develop Jun 28, 2026
4 checks passed
@pedrolamas pedrolamas deleted the pedrolamas/refactor-types-object-freeze branch June 28, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Code - Optimizations Everything that relates to code optimizations!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants