CT 4.0 is a major enhancement over CT 3.11. Most significantly, it is built on top of the new open source version of BladeRunnerJS.
There are many small changes in the command syntax used to execute BRJS commands and also tweaks to directory structures and configuration option files. For example, to start the development server, type the following command (in Windows).
To list all new and changed commands type:
New coding style
Unbundled source files in development
When debugging, it is easier to send each individual source file down to the browser rather than concatenating them into a bundle. Line numbers seen in the browser will match those in your source file. By default the following tag causes the server to emit multiple files:
To revert to the existing behaviour where all code is downloaded as a single bundle file add the following attribute:
URL version and localisation changes
For previous versions, every time the browser was reloaded in development, the server generated a new version number which was included in the base tag of the index page. Unfortunately this meant that breakpoints were lost between page refreshes, making debugging more difficult. Now in development the URLs remains constant and the HTTP "max-age" response header is set to 0 - forcing all page assets to be re-requested. When a new production artifact is created, a unique version number is assigned that is included in the URLs. The URLs are set to never expire so all assets are cached on the browser until a new version of the app is deployed.
Enhanced dependency analysis
If you want to look at the dependency analysis graph and/or find out why a particular file is being bundled just use the following command:
brjs app-deps dashboard
Which produces the following output:
New BladeRunnerJS core libraries
Caplin Trader uses the new core libraries available in BRJS, including:
Topiarist: Provides enhanced support for inheritance, mixins and class type checking
Fell: A highly performant logging library that allows configurable logging by class and log level.
Event Hub: An implementation of an publish/subscribe service using emitr. You can carry on using the old interface based event hub from Caplin Trader.
Component Interface: A new Component interface using the emitr library. You can carry on using the old component interface from Caplin Trader.