Releases: SchweizerischeBundesbahnen/scion-microfrontend-platform
1.0.0-beta.10
1.0.0-beta.10 (2021-01-25)
Bug Fixes
1.0.0-beta.9
1.0.0-beta.9 (2021-01-18)
Bug Fixes
- devtools: perform scope check when computing dependencies between micro applications (5e43bc3)
- platform: resolve host startup promise only once applications and properties are available (f4067c2)
Features
1.0.0-beta.8
1.0.0-beta.8 (2020-12-18)
Bug Fixes
- platform: allow empty path as url for outlet navigation (8a0a70b)
- platform: ensure trailing slash in application base URLs (62a7a92)
- platform: make platform startup more robust (0d30b72), closes #40 #41
Features
- devtools: add devtools micro application (19db8bf), closes #4
- platform: provide a static list of installed applications in the manifest service (b60015f)
BREAKING CHANGES
- platform: The
HostPlatformState
bean has been removed as no longer necessary, because activator microfrontends are now installed after completing host platform startup, and because the startup Promise waits until connected to the host.
To migrate: Instead of listening for the host platform to enter the 'started' state, wait for the startup Promise to resolve.
Note: You can independently upgrade host and clients to the new version because the platform was not using the platform status at all.
1.0.0-beta.7
1.0.0-beta.7 (2020-11-05)
Code Refactoring
BREAKING CHANGES
- platform: The bean manager was moved from
@scion/microfrontend-platform
to@scion/toolkit
NPM module.
Note: The messaging protocol between host and client HAS NOT CHANGED. You can therefore independently upgrade host and clients to the new version.
To migrate:
- Update
@scion/toolkit
to version10.0.0-beta.3
. - Import following symbols from
@scion/toolkit/bean-manager
instead of from@scion/microfrontend-platform
:BeanManager
,Beans
,Initializer
,InitializerFn
,BeanDecorator
,PreDestroy
,BeanInstanceConstructInstructions
,Type
,AbstractType
. - Replace
InstanceConstructInstructions
withBeanInstanceConstructInstructions
. - Use static methods of the
MicrofrontendPlatform
class to interact with states of the platform lifecycle (formerly viaPlatformState
bean), e.g., to wait for the platform to enter a specific state. In this change, we changed the beanPlatformState
to anenum
to represent platform states (formerlyPlatformStates
).
Migrate as follows:- Beans.get(PlatformState).whenState -> MicrofrontendPlatform.whenState, e.g.,
Beans.get(PlatformState).whenState(PlatformStates.Starting) -> MicrofrontendPlatform.whenState(PlatformStates.Starting)
- Beans.get(PlatformState).state -> MicrofrontendPlatform.state
- Beans.get(PlatformState).state$ -> MicrofrontendPlatform.state$
- Beans.get(PlatformState).whenState -> MicrofrontendPlatform.whenState, e.g.,
- Replace occurrences of
PlatformStates
withPlatformState
. - Control bean destruction order by setting its
destroyOrder
in the options object when registering the bean (formerly by setting the destroy phase). Beans with a lower destroy order are destroyed before beans with a higher destroy order. Beans of the same destroy order are destroyed in reverse construction order. By default, the destroy order is 0. - Registering a bean now returns a handle to unregister the bean (formerly
void
). If registering a bean inside avoid
expression, register it inside a void operator, as follows:void (Beans.register(Bean))
1.0.0-beta.6
1.0.0-beta.6 (2020-09-30)
Bug Fixes
Features
- platform: allow registering beans under a symbol (98bf890), closes #28
- platform: separate message and intent communication APIs (7610eb0)
BREAKING CHANGES
- platform: Use
MessageClient
for topic-based messaging, andIntentClient
for intent-based messaging
Note: The messaging protocol between host and client HAS NOT CHANGED. You can therefore independently upgrade host and clients to the new version.
Breaking changes in MessageClient
Moved or renamed the following methods:
- MessageClient#onMessage$ -> MessageClient.observe$
- MessageClient#issueIntent -> IntentClient.publish
- MessageClient#requestByIntent$ -> IntentClient.request$
- MessageClient#onIntent$ -> IntentClient.observe$
- MessageClient#isConnected -> MicrofrontendPlatform.isConnectedToHost
Renamed options object of the following methods:
- MessageClient#request$: MessageOptions -> RequestOptions
- IntentClient#publish: MessageOptions -> IntentOptions
- IntentClient#request$: MessageOptions -> IntentOptions
Breaking change for decorating MessageClient and IntentClient bean
For Angular developers, see Preparing the MessageClient and IntentClient for use with Angular how to decorate the MessageClient
and IntentClient
for making Observables to emit inside the Angular zone.
Breaking change for disabling messaging in tests
Messaging can now be deactivated via options object when starting the platform. Previously you had to register a NullMessageClient
bean.
MicrofrontendPlatform.connectToHost({messaging: {enabled: false}}
1.0.0-beta.5
1.0.0-beta.5 (2020-07-17)
chore
BREAKING CHANGES
- esm5 and fesm5 format is no longer distributed in
@scion/microfrontend-platform
’s NPM package
We no longer include the distributions for esm5
and fesm5
in the @scion/microfrontend-platform
’s NPM package. Only the formats for esm2015
, fesm2015
, and UMD are distributed. Consequently, the module field in package.json now points to the fesm2015
distribution.
To migrate:
- If requiring
esm5
orfesm5
, you will need to downlevel to ES5 yourself. If using Angular, the Angular CLI will automatically downlevel the code to ES5 if differential loading is enabled in the Angular project, so no action is required from Angular CLI users.
1.0.0-beta.4
1.0.0-beta.4 (2020-07-14)
Bug Fixes
- testapp: do not render the application shell in activator microfrontends (2180257)
Features
1.0.0-beta.3
release: v1.0.0-beta.3
1.0.0-beta.2
release: v1.0.0-beta.2