Change Log
Flamework is finally entering its long overdue v1.0.0, and along comes with a plethora of changes.
There have been many breaking changes made to ensure the longevity of Flamework and you should read all of these changes before migrating to v1.0.0.
A migration guide detailing the larger changes has been included here but it is still recommended that you read the full release notes.
@flamework/core
@flamework/components
@flamework/networking
rbxts-transformer-flamework
This release contains breaking changes.
Breaking Changes
Packages that depend on Flamework v1.0.0-beta will not be compatible with Flamework v1.0.0 projects.
- Flamework decorators are now evaluated in the opposite order (bottom -> top) to match TypeScript behavior.
Core
- Flamework decorators now support abstract classes.
- Improved glob support
- The
@External() decorator has been renamed to @Optional() to better communicate intent.
- The
Flamework.registerExternalClass function has been renamed to Flamework.includeOptionalClass.
- It is no longer necessary to explicitly include optional singletons, if they are part of your game's dependency graph.
Reflect.metadata, Reflect.objToId and Reflect.decorators are no longer exposed.
Flamework.Testing was removed.
Flamework.isInitialized, Flamework.flameworkConfig have been removed.
Flamework.ignite() no longer accepts a config object.
Modding.Generic and Modding.Caller have been renamed to Modding.GenericMany and Modding.CallerMany respectively.
- The new
Modding.Generic and Modding.Caller types are able to fetch individual metadata rather than an object containing metadata.
Flamework.hash now uses type arguments, such as Flamework.hash<"text", "context">()
Dependency(T) syntax has been removed in favor of Dependency<T>() for the sake of consistency.
Components
Networking
Additions
Core
Components
Networking
- Networking configuration refactor
- Improved networking handlers
- Removed type-based symbol obfuscation, which avoids a common roblox-ts bug with incremental mode.
- Networking is now mocked in edit mode to support use cases like UI stories.
- Server config and generated type guards are no longer exposed to the client by default.
- Improved stability, all builtin Flamework macros have been converted to use the user macro machinery.
- Added guard generation support for the
Font datatype. I know, you're welcome.
- User macros now support union parameters, to optionally generate metadata.
Modding.Many user macro types can now be nested.
- Fixed some incorrect node factory functions, which caused Flamework to erase certain tokens are generated emit.