UNPKG

1.99 kBTypeScriptView Raw
1/**
2 * Facilities to manage artifacts and their dependencies using {@link Context}
3 * in your Node.js applications. It can be used independent of the LoopBack
4 * framework.
5 *
6 * @remarks
7 * This package exposes TypeScript/JavaScript APIs and decorators to register
8 * artifacts, declare dependencies, and resolve artifacts by keys. The
9 * {@link Context} also serves as an IoC container to support dependency
10 * injection.
11 * Context and Binding are the two core concepts. A context is a registry of
12 * bindings and each binding represents a resolvable artifact by the key.
13 *
14 * - Bindings can be fulfilled by a constant, a factory function, a class, or a
15 * provider.
16 * - Bindings can be grouped by tags and searched by tags.
17 * - Binding scopes can be used to control how a resolved binding value is
18 * shared.
19 * - Bindings can be resolved synchronously or asynchronously.
20 * - Provide {@link inject | @inject} and other variants of decorators to
21 * express dependencies.
22 * - Support Constructor, property, and method injections.
23 * - Allow contexts to form a hierarchy to share or override bindings.
24 *
25 * @pakageDocumentation
26 */
27export * from '@loopback/metadata';
28export * from './binding';
29export * from './binding-config';
30export * from './binding-decorator';
31export * from './binding-filter';
32export * from './binding-inspector';
33export * from './binding-key';
34export * from './binding-sorter';
35export * from './context';
36export * from './context-event';
37export * from './context-observer';
38export * from './context-subscription';
39export * from './context-view';
40export * from './inject';
41export * from './inject-config';
42export * from './interception-proxy';
43export * from './interceptor';
44export * from './interceptor-chain';
45export * from './invocation';
46export * from './json-types';
47export * from './keys';
48export * from './provider';
49export * from './resolution-session';
50export * from './resolver';
51export * from './unique-id';
52export * from './value-promise';