- Refactor
@apollosoftwarexyz/cinnamon-internals
to remove namespaces and improve code quality.- Add unit tests to
@apollosoftwarexyz/cinnamon-internals
.
- Add unit tests to
- Add
CinnamonModuleRegistry
for internal modules to improve performance on registering and resolving modules. - Add
CinnamonHookRegistry
for hooks to improve performance on triggering hooks and allow for a centralized, type-safe, set of hooks that are unified and accessible by both plugins and modules.- Deprecate
CinnamonWebServerModulePlugin
in favor of the new hook system andCinnamonHookConsumer
interface.
- Deprecate
- Add
autoConnect
as a configuration option for the database module. - Removed the
terminateOnInitError
option from the database module (it is now always enabled). - Convert the framework passed to each module to a proxy to allow for
additional functionality to be added to the framework without breaking
existing modules.
- Automatically inject a per-module logger into the module's framework proxy.
- Allow modules to register hooks via their proxy, but only allow plugins to trigger hooks (per the API contracts implied by both plugins and modules).
- Added
prepareContext
hook to allow plugins to prepare the context before the request is processed and before hooks are triggered on the request. - Deprecate
em
alias forentityManager
on the database module and remove therequestContext
getter (usectx
instead). - Dropped support for Node.js versions below 18. Now supports Node.js 18+ and tests against Node.js 18, 20.10.0 (LTS) and 21.
- Bump dependencies to latest versions.
- Add array support to Cinnamon's validation library.
- Remove
@apollosoftwarexyz/cinnamon-cli
package in favor ofcreate-cinnamon-project
. - Bump Cinnamon to Yarn 4.0.0.
- Minor code base fixes with by activating the linter.
- Bump all Cinnamon components and modules to v0.1.4.
- Bump general dependencies to latest versions.
- Patch Cinnamon's validation library to more gracefully handle errors when validating invalid payloads (e.g., when an object was expected, but a primitive value was provided).
- Update the body parser middleware to also accept url-encoded payloads by default.
- Add
fileReader
option toSendFileOptions
. This allows the file to be read using a custom file reader function. This is useful for reading files from non-standard locations (e.g. a database or a remote file store such as S3). - Improve preprocessor support by introducing
PreprocessorContext
that allows streaming file contents into a preprocessor (useful for streaming files into a templating engine, minifier or compression tool).
- General availability release
- Add static file preprocessor and
optionalExtensions
option (allows setting of extensions that may be omitted from request URLs) - Add
extensionless
option to allow extensionless URLs to be served (likeoptionalExtensions
but throws a 404 if an extension is explicitly provided) - Add additional hook for error handling (
beforeRegisterErrors
) to allow plugins greater control over error handling and responses. - Inject the Cinnamon framework instance into the request context
(
ctx.framework
).
- General availability release candidate
- Internal pre-release versions