machina.js v6: TypeScript rewrite with monorepo structure#175
Merged
machina.js v6: TypeScript rewrite with monorepo structure#175
Conversation
f4fe859 to
05709f4
Compare
05709f4 to
b272d82
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Complete rewrite of machina.js for v6. The JavaScript source (
src/,lib/,spec/) has been replaced with a TypeScript implementation under a pnpm monorepo structure.What changed:
packages/machina/): Full TypeScript rewrite ofBehavioralFsm,Fsm, emitter, and utilities. New typed API surface withcreateFsmandcreateBehavioralFsmfactory functions alongside class exports. Comprehensive test suite (~4K lines across 3 test files).packages/docs/): Astro/Starlight docs site covering concepts, guides, migration (v5→v6), and example walkthroughs. GitHub Actions workflow for deployment.examples/): Five demo apps — connectivity monitor, dungeon critters game, shopping cart, traffic intersection, and a React checkout flow — each with their own FSM configs, tests, and Vite builds.What was removed:
package-lock.jsonreplaced bypnpm-lock.yaml.Test Plan
pnpm install && pnpm testPre-submission Checks
General Checks
React & Frontend Checks
Unit Test Checks