Page Contents

Home > @loopback/core

core package

The core foundation for LoopBack 4. It can also serve as the platform to build large-scale Node.js applications and frameworks.

Remarks

For examples of how to leverage @loopback/core to build composable and extensible projects, check out the core tutorial.

Classes

Class Description

Application

Application is the container for various types of artifacts, such as components, servers, controllers, repositories, datasources, connectors, and models.

LifeCycleObserverRegistry

A context-based registry for life cycle observers

Functions

Function Description

addExtension(context, extensionPointName, extensionClass, options)

Register an extension for the given extension point to the context

asLifeCycleObserver(binding)

A BindingTemplate function to configure the binding as life cycle observer by tagging it with CoreTags.LIFE_CYCLE_OBSERVER.

asService(serviceInterface)

Create a binding template for a service interface

createServiceBinding(cls, options)

Create a service binding from a class or provider

extensionFilter(extensionPointNames)

A factory function to create binding filter for extensions of a named extension point

extensionFor(extensionPointNames)

A factory function to create binding template for extensions of the given extension point

extensionPoint(name, specs)

Decorate a class as a named extension point. If the decoration is not present, the name of the class will be used.

extensions(extensionPointName, metadata)

Shortcut to inject extensions for the given extension point.

filterByServiceInterface(serviceInterface)

Create a binding filter by service class

isLifeCycleObserver(obj)

Test if an object implements LifeCycleObserver

isLifeCycleObserverClass(ctor)

Test if a class implements LifeCycleObserver

lifeCycleObserver(group, specs)

Sugar decorator to mark a class as life cycle observer

mountComponent(app, component)

Mount a component to an Application.

service(serviceInterface, metadata)

@service injects a service instance that matches the class or interface.

Interfaces

Interface Description

ApplicationConfig

Configuration for application

ApplicationMetadata

Type description for package.json

ClassMap

A map of classes to be bound to a context

Component

A component declares a set of artifacts so that they can be contributed to an application as a group

LifeCycleObserver

Observers to handle life cycle init/start/stop events

ProviderMap

A map of provider classes to be bound to a context

Server

Defines the requirements to implement a Server for LoopBack applications: start() : Promise stop() : Promise It is recommended that each Server implementation creates its own child Context, which inherits from the parent Application context. This way, any Server-specific bindings will remain local to the Server instance, and will avoid polluting its parent module scope.

ServiceOptions

Options to register a service binding

Namespaces

Namespace Description

CoreBindings

Namespace for core binding keys

CoreTags

extensions

Variables

Variable Description

DEFAULT_ORDERED_GROUPS

lifeCycleObserverFilter

Find all life cycle observer bindings. By default, a binding tagged with CoreTags.LIFE_CYCLE_OBSERVER. It’s used as BindingFilter.

Type Aliases

Type Alias Description

ControllerClass

LifeCycleObserverGroup

A group of life cycle observers

LifeCycleObserverOptions

MixinTarget

A replacement for typeof Target to be used in mixin class definitions. This is a workaround for TypeScript limitation described in - https://github.com/microsoft/TypeScript/issues/17293 - https://github.com/microsoft/TypeScript/issues/17744 - https://github.com/microsoft/TypeScript/issues/36060

ServiceInterface

Representing an interface for services. In TypeScript, the interface does not have reflections at runtime. We use a string, a symbol or a Function as the type for the service interface.

ServiceOrProviderClass

ShutdownOptions

Options to set up application shutdown