Releases: jpex-js/jpex
Releases · jpex-js/jpex
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.0
v4.1.0
v4.0.0
4.0.0 (2020-09-25)
Bug Fixes
Code Refactoring
- removed $options functionality (e357aaa), closes #80
- stop parsing functions to extract dependencies (14db702), closes #77
Features
- add flags for node modules, globals, and optional (32fa3d4), closes #75
- auto resolve globals (8c01223), closes #69
- change signatures (240b6db), closes #68
- drop IE support (53508cc), closes #83
- dual type alias (833c205), closes #88
- nicer syntax for resolveWith (2489926), closes #78
- precedence config option (f013c88), closes #81
- use babel plugin lib (3010bd1), closes #94
- use resolve babel parser (79bb4b4), closes #84
BREAKING CHANGES
- an es5-specific build is included in the dist
- any $options code will no longer work
- will now need to explicitly delcare dependencies or use TS inference
2.1.0
- if an option in the
propertiesconfig is null, jpex will no longer throw an error - Passing
$optionsinto aJpex as a Serviceservice now works Jpex.register.service().bindToInstance()allows you to bind dependencies to a service instanceJpex.$encasemethod allows you to wrap a function with a number of dependencies
2.0.0
2.0.0
Features
- Can now pass in a
configoption when extending a class. Any properties of the config option will be used as default values for that class and its descendants. - The default lifecycle for factories registered against a class can now be configured using the
defaultLifecycleoption. - Methods option has been added (which replaces the prototype option from v1).
- Properties option has been added, allowing you to predefine getters, setters, and watchers on any instance properties.
- the
bindToInstanceoption can now accept a nested property name, i.e.bindToInstance : 'foo.bah' - Node-specific code has been isolated so the core jpex module can be included in any webpack/browserify build. (see depcrecation of jpex-web below)
- Added a pre-compiled build of Jpex at
jpex/dist/jpex.jsandjpex/dist/jpex.min.js - Default factories (
$timeout,$promise, etc.) have been separated from the core module. They now must be installed separately from the jpex-defaults, jpex-node, and jpex-web packages. - The
$resolvemethod is now available as a static method on every class, so dependencies can be resolved withClass.$resolve(name). This allows for Jpex to be used as a container rather than forcing the class instantiation pattern. $resolvecan be called with an array of dependencies to resolve instead of just one.- Cached factories (i.e. with a
classorapplicationlifecycle) can be cleared withClass.$clearCache(). - Added
decoratorsthat allow a factory to be altered before being resolved. Can be registered like normal factories i.e.Class.register.decorator(name, fn) - A complete plugin API has been created that allows plugins to hook into a number of lifecycle events.
Breaking Changes
- The
prototypeoption has been replaced withmethods - The jpex-web version of Jpex has been deprecated. Instead, Jpex can be
required'd with webpack/browserify, or a web-safe js file can be found atjpex/dist/jpex.js/ - Internal variables have been renamed. e.g.
Class._factoriesis nowClass.$$factories. - Default factories (
$timeout,$promise, etc.) have been separated from the core module. They now must be installed separately from the jpex-defaults, jpex-node, and jpex-web packages. - After deprecating its use in v1.3.0, the
singletonoption has been removed from factory registration.Class.register.factory(name, fn, true/false)should now be written asClass.register.factory(name, fn).lifecycle.application() - Following depcrecation in v1.4.0, the static methods
TypeofandCopyhave been removed. - Factory registration methods have been renamed to camelCase:
Jpex.Register.FactorybecomesJpex.register.factory, for example. Interfaceshave been completely removed from the module. This was an experimental feature that in the end was more overhead than it was worth.- A number of spurious factory types have been removed: enum, errorType, file, folder, interface, nodeModule - although the nodeModule factory type is still available via the jpex-node package as
Class.register.node_module. - Ancestoral dependencies have been removed so depending on
["^someParentFactory"]will no longer work. The equivalent can now be achieved with decorators.
1.4.1
Bugs
$copy.extendno longer combines arrays, but instead replaces the previous array value.$timeout $immediate $interval $tickbug fixed when attaching to a class instance.- Added a
clear()method to the timer factories that clear the respective timeouts.