All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
7.0.7 (2024-10-15)
Note: Version bump only for package @loopback/context
7.0.6 (2024-09-12)
Note: Version bump only for package @loopback/context
7.0.5 (2024-08-14)
Note: Version bump only for package @loopback/context
7.0.4 (2024-07-09)
Note: Version bump only for package @loopback/context
7.0.3 (2024-06-10)
Note: Version bump only for package @loopback/context
7.0.2 (2024-05-17)
Note: Version bump only for package @loopback/context
7.0.1 (2024-04-09)
Note: Version bump only for package @loopback/context
7.0.0 (2024-03-04)
- drop Node.js 16 support (b9efcb4)
- Drop Node.js 16 support in all LB4 modules and extensions
Signed-off-by: dhmlau dhmlau@ca.ibm.com
6.1.5 (2024-01-11)
Note: Version bump only for package @loopback/context
6.1.4 (2023-12-12)
Note: Version bump only for package @loopback/context
6.1.3 (2023-09-12)
Note: Version bump only for package @loopback/context
6.1.2 (2023-08-15)
6.1.1 (2023-07-17)
Note: Version bump only for package @loopback/context
6.1.0 (2023-06-28)
- update dependency @types/node to ^16 (2af42b7)
6.0.0 (2023-05-15)
- add support for node v20 (e23cefa)
- remove support for node v14 (5425762)
- remove support for node v19 (e26a2ac)
- End of life of Node v14
Signed-off-by: Francisco Buceta frbuceta@gmail.com
5.0.10 (2023-04-13)
5.0.9 (2023-03-09)
Note: Version bump only for package @loopback/context
5.0.8 (2023-02-07)
Note: Version bump only for package @loopback/context
5.0.7 (2023-01-09)
Note: Version bump only for package @loopback/context
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
5.0.6 (2022-12-14)
- use new sessions for lazy resolution with getter/view (13e3e10)
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
5.0.5 (2022-11-24)
Note: Version bump only for package @loopback/context
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
5.0.4 (2022-10-13)
- fix compilation errors for TypeScript 4.8.x (4ee90ac)
5.0.3 (2022-08-25)
Note: Version bump only for package @loopback/context
5.0.2 (2022-07-14)
Note: Version bump only for package @loopback/context
5.0.1 (2022-06-13)
Note: Version bump only for package @loopback/context
5.0.0 (2022-05-05)
- remove node v12 support
4.1.2 (2022-03-29)
Note: Version bump only for package @loopback/context
4.1.1 (2022-02-28)
Note: Version bump only for package @loopback/context
4.1.0 (2022-02-14)
- update @types/node to v12 (65a09a4)
4.0.1 (2022-01-11)
Note: Version bump only for package @loopback/context
4.0.0 (2021-11-18)
- drop support for Node.js v10 (9bcbbb3)
- support Node.js v17 (8d86c03)
- upgrade to TypeScript 4.5.2 (72ece91)
- drop support for Node.js v10
Co-authored-by: Francisco Buceta frbuceta@gmail.com Signed-off-by: Rifa Achrinza 25147899+achrinza@users.noreply.github.com
3.18.0 (2021-10-18)
- allow context view to return proxies (8269c21)
3.17.2 (2021-09-16)
Note: Version bump only for package @loopback/context
3.17.1 (2021-07-15)
Note: Version bump only for package @loopback/context
3.17.0 (2021-06-10)
- context: simplify resolutionsession by inlining enterInjection and enterBinding internals (e2a0c4f)
- improve TypeScript typing for AsyncProxy (cc2d85e)
3.16.0 (2021-05-03)
- context: ensure non-proxy value is cached for bindings (96cf5da)
- support node v16 (ac99415)
3.15.1 (2021-04-06)
Note: Version bump only for package @loopback/context
3.15.0 (2021-03-18)
- update package-lock.json to v2 consistently (dfc3fbd)
3.14.1 (2021-02-09)
Note: Version bump only for package @loopback/context
3.14.0 (2021-01-21)
- context: make sure subclass is used for create binding from class (befbbcf)
- context: allow asProxyWithInterceptors to be used for non-class bindings (ebec122)
3.13.2 (2020-12-07)
Note: Version bump only for package @loopback/context
3.13.1 (2020-11-18)
3.13.0 (2020-11-05)
- context: add binding.toInjectable shortcut (230923a)
3.12.0 (2020-10-07)
- context: introduce new binding scopes (9916cfd)
3.11.1 (2020-09-17)
Note: Version bump only for package @loopback/context
3.11.0 (2020-09-15)
- improve handling of missing design-time type metadata (95b6a2b)
- context: add
[@injectable](https://github.com/injectable)
as a preferred decorator for[@bind](https://github.com/bind)
(1f75c35) - allow dynamic value provider classes and classes with @inject to be booted (7b85cdf)
3.10.1 (2020-08-27)
Note: Version bump only for package @loopback/context
3.10.0 (2020-08-19)
- context: propagate resolution session to dynamic value factory (60929f1)
3.9.4 (2020-08-05)
Note: Version bump only for package @loopback/context
3.9.3 (2020-07-20)
- context: destroy debug instances to avoid memory leak (a28d53c)
3.9.2 (2020-06-30)
Note: Version bump only for package @loopback/context
3.9.1 (2020-06-23)
- set node version to >=10.16 to support events.once (e39da1c)
- context: cache binding value or promise as-is to avoid racing condition (38b9b96)
3.9.0 (2020-06-11)
- context: add
tryCatchFinally
helper function for value or promise (c764ac6) - context: add strongly typed
on
andonce
methods (3f14bfa) - context: improve error reporting with more contextual information (2a30484)
- context: use a faster UID generator (e5e3d19)
3.8.2 (2020-05-28)
Note: Version bump only for package @loopback/context
3.8.1 (2020-05-20)
Note: Version bump only for package @loopback/context
3.8.0 (2020-05-19)
- context: check parameter design type for method injections (7e81e10)
- context: allow bindings to be created from dynamic value provider classes (9e15154)
- context: pass resolution context to the factory function for toDynamicValue() (6513d3f)
- context: use a
_source
to keep the original value provider for bindings (90679f3) - core: allow extensionFilter to take a list of extension point names (8f315eb)
3.7.0 (2020-05-07)
- context: allow binding keys to be used with composeInterceptors() (0663c04)
- context: add registerInterceptor helper function and app.interceptor (c760966)
- context: allow composition of intercetors (261e9eb)
- context: allows bindings with singleton/context scopes to be refreshed (8155147)
- context: allows default namespace for bindings from classes (ec2da01)
- context: consolidate uuid generation and testing (5abe25e)
- context: force interceptor functions to return a value (5663a76)
- context: relax parameter type for isProviderClass() (aafe7d0)
3.6.0 (2020-04-29)
- context: add
BindingKey.generate
to generate unique binding keys (9478d31)
3.5.1 (2020-04-23)
Note: Version bump only for package @loopback/context
3.5.0 (2020-04-22)
- update package.json and .travis.yml for builds (cb2b8e6)
- context: allow explicit invocation source for proxies (98115f2)
- context: improve generic typing for binding inspection (819fabb)
3.4.0 (2020-04-11)
- context: expose debug method to subclasses (f651e5b)
3.3.0 (2020-04-08)
- context: fix context observer to catch errors by waitUntilPendingNotificationsDone (3dad6c0)
- remove Node.js 8.x polyfill for Symbol.asyncIterator (eeb8772)
3.2.0 (2020-03-24)
- context: emit bind/unbind events on ContextView (65e3d38)
- context: improve context view for bind/unbind events (6a5f90a)
3.1.0 (2020-03-17)
- context: introduce TagValueMatcher for more flexible tag matching (deaf2ed)
3.0.0 (2020-03-05)
- remove support for Node.js v8.x (4281d9d)
- context: allow tags to be matched by a given name with any value (7cf053e)
- context: remove generic parameters from
BindingFilter
type (1ce33af) - add
tslib
as dependency (a6e0b4c), closes #4676 - context: improve ctx.inspect() to allow classes with colliding names (e7380fc)
- context: The type
BindingFilter
is no longer generic. Please update your code and remove any generic arguments provided for the type.
- BindingFilter<SomeType>
+ BindingFilter
Signed-off-by: Miroslav Bajtoš mbajtoss@gmail.com
- Node.js v8.x is now end of life. Please upgrade to version 10 and above. See https://nodejs.org/en/about/releases.
2.1.1 (2020-02-06)
- context: relax checking on instances of BindingKey class (8668eb6)
2.1.0 (2020-02-05)
- context: allow more options to inspect context/binding objects (3be32a3)
- context: improve context name with the subclass name as prefix (42d2e1b)
- context: tidy up binding information for inspection (15d698b)
2.0.0 (2020-01-27)
- context: add ContextEventListener and tidy up parent event handling (beb41a7)
- context: index bindings by tag to speed up matching by tag (566b9d9)
- context: keep binding tag pattern for BindingTagFilter (856b62d)
- context: make bindings as event emitters to report changes (dddddb9)
- context: refactor context observer subscription into a new class (31ad9a5)
- context: set max listeners to Infinity by default (0741e3b)
- context: use BindingEvent for binding event listeners (ae5febc)
- context: Context events are now emitted as
ContextEvent
objects instead of positional arguments. Context listener functions must switch from the old style to new style as follows:
- Old style
ctx.on('bind', (binding, context) => {
// ...
});
- New style
ctx.on('bind', (event: ContextEvent) => {
// ...
});
Or:
ctx.on('bind', ({binding, context, type}) => {
// ...
});
1.25.1 (2020-01-07)
Note: Version bump only for package @loopback/context
1.25.0 (2019-12-09)
- context: allow global interceptors to be applied based on source types (77cbd01)
- context: make it possible to set source information for interceptions (2a1ccb4)
1.24.0 (2019-11-25)
- context: allow current binding to be injected with
[@inject](https://github.com/inject).binding
(c01b4c6) - context: improve context/binding with inspect/toJSON for metadata dumping (ac399f7)
- core: add @service decorator to inject a service by class/interface (1d80904)
1.23.5 (2019-11-12)
Note: Version bump only for package @loopback/context
1.23.4 (2019-10-24)
Note: Version bump only for package @loopback/context
1.23.3 (2019-10-07)
Note: Version bump only for package @loopback/context
1.23.2 (2019-09-28)
Note: Version bump only for package @loopback/context
1.23.1 (2019-09-27)
Note: Version bump only for package @loopback/context
1.23.0 (2019-09-17)
- context: add more logs to simplify troubleshooting (7752b08)
1.22.1 (2019-09-06)
- context: allow
inject
to be explicitly invoked for class ctor args (6a0d4f2)
1.22.0 (2019-09-03)
- context: add decorator name for @inject., @config., @intercept errors (48e3231)
- context: allow @bind to be applied on the same class multiple times (ad4d22c)
1.21.4 (2019-08-19)
Note: Version bump only for package @loopback/context
1.21.3 (2019-08-15)
Note: Version bump only for package @loopback/context
1.21.2 (2019-08-15)
Note: Version bump only for package @loopback/context
1.21.1 (2019-07-31)
Note: Version bump only for package @loopback/context
1.21.0 (2019-07-26)
- context: allow @config.* to specify the target binding key (42b7b98)
- context: use invocation context for method dependency injection (a8f326c)
1.20.3 (2019-07-17)
Note: Version bump only for package @loopback/context
1.20.2 (2019-06-28)
- address violations of "no-floating-promises" rule (0947531)
1.20.1 (2019-06-21)
Note: Version bump only for package @loopback/context
1.20.0 (2019-06-20)
- context: generalize interceptors and chain for invocations (34d31d8)
1.19.1 (2019-06-17)
Note: Version bump only for package @loopback/context
1.19.0 (2019-06-06)
- context: add
[@global](https://github.com/global)Interceptor
decorator (1010a37)
1.18.0 (2019-06-03)
- replace tslint with eslint (44185a7)
1.17.1 (2019-05-31)
Note: Version bump only for package @loopback/context
1.17.0 (2019-05-30)
- context: allow injection when a class decorator returns a mixin (28cc0a0)
- context: allow optional for a binding without value getter (e211a71)
- context: make parent public for invocation context (19856c6)
- context: cache description of method parameter injections (127f7c2)
1.16.0 (2019-05-23)
- context: add singleValue to ContextView (22bd57f)
- context: leave local bindings and parent unchanged during close (198af88)
- context: support binding config and @inject.config (a392852)
1.15.0 (2019-05-14)
- context: add binding comparator to sort bindings (ae3d61f)
1.14.0 (2019-05-10)
- context: close invocation context only after async is done (e71e990)
- context: add more getters for InvocationContext (12a3ecb)
1.13.0 (2019-05-09)
- context: add support for method interceptors (293188d)
1.12.1 (2019-05-06)
Note: Version bump only for package @loopback/context
1.12.0 (2019-04-20)
- build: add more TypeScript "strict" checks (866aa2f)
- context: add
[@inject](https://github.com/inject).binding
and improve[@inject](https://github.com/inject).setter
(a396274) - context: fix generic typing for BindingFilter (372b406)
1.11.0 (2019-04-11)
- context: instantiate class with non-injected arguments (6699825)
- context: make Injection.metadata a required property (dcc9cac)
1.10.0 (2019-04-09)
- context: always pass the session to ResolverFunction (bf36532)
1.9.0 (2019-04-05)
- context: clear binding cache upon scope or value getter changes (122fe7b)
- context: add a helper function to create a getter from binding filter (41248f3)
- context: add binding.toAlias() to resolve values from another binding (15dcd16)
- context: pass resolution options into binding.getValue() (705dcd5)
1.8.1 (2019-03-22)
Note: Version bump only for package @loopback/context
1.8.0 (2019-03-22)
- context: allow namespace tag for createBindingFromClass (f6fe55e)
- context: honor binding scope from @bind (3b30f01)
- context: improve typing for binding related methods (f6cf0c6)
- context: tidy up context for resolving injections of a singleton binding (f5bf43c)
1.7.0 (2019-03-12)
- context: add @inject.view and extend @inject for multiple bindings (d64268b)
- context: add events to ContextView (fb10efc)
- context: introduce context view to watch bindings by filter (04209f7)
1.6.0 (2019-02-25)
- context: introduce async context observers for bind/unbind events (e5e5fc4)
1.5.1 (2019-02-08)
Note: Version bump only for package @loopback/context
1.5.0 (2019-01-28)
- context: add default template argument for BindingAddress (7113105)
- context: binding filters (ff85e74)
1.4.1 (2019-01-14)
- rework tslint comments disabling "no-unused-variable" rule (a18a3d7)
1.4.0 (2018-12-20)
- context: add
[@bind](https://github.com/bind)
to decorate classes with more information (b8f9792)
1.3.0 (2018-12-13)
- context: add binding.apply(templateFn) (f046b30)
1.2.0 (2018-11-26)
- rest: allow body parsers to be extended (86bfcbc)
1.1.0 (2018-11-14)
- context: add support for context.add(binding) (8f77cef)
- core: allow components to expose an array of bindings (eae0da3)
1.0.1 (2018-11-08)
Note: Version bump only for package @loopback/context
0.13.2 (2018-10-08)
Note: Version bump only for package @loopback/context
0.13.1 (2018-10-05)
Note: Version bump only for package @loopback/context
0.13.0 (2018-10-03)
- context: add a helper
Getter.fromValue()
(4764166)
0.12.13 (2018-09-28)
Note: Version bump only for package @loopback/context
0.12.12 (2018-09-27)
Note: Version bump only for package @loopback/context
0.12.11 (2018-09-25)
Note: Version bump only for package @loopback/context
0.12.10 (2018-09-21)
Note: Version bump only for package @loopback/context
0.12.9 (2018-09-19)
Note: Version bump only for package @loopback/context
0.12.8 (2018-09-12)
Note: Version bump only for package @loopback/context
0.12.7 (2018-09-10)
Note: Version bump only for package @loopback/context
0.12.6 (2018-09-08)
Note: Version bump only for package @loopback/context
0.12.5 (2018-08-24)
Note: Version bump only for package @loopback/context
0.12.4 (2018-08-15)
0.12.3 (2018-08-08)
Note: Version bump only for package @loopback/context
0.12.2 (2018-07-21)
Note: Version bump only for package @loopback/context
0.12.1 (2018-07-20)
Note: Version bump only for package @loopback/context
0.12.0 (2018-07-20)
Note: Version bump only for package @loopback/context
0.11.11 (2018-07-11)
Note: Version bump only for package @loopback/context
0.11.10 (2018-07-10)
Note: Version bump only for package @loopback/context
0.11.9 (2018-06-28)
Note: Version bump only for package @loopback/context
0.11.8 (2018-06-27)
Note: Version bump only for package @loopback/context
0.11.7 (2018-06-20)
Note: Version bump only for package @loopback/context
0.11.6 (2018-06-11)
- context: calculate # of method params with default (f5f5bde)
0.11.5 (2018-06-09)
Note: Version bump only for package @loopback/context
0.11.4 (2018-06-09)
Note: Version bump only for package @loopback/context
0.11.3 (2018-06-08)
- make the code compatible with TypeScript 2.9.x (37aba50)
0.11.2 (2018-05-20)
Note: Version bump only for package @loopback/context
0.11.1 (2018-05-14)
- change index.d.ts files to point to dist8 (42ca42d)
0.11.0 (2018-05-14)
- context: add more utils to resolve valueOrPromises (cc55ef5)
0.10.1 (2018-05-08)
Note: Version bump only for package @loopback/context
0.10.0 (2018-05-03)
0.9.0 (2018-05-03)
0.8.1 (2018-04-25)
Note: Version bump only for package @loopback/context
0.8.0 (2018-04-16)
Note: Version bump only for package @loopback/context
0.7.0 (2018-04-12)
- metadata: add strongly-typed metadata accessors (45f9f80)
0.6.1 (2018-04-11)
Note: Version bump only for package @loopback/context
0.6.0 (2018-04-11)
- change file names to fit advocated naming convention (0331df8)
- context: typed binding keys (685195c)
0.5.3 (2018-04-06)
Note: Version bump only for package @loopback/context
0.5.2 (2018-04-04)
Note: Version bump only for package @loopback/context
0.5.1 (2018-04-02)
Note: Version bump only for package @loopback/context
0.5.0 (2018-03-29)
- context: disable deep clone of injection metadata (7d8a84c)
- context: the
metadata
parameter of@inject
is no longer cloned deeply. It's still cloned shallowly.
0.4.0 (2018-03-23)
- context: add optional typing for Binding (3c494fa)
0.3.0 (2018-03-21)
Note: Version bump only for package @loopback/context
0.2.4 (2018-03-14)
Note: Version bump only for package @loopback/context
0.2.3 (2018-03-13)
Note: Version bump only for package @loopback/context
0.2.2 (2018-03-08)
Note: Version bump only for package @loopback/context
0.2.1 (2018-03-06)
- fix typo of
additional
(2fd7610)
0.2.0 (2018-03-01)
Note: Version bump only for package @loopback/context
0.1.2 (2018-03-01)
- context: add type as a generic parameter to
ctx.get()
and friends (24b217d) - context: allow context.find by a filter function (9b1e26c)
- context: use Readonly to guard immutable values (871ddef)
- context:
ctx.get()
andctx.getSync()
require a type now. See the example below for upgrade instructions:
- const c: MyController = await ctx.get('MyController');
+ const c = await ctx.get<MyController>('MyController');
isPromise
was renamed to isPromiseLike
and acts as a type guard for
PromiseLike
, not Promise
. When upgrading affected code, you need to
determine whether the code was accepting any Promise implementation (i.e.
PromiseLike
) or only native Promises. In the former case, you should use
isPromiseLike
and potentially convert the userland Promise instance to a
native Promise via Promise.resolve(promiseLike)
. In the latter case, you can
replace isPromise(p)
with p instanceof Promise
.
0.1.1 (2018-02-23)
- context: fix optional param injection for methods (801a82d)
0.1.0 (2018-02-21)
Note: Version bump only for package @loopback/context
4.0.0-alpha.32 (2018-02-15)
- context: formalize injection metadata as an interface (7ffc1e5)
4.0.0-alpha.31 (2018-02-07)
- build: fix tslint config and slipped violations (22f8e05)
- context: address review comments (3925296)
- context: pass metadata to
[@inject](https://github.com/inject).tag
(27e26e9)
- context: add @inject.context for context injection (6e0deaf)
- context: add decorator & optional attrs to injection metadata (3a1c7de)
- context: add name to context (21e1daf)
- context: add unbind() to allow remove bindings by key (b9c3893)
- context: enhance binding caching to be context aware (7b7eb30)
- context: reports the resolution path for circular deps (bc4ce20)
- Support for Node.js version lower than 8.0 has been dropped. Please upgrade to the latest Node.js 8.x LTS version.
Co-Authored-by: Taranveer Virk taranveer@virk.cc
4.0.0-alpha.30 (2018-02-04)
- remove console output from tests (ff4a320)
4.0.0-alpha.29 (2018-01-30)
Note: Version bump only for package @loopback/context
4.0.0-alpha.28 (2018-01-29)
Note: Version bump only for package @loopback/context
4.0.0-alpha.27 (2018-01-26)
- apply source-maps to test errors (76a7f56), closes #602
- make mocha self-contained with the source map support (7c6d869)
4.0.0-alpha.26 (2018-01-19)
- address review comments (76d3ec3)
- context: add resolution-session.ts for api docs (25a9e91)
- context: allow session to be passed into @inject.getter (0517ea1)
- context: clean up the circular dependency tests (5c35ccd)
- context: fix the test to avoid UnhandledPromiseRejectionWarning (6a82c4d)
- make sure TS compiler infer undefined (4c48ece)
- propagate errors via promises (204c1b7)
- use version range for @types/debug (3adbc0b)
- context: add @inject.tag to allow injection by a tag (fc8f260)
- context: add more debug statements (38eab3e)
- context: enable detection of circular dependencies (72b4190)
- context: forbid bind().to() a Promise instance (#854) (85ffa8b)
- context: track injections with ResolutionSession (cd4848e)
- context: use one stack to track bindings and injections (b2f7eda)
- context: It is no longer possible to pass a promise instance to
.to()
method of a Binding. Use.toDynamicValue()
instead. Consider deferring the async computation (that produced the promise instance you are binding) into the dynamic value getter function, i.e. start the async computation only from the getter function.
An example diff showing how to upgrade your existing code:
- ctx.bind('bar').to(Promise.resolve('BAR'));
- ctx.bind('bar').toDynamicValue(() => Promise.resolve('BAR'));
4.0.0-alpha.25 (2018-01-11)
- context: export function to build binding key with path (fd804a5)
4.0.0-alpha.24 (2017-12-21)
Note: Version bump only for package @loopback/context
4.0.0-alpha.23 (2017-12-15)
- Improve test coverage for metadata inspector (3b4b552)
- context: Add decorator factories (f517570)
- Add metadata inspector (c683019)
- Use decorator factories (88ebd21)
4.0.0-alpha.22 (2017-12-11)
- Fix node module names in source code headers (0316f28)
4.0.0-alpha.21 (2017-11-29)
- context: Allow patterns to be RegExp (991cf38)
4.0.0-alpha.20 (2017-11-14)
- context: Add support for method dependency injection (df1c879)
4.0.0-alpha.19 (2017-11-09)
Note: Version bump only for package @loopback/context
4.0.0-alpha.18 (2017-11-06)
Note: Version bump only for package @loopback/context
4.0.0-alpha.17 (2017-10-31)
Note: Version bump only for package @loopback/context
4.0.0-alpha.16 (2017-10-31)
Note: Version bump only for package @loopback/context