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.