@loopback/docs 3.26.1 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -0
- package/package.json +5 -5
- package/site/Authorization-component-authorizer.md +3 -0
- package/site/Community-extensions.md +4 -0
- package/site/DEVELOPING.md +2 -2
- package/site/Examples.md +4 -0
- package/site/Include-filter.md +5 -0
- package/site/LoopBack-types.md +1 -1
- package/site/apidocs/authentication.authenticateactionprovider.md +0 -1
- package/site/apidocs/authentication.authenticationbindings.auth_action.md +0 -1
- package/site/apidocs/authentication.authenticationbindings.metadata.md +0 -1
- package/site/apidocs/authentication.authenticationbindings.strategy.md +0 -1
- package/site/apidocs/authentication.authenticationbindings.user_profile_factory.md +0 -1
- package/site/apidocs/authentication.userservice.verifycredentials.md +0 -2
- package/site/apidocs/authorization.authorizationoptions.md +2 -2
- package/site/apidocs/boot.bootmixin.md +2 -2
- package/site/apidocs/context.aliasbindingsource.md +1 -1
- package/site/apidocs/context.any_tag_value.md +0 -1
- package/site/apidocs/context.asyncproxy.md +0 -2
- package/site/apidocs/context.binding.apply.md +0 -1
- package/site/apidocs/context.binding.configure.md +0 -1
- package/site/apidocs/context.binding.getvalue.md +0 -1
- package/site/apidocs/context.binding.tag.md +0 -1
- package/site/apidocs/context.binding.to.md +0 -1
- package/site/apidocs/context.binding.todynamicvalue.md +0 -1
- package/site/apidocs/context.binding.toinjectable.md +0 -1
- package/site/apidocs/context.binding.toprovider.md +0 -1
- package/site/apidocs/context.bindingcomparator.md +0 -1
- package/site/apidocs/context.bindingfilter.md +0 -1
- package/site/apidocs/context.bindingkey.create.md +0 -1
- package/site/apidocs/context.classbindingsource.md +1 -1
- package/site/apidocs/context.constantbindingsource.md +1 -1
- package/site/apidocs/context.context._constructor_.md +0 -1
- package/site/apidocs/context.context._debug.md +0 -1
- package/site/apidocs/context.context.createview.md +2 -1
- package/site/apidocs/context.context.get.md +0 -1
- package/site/apidocs/context.context.get_1.md +0 -1
- package/site/apidocs/context.context.getdebugnamespace.md +0 -1
- package/site/apidocs/context.context.getscopedcontext.md +1 -1
- package/site/apidocs/context.context.getsync.md +0 -1
- package/site/apidocs/context.context.getsync_1.md +0 -1
- package/site/apidocs/context.context.md +1 -1
- package/site/apidocs/context.context.unbind.md +0 -1
- package/site/apidocs/context.contextview._constructor_.md +2 -1
- package/site/apidocs/context.contextview.asgetter.md +2 -2
- package/site/apidocs/context.contextview.md +1 -1
- package/site/apidocs/context.contextview.resolve.md +2 -2
- package/site/apidocs/context.contextview.singlevalue.md +2 -2
- package/site/apidocs/context.contextview.values.md +2 -2
- package/site/apidocs/context.createviewgetter_1.md +2 -2
- package/site/apidocs/context.dynamicvaluebindingsource.md +1 -1
- package/site/apidocs/context.dynamicvalueproviderclass.md +0 -1
- package/site/apidocs/context.genericinterceptor.md +0 -1
- package/site/apidocs/context.inject.binding.md +0 -1
- package/site/apidocs/context.inject.context.md +0 -1
- package/site/apidocs/context.inject.tag.md +0 -1
- package/site/apidocs/context.inject.view.md +0 -1
- package/site/apidocs/context.injectionmetadata.md +2 -2
- package/site/apidocs/context.intercept.md +0 -1
- package/site/apidocs/context.provider.md +0 -1
- package/site/apidocs/context.providerbindingsource.md +1 -1
- package/site/apidocs/context.resolvelist.md +0 -2
- package/site/apidocs/context.resolvemap.md +0 -2
- package/site/apidocs/context.resolverfunction.md +0 -1
- package/site/apidocs/context.setter.md +0 -1
- package/site/apidocs/context.typenamespacemapping.md +0 -1
- package/site/apidocs/core.application.component.md +0 -1
- package/site/apidocs/core.application.controller.md +0 -1
- package/site/apidocs/core.application.md +1 -1
- package/site/apidocs/core.application.server.md +0 -1
- package/site/apidocs/core.application.servers.md +0 -1
- package/site/apidocs/core.application.service.md +0 -1
- package/site/apidocs/core.application.state.md +1 -1
- package/site/apidocs/core.component.bindings.md +0 -1
- package/site/apidocs/core.component.classes.md +0 -1
- package/site/apidocs/core.component.providers.md +0 -1
- package/site/apidocs/core.extensionpoint.md +0 -1
- package/site/apidocs/core.extensions.list.md +2 -2
- package/site/apidocs/core.extensions.md +2 -2
- package/site/apidocs/core.extensions.view.md +2 -2
- package/site/apidocs/core.lifecycleobserveroptions.md +1 -0
- package/site/apidocs/core.md +1 -1
- package/site/apidocs/core.mixintarget.md +0 -3
- package/site/apidocs/core.service.md +0 -1
- package/site/apidocs/cron.cronjob.md +0 -1
- package/site/apidocs/express.expressmiddlewareinterceptorprovider.md +0 -2
- package/site/apidocs/express.invokeexpressmiddleware.md +0 -1
- package/site/apidocs/express.middleware.md +0 -1
- package/site/apidocs/express.middlewaremixin.md +2 -2
- package/site/apidocs/express.middlewareregistry.expressmiddleware.md +0 -1
- package/site/apidocs/express.middlewareregistry.expressmiddleware_1.md +0 -1
- package/site/apidocs/express.middlewareregistry.middleware.md +0 -1
- package/site/apidocs/express.tointerceptor.md +0 -1
- package/site/apidocs/express.tomiddleware.md +0 -1
- package/site/apidocs/filter.andclause.md +0 -1
- package/site/apidocs/filter.condition.md +0 -1
- package/site/apidocs/filter.filterbuilder.md +0 -1
- package/site/apidocs/filter.inclusion.md +1 -1
- package/site/apidocs/filter.inclusion.scope.md +3 -1
- package/site/apidocs/filter.orclause.md +0 -1
- package/site/apidocs/filter.where.md +0 -1
- package/site/apidocs/filter.wherebuilder.md +0 -1
- package/site/apidocs/graphql.graphqlserver.exportgraphqlschema.md +33 -0
- package/site/apidocs/graphql.graphqlserver.md +1 -0
- package/site/apidocs/logging.loginvocation.md +0 -1
- package/site/apidocs/metadata.decoratorfactory.md +0 -3
- package/site/apidocs/metadata.designtimemethodmetadata.md +0 -2
- package/site/apidocs/metadata.methodmultidecoratorfactory.md +0 -1
- package/site/apidocs/metadata.methodparameterdecoratorfactory.md +0 -1
- package/site/apidocs/openapi-v3.api.md +0 -1
- package/site/apidocs/openapi-v3.deprecated.md +0 -1
- package/site/apidocs/openapi-v3.getmodelschemaref.md +0 -1
- package/site/apidocs/openapi-v3.param.array.md +0 -1
- package/site/apidocs/openapi-v3.param.filter.md +0 -1
- package/site/apidocs/openapi-v3.param.where.md +0 -1
- package/site/apidocs/openapi-v3.requestbody.array.md +0 -1
- package/site/apidocs/openapi-v3.requestbody.file.md +0 -1
- package/site/apidocs/openapi-v3.response.file.md +0 -1
- package/site/apidocs/openapi-v3.schemaref.md +0 -1
- package/site/apidocs/openapi-v3.tags.md +0 -2
- package/site/apidocs/openapi-v3.visibility.md +0 -1
- package/site/apidocs/repository-json-schema.getjsonschemaref.md +0 -1
- package/site/apidocs/repository-json-schema.jsonschemaoptions.partial.md +0 -1
- package/site/apidocs/repository-json-schema.optional.md +0 -1
- package/site/apidocs/repository.belongstodefinition.md +1 -1
- package/site/apidocs/repository.constructorfunction.md +0 -1
- package/site/apidocs/repository.crudrepositoryimpl.md +0 -1
- package/site/apidocs/repository.defaultcrudrepository.createhasmanyrepositoryfactoryfor.md +0 -1
- package/site/apidocs/repository.defaultcrudrepository.createhasmanythroughrepositoryfactoryfor.md +0 -1
- package/site/apidocs/repository.defaultcrudrepository.execute.md +0 -1
- package/site/apidocs/repository.defaultcrudrepository.execute_1.md +0 -1
- package/site/apidocs/repository.definecrudrepositoryclass.md +0 -1
- package/site/apidocs/repository.definekeyvaluerepositoryclass.md +0 -1
- package/site/apidocs/repository.definemodelclass.md +0 -3
- package/site/apidocs/repository.definerepositoryclass.md +0 -1
- package/site/apidocs/repository.findbyforeignkeys.md +4 -2
- package/site/apidocs/repository.hasmanydefinition.md +1 -1
- package/site/apidocs/repository.hasonedefinition.md +1 -1
- package/site/apidocs/repository.modeldefinition.idproperties.md +0 -1
- package/site/apidocs/repository.repository_1.md +0 -1
- package/site/apidocs/repository.repositorymixin.md +2 -3
- package/site/apidocs/repository.repositorymixindoc.component.md +0 -1
- package/site/apidocs/repository.repositorymixindoc.datasource.md +0 -1
- package/site/apidocs/repository.repositorymixindoc.repository.md +0 -1
- package/site/apidocs/rest-crud.definecrudrestcontroller.md +0 -1
- package/site/apidocs/rest.defaultsequence.md +0 -1
- package/site/apidocs/rest.restapplication.exportopenapispec.md +2 -5
- package/site/apidocs/rest.restapplication.expressmiddleware.md +0 -1
- package/site/apidocs/rest.restapplication.expressmiddleware_1.md +0 -1
- package/site/apidocs/rest.restapplication.middleware.md +0 -1
- package/site/apidocs/rest.restapplication.redirect.md +0 -1
- package/site/apidocs/rest.restapplication.requesthandler.md +0 -1
- package/site/apidocs/rest.restapplication.route.md +0 -1
- package/site/apidocs/rest.restapplication.route_1.md +0 -1
- package/site/apidocs/rest.restapplication.route_2.md +0 -1
- package/site/apidocs/rest.restapplication.route_3.md +0 -1
- package/site/apidocs/rest.restserver.controller.md +0 -1
- package/site/apidocs/rest.restserver.exportopenapispec.md +2 -5
- package/site/apidocs/rest.restserver.handler.md +0 -1
- package/site/apidocs/rest.restserver.md +0 -3
- package/site/apidocs/rest.restserver.oasenhancerservice.md +0 -1
- package/site/apidocs/rest.restserver.redirect.md +0 -1
- package/site/apidocs/rest.restserver.route.md +0 -1
- package/site/apidocs/rest.restserver.route_1.md +0 -1
- package/site/apidocs/rest.restserver.route_2.md +0 -1
- package/site/apidocs/rest.restserver.sequence.md +0 -1
- package/site/apidocs/service-proxy.servicemixin.md +2 -3
- package/site/apidocs/service-proxy.servicemixindoc.component.md +0 -1
- package/site/apidocs/service-proxy.servicemixindoc.serviceprovider.md +0 -1
- package/site/apidocs/socketio.socketio.md +0 -1
- package/site/apidocs/socketio.socketio.subscribe.md +0 -1
- package/site/apidocs/socketio.socketiobindings.io.md +1 -1
- package/site/apidocs/socketio.socketiobindings.socket.md +1 -1
- package/site/apidocs/socketio.socketioserver.route.md +2 -2
- package/site/apidocs/socketio.socketioserver.use.md +2 -2
- package/site/apidocs/testlab.skipif.md +0 -1
- package/site/apidocs/testlab.skipontravis.md +0 -1
- package/site/apidocs/testlab.testsandbox._constructor_.md +0 -1
- package/site/apidocs/typeorm.typeormmixin.md +2 -2
- package/site/changelogs/bodyparsers/rest-msgpack/CHANGELOG.md +45 -0
- package/site/changelogs/examples/access-control-migration/CHANGELOG.md +56 -0
- package/site/changelogs/examples/binding-resolution/CHANGELOG.md +56 -0
- package/site/changelogs/examples/context/CHANGELOG.md +56 -0
- package/site/changelogs/examples/express-composition/CHANGELOG.md +56 -0
- package/site/changelogs/examples/file-transfer/CHANGELOG.md +56 -0
- package/site/changelogs/examples/graphql/CHANGELOG.md +56 -0
- package/site/changelogs/examples/greeter-extension/CHANGELOG.md +56 -0
- package/site/changelogs/examples/greeting-app/CHANGELOG.md +56 -0
- package/site/changelogs/examples/hello-world/CHANGELOG.md +56 -0
- package/site/changelogs/examples/lb3-application/CHANGELOG.md +56 -0
- package/site/changelogs/examples/log-extension/CHANGELOG.md +56 -0
- package/site/changelogs/examples/metrics-prometheus/CHANGELOG.md +56 -0
- package/site/changelogs/examples/multi-tenancy/CHANGELOG.md +59 -0
- package/site/changelogs/examples/passport-login/CHANGELOG.md +56 -0
- package/site/changelogs/examples/rest-crud/CHANGELOG.md +56 -0
- package/site/changelogs/examples/rpc-server/CHANGELOG.md +56 -0
- package/site/changelogs/examples/soap-calculator/CHANGELOG.md +56 -0
- package/site/changelogs/examples/socketio/CHANGELOG.md +49 -0
- package/site/changelogs/examples/todo/CHANGELOG.md +56 -0
- package/site/changelogs/examples/todo-jwt/CHANGELOG.md +56 -0
- package/site/changelogs/examples/todo-list/CHANGELOG.md +56 -0
- package/site/changelogs/examples/validation-app/CHANGELOG.md +56 -0
- package/site/changelogs/examples/webpack/CHANGELOG.md +59 -0
- package/site/changelogs/extensions/apiconnect/CHANGELOG.md +45 -0
- package/site/changelogs/extensions/authentication-jwt/CHANGELOG.md +54 -0
- package/site/changelogs/extensions/authentication-passport/CHANGELOG.md +45 -0
- package/site/changelogs/extensions/context-explorer/CHANGELOG.md +45 -0
- package/site/changelogs/extensions/cron/CHANGELOG.md +48 -0
- package/site/changelogs/extensions/graphql/CHANGELOG.md +48 -0
- package/site/changelogs/extensions/health/CHANGELOG.md +45 -0
- package/site/changelogs/extensions/logging/CHANGELOG.md +45 -0
- package/site/changelogs/extensions/metrics/CHANGELOG.md +50 -0
- package/site/changelogs/extensions/pooling/CHANGELOG.md +48 -0
- package/site/changelogs/extensions/socketio/CHANGELOG.md +48 -0
- package/site/changelogs/extensions/typeorm/CHANGELOG.md +48 -0
- package/site/changelogs/fixtures/mock-oauth2-provider/CHANGELOG.md +45 -0
- package/site/changelogs/packages/authentication/CHANGELOG.md +45 -0
- package/site/changelogs/packages/authorization/CHANGELOG.md +45 -0
- package/site/changelogs/packages/boot/CHANGELOG.md +45 -0
- package/site/changelogs/packages/booter-lb3app/CHANGELOG.md +45 -0
- package/site/changelogs/packages/build/CHANGELOG.md +45 -0
- package/site/changelogs/packages/cli/CHANGELOG.md +53 -0
- package/site/changelogs/packages/context/CHANGELOG.md +48 -0
- package/site/changelogs/packages/core/CHANGELOG.md +56 -0
- package/site/changelogs/packages/eslint-config/CHANGELOG.md +45 -0
- package/site/changelogs/packages/express/CHANGELOG.md +45 -0
- package/site/changelogs/packages/filter/CHANGELOG.md +56 -0
- package/site/changelogs/packages/http-caching-proxy/CHANGELOG.md +50 -0
- package/site/changelogs/packages/http-server/CHANGELOG.md +45 -0
- package/site/changelogs/packages/metadata/CHANGELOG.md +45 -0
- package/site/changelogs/packages/model-api-builder/CHANGELOG.md +50 -0
- package/site/changelogs/packages/monorepo/CHANGELOG.md +45 -0
- package/site/changelogs/packages/openapi-spec-builder/CHANGELOG.md +45 -0
- package/site/changelogs/packages/openapi-v3/CHANGELOG.md +59 -0
- package/site/changelogs/packages/repository/CHANGELOG.md +48 -0
- package/site/changelogs/packages/repository-json-schema/CHANGELOG.md +62 -0
- package/site/changelogs/packages/repository-tests/CHANGELOG.md +45 -0
- package/site/changelogs/packages/rest/CHANGELOG.md +59 -0
- package/site/changelogs/packages/rest-crud/CHANGELOG.md +56 -0
- package/site/changelogs/packages/rest-explorer/CHANGELOG.md +45 -0
- package/site/changelogs/packages/security/CHANGELOG.md +45 -0
- package/site/changelogs/packages/service-proxy/CHANGELOG.md +45 -0
- package/site/changelogs/packages/testlab/CHANGELOG.md +45 -0
- package/site/changelogs/packages/tsdocs/CHANGELOG.md +51 -0
- package/site/index.md +1 -1
- package/site/readmes/loopback-next/extensions/authentication-jwt/README.md +3 -2
- package/site/readmes/loopback-next/extensions/graphql/README.md +48 -1
- package/site/readmes/loopback-next/packages/build/README.md +9 -0
|
@@ -18,14 +18,14 @@ As a `Getter` function
|
|
|
18
18
|
<b>Signature:</b>
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
asGetter(session?:
|
|
21
|
+
asGetter(session?: ResolutionOptionsOrSession): Getter<T[]>;
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Parameters
|
|
25
25
|
|
|
26
26
|
| Parameter | Type | Description |
|
|
27
27
|
| --- | --- | --- |
|
|
28
|
-
| session | [
|
|
28
|
+
| session | [ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) | |
|
|
29
29
|
|
|
30
30
|
<b>Returns:</b>
|
|
31
31
|
|
|
@@ -32,7 +32,7 @@ export declare class ContextView<T = unknown> extends EventEmitter implements Co
|
|
|
32
32
|
|
|
33
33
|
| Constructor | Modifiers | Description |
|
|
34
34
|
| --- | --- | --- |
|
|
35
|
-
| [(constructor)(context, filter, comparator)](./context.contextview._constructor_.md) | | Create a context view |
|
|
35
|
+
| [(constructor)(context, filter, comparator, resolutionOptions)](./context.contextview._constructor_.md) | | Create a context view |
|
|
36
36
|
|
|
37
37
|
## Properties
|
|
38
38
|
|
|
@@ -18,14 +18,14 @@ Resolve values for the matching bindings
|
|
|
18
18
|
<b>Signature:</b>
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
resolve(session?:
|
|
21
|
+
resolve(session?: ResolutionOptionsOrSession): ValueOrPromise<T[]>;
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Parameters
|
|
25
25
|
|
|
26
26
|
| Parameter | Type | Description |
|
|
27
27
|
| --- | --- | --- |
|
|
28
|
-
| session | [
|
|
28
|
+
| session | [ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) | Resolution session |
|
|
29
29
|
|
|
30
30
|
<b>Returns:</b>
|
|
31
31
|
|
|
@@ -18,14 +18,14 @@ Get the single value
|
|
|
18
18
|
<b>Signature:</b>
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
singleValue(session?:
|
|
21
|
+
singleValue(session?: ResolutionOptionsOrSession): Promise<T | undefined>;
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Parameters
|
|
25
25
|
|
|
26
26
|
| Parameter | Type | Description |
|
|
27
27
|
| --- | --- | --- |
|
|
28
|
-
| session | [
|
|
28
|
+
| session | [ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) | |
|
|
29
29
|
|
|
30
30
|
<b>Returns:</b>
|
|
31
31
|
|
|
@@ -18,14 +18,14 @@ Get the list of resolved values. If they are not cached, it tries to find and re
|
|
|
18
18
|
<b>Signature:</b>
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
values(session?:
|
|
21
|
+
values(session?: ResolutionOptionsOrSession): Promise<T[]>;
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Parameters
|
|
25
25
|
|
|
26
26
|
| Parameter | Type | Description |
|
|
27
27
|
| --- | --- | --- |
|
|
28
|
-
| session | [
|
|
28
|
+
| session | [ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) | |
|
|
29
29
|
|
|
30
30
|
<b>Returns:</b>
|
|
31
31
|
|
|
@@ -18,7 +18,7 @@ Create a context view as a getter with the given filter and sort matched binding
|
|
|
18
18
|
<b>Signature:</b>
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
export declare function createViewGetter<T = unknown>(ctx: Context, bindingFilter: BindingFilter, bindingComparator?: BindingComparator, session?:
|
|
21
|
+
export declare function createViewGetter<T = unknown>(ctx: Context, bindingFilter: BindingFilter, bindingComparator?: BindingComparator, session?: ResolutionOptionsOrSession): Getter<T[]>;
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Parameters
|
|
@@ -28,7 +28,7 @@ export declare function createViewGetter<T = unknown>(ctx: Context, bindingFilte
|
|
|
28
28
|
| ctx | [Context](./context.context.md) | Context object |
|
|
29
29
|
| bindingFilter | [BindingFilter](./context.bindingfilter.md) | A function to match bindings |
|
|
30
30
|
| bindingComparator | [BindingComparator](./context.bindingcomparator.md) | A function to compare two bindings |
|
|
31
|
-
| session | [
|
|
31
|
+
| session | [ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) | Resolution session |
|
|
32
32
|
|
|
33
33
|
<b>Returns:</b>
|
|
34
34
|
|
|
@@ -23,6 +23,6 @@ export declare type DynamicValueBindingSource<T> = {
|
|
|
23
23
|
value: ValueFactory<T> | DynamicValueProviderClass<T>;
|
|
24
24
|
};
|
|
25
25
|
```
|
|
26
|
-
<b>References:</b> [BindingType.DYNAMIC\_VALUE](./context.bindingtype.
|
|
26
|
+
<b>References:</b> [BindingType.DYNAMIC\_VALUE](./context.bindingtype.md)<!-- -->, [ValueFactory](./context.valuefactory.md)<!-- -->, [DynamicValueProviderClass](./context.dynamicvalueproviderclass.md)
|
|
27
27
|
|
|
28
28
|
|
|
@@ -18,9 +18,9 @@ An object to provide metadata for `@inject`
|
|
|
18
18
|
<b>Signature:</b>
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
export interface InjectionMetadata extends ResolutionOptions
|
|
21
|
+
export interface InjectionMetadata extends Omit<ResolutionOptions, 'session'>
|
|
22
22
|
```
|
|
23
|
-
<b>Extends:</b> [ResolutionOptions](./context.resolutionoptions.md)
|
|
23
|
+
<b>Extends:</b> Omit<[ResolutionOptions](./context.resolutionoptions.md)<!-- -->, 'session'>
|
|
24
24
|
|
|
25
25
|
## Properties
|
|
26
26
|
|
|
@@ -23,6 +23,6 @@ export declare type ProviderBindingSource<T> = {
|
|
|
23
23
|
value: Constructor<Provider<T>>;
|
|
24
24
|
};
|
|
25
25
|
```
|
|
26
|
-
<b>References:</b> [BindingType.PROVIDER](./context.bindingtype.
|
|
26
|
+
<b>References:</b> [BindingType.PROVIDER](./context.bindingtype.md)<!-- -->, [Constructor](./context.constructor.md)<!-- -->, [Provider](./context.provider.md)
|
|
27
27
|
|
|
28
28
|
|
|
@@ -38,7 +38,6 @@ export declare function resolveList<T, V>(list: T[], resolver: (val: T, index: n
|
|
|
38
38
|
|
|
39
39
|
```ts
|
|
40
40
|
const result = resolveList(['a', 'b'], v => v.toUpperCase());
|
|
41
|
-
|
|
42
41
|
```
|
|
43
42
|
The `result` will be `['A', 'B']`<!-- -->.
|
|
44
43
|
|
|
@@ -48,7 +47,6 @@ The `result` will be `['A', 'B']`<!-- -->.
|
|
|
48
47
|
const result = resolveList(['a', 'b'], v =>
|
|
49
48
|
Promise.resolve(v.toUpperCase()),
|
|
50
49
|
);
|
|
51
|
-
|
|
52
50
|
```
|
|
53
51
|
The `result` will be a promise of `['A', 'B']`<!-- -->.
|
|
54
52
|
|
|
@@ -38,7 +38,6 @@ export declare function resolveMap<T, V>(map: MapObject<T>, resolver: (val: T, k
|
|
|
38
38
|
|
|
39
39
|
```ts
|
|
40
40
|
const result = resolveMap({a: 'x', b: 'y'}, v => v.toUpperCase());
|
|
41
|
-
|
|
42
41
|
```
|
|
43
42
|
The `result` will be `{a: 'X', b: 'Y'}`<!-- -->.
|
|
44
43
|
|
|
@@ -48,7 +47,6 @@ The `result` will be `{a: 'X', b: 'Y'}`<!-- -->.
|
|
|
48
47
|
const result = resolveMap({a: 'x', b: 'y'}, v =>
|
|
49
48
|
Promise.resolve(v.toUpperCase()),
|
|
50
49
|
);
|
|
51
|
-
|
|
52
50
|
```
|
|
53
51
|
The `result` will be a promise of `{a: 'X', b: 'Y'}`<!-- -->.
|
|
54
52
|
|
|
@@ -36,7 +36,7 @@ export declare class Application extends Context implements LifeCycleObserver
|
|
|
36
36
|
| Property | Modifiers | Type | Description |
|
|
37
37
|
| --- | --- | --- | --- |
|
|
38
38
|
| [options](./core.application.options.md) | | [ApplicationConfig](./core.applicationconfig.md) | |
|
|
39
|
-
| [state](./core.application.state.md) | | string | Get the state of the application. The initial state is <code>created</code> and it can transition as follows by <code>start</code> and <code>stop</code>:<!-- -->1. start - !started -<!-- -->> starting -<!-- -->> started - started -<!-- -->> started (no-op) 2. stop - started -<!-- -->> stopping -<!-- -->> stopped - !started -<!-- -->> stopped (no-op)<!-- -->Two types of states are expected: - stable, such as <code>started</code> and <code>stopped</code> - in process, such as <code>booting</code> and <code>starting</code>Operations such as <code>start</code> and <code>stop</code> can only be called at a stable state. The logic should immediately set the state to a new one indicating work in process, such as <code>starting</code> and <code>stopping</code>. |
|
|
39
|
+
| [state](./core.application.state.md) | | string | Get the state of the application. The initial state is <code>created</code> and it can transition as follows by <code>start</code> and <code>stop</code>:<!-- -->1. start - !started -<!-- -->> starting -<!-- -->> started - started -<!-- -->> started (no-op) 2. stop - (started \| initialized) -<!-- -->> stopping -<!-- -->> stopped - ! (started \|\| initialized) -<!-- -->> stopped (no-op)<!-- -->Two types of states are expected: - stable, such as <code>started</code> and <code>stopped</code> - in process, such as <code>booting</code> and <code>starting</code>Operations such as <code>start</code> and <code>stop</code> can only be called at a stable state. The logic should immediately set the state to a new one indicating work in process, such as <code>starting</code> and <code>stopping</code>. |
|
|
40
40
|
|
|
41
41
|
## Methods
|
|
42
42
|
|
|
@@ -15,7 +15,7 @@ permalink: /doc/en/lb4/apidocs.core.application.state.html
|
|
|
15
15
|
|
|
16
16
|
Get the state of the application. The initial state is `created` and it can transition as follows by `start` and `stop`<!-- -->:
|
|
17
17
|
|
|
18
|
-
1. start - !started -<!-- -->> starting -<!-- -->> started - started -<!-- -->> started (no-op) 2. stop - started -<!-- -->> stopping -<!-- -->> stopped - !started -<!-- -->> stopped (no-op)
|
|
18
|
+
1. start - !started -<!-- -->> starting -<!-- -->> started - started -<!-- -->> started (no-op) 2. stop - (started \| initialized) -<!-- -->> stopping -<!-- -->> stopped - ! (started \|\| initialized) -<!-- -->> stopped (no-op)
|
|
19
19
|
|
|
20
20
|
Two types of states are expected: - stable, such as `started` and `stopped` - in process, such as `booting` and `starting`
|
|
21
21
|
|
|
@@ -18,7 +18,7 @@ Inject an array of resolved extension instances for the extension point. The lis
|
|
|
18
18
|
<b>Signature:</b>
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
function list(extensionPointName?: string): (target: Object, member: string | undefined, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;
|
|
21
|
+
function list(extensionPointName?: string, metadata?: InjectionMetadata): (target: Object, member: string | undefined, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Parameters
|
|
@@ -26,6 +26,7 @@ function list(extensionPointName?: string): (target: Object, member: string | un
|
|
|
26
26
|
| Parameter | Type | Description |
|
|
27
27
|
| --- | --- | --- |
|
|
28
28
|
| extensionPointName | string | Name of the extension point. If not supplied, we use the <code>name</code> tag from the extension point binding or the class name of the extension point class. If a class needs to inject extensions from multiple extension points, use different <code>extensionPointName</code> for different types of extensions. |
|
|
29
|
+
| metadata | [InjectionMetadata](./context.injectionmetadata.md) | Optional injection metadata |
|
|
29
30
|
|
|
30
31
|
<b>Returns:</b>
|
|
31
32
|
|
|
@@ -46,7 +47,6 @@ export class GreetingService {
|
|
|
46
47
|
) {
|
|
47
48
|
// ...
|
|
48
49
|
}
|
|
49
|
-
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
|
|
@@ -23,7 +23,7 @@ export declare namespace extensions
|
|
|
23
23
|
|
|
24
24
|
| Function | Description |
|
|
25
25
|
| --- | --- |
|
|
26
|
-
| [list(extensionPointName)](./core.extensions.list.md) | Inject an array of resolved extension instances for the extension point. The list is a snapshot of registered extensions when the injection is fulfilled. Extensions added or removed afterward won't impact the list. |
|
|
27
|
-
| [view(extensionPointName)](./core.extensions.view.md) | Inject a <code>ContextView</code> for extensions of the extension point. The view can then be listened on events such as <code>bind</code>, <code>unbind</code>, or <code>refresh</code> to react on changes of extensions. |
|
|
26
|
+
| [list(extensionPointName, metadata)](./core.extensions.list.md) | Inject an array of resolved extension instances for the extension point. The list is a snapshot of registered extensions when the injection is fulfilled. Extensions added or removed afterward won't impact the list. |
|
|
27
|
+
| [view(extensionPointName, metadata)](./core.extensions.view.md) | Inject a <code>ContextView</code> for extensions of the extension point. The view can then be listened on events such as <code>bind</code>, <code>unbind</code>, or <code>refresh</code> to react on changes of extensions. |
|
|
28
28
|
|
|
29
29
|
|
|
@@ -18,7 +18,7 @@ Inject a `ContextView` for extensions of the extension point. The view can then
|
|
|
18
18
|
<b>Signature:</b>
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
|
-
function view(extensionPointName?: string): (target: Object, member: string | undefined, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;
|
|
21
|
+
function view(extensionPointName?: string, metadata?: InjectionMetadata): (target: Object, member: string | undefined, methodDescriptorOrParameterIndex?: number | TypedPropertyDescriptor<any> | undefined) => void;
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## Parameters
|
|
@@ -26,6 +26,7 @@ function view(extensionPointName?: string): (target: Object, member: string | un
|
|
|
26
26
|
| Parameter | Type | Description |
|
|
27
27
|
| --- | --- | --- |
|
|
28
28
|
| extensionPointName | string | Name of the extension point. If not supplied, we use the <code>name</code> tag from the extension point binding or the class name of the extension point class. If a class needs to inject extensions from multiple extension points, use different <code>extensionPointName</code> for different types of extensions. |
|
|
29
|
+
| metadata | [InjectionMetadata](./context.injectionmetadata.md) | Optional injection metadata |
|
|
29
30
|
|
|
30
31
|
<b>Returns:</b>
|
|
31
32
|
|
|
@@ -46,7 +47,6 @@ export class GreetingService {
|
|
|
46
47
|
) {
|
|
47
48
|
// ...
|
|
48
49
|
}
|
|
49
|
-
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
|
package/site/apidocs/core.md
CHANGED
|
@@ -37,7 +37,7 @@ For examples of how to leverage `@loopback/core` to build composable and extensi
|
|
|
37
37
|
| [extensionFilter(extensionPointNames)](./core.extensionfilter.md) | A factory function to create binding filter for extensions of a named extension point |
|
|
38
38
|
| [extensionFor(extensionPointNames)](./core.extensionfor.md) | A factory function to create binding template for extensions of the given extension point |
|
|
39
39
|
| [extensionPoint(name, specs)](./core.extensionpoint.md) | Decorate a class as a named extension point. If the decoration is not present, the name of the class will be used. |
|
|
40
|
-
| [extensions(extensionPointName)](./core.extensions.md) | Shortcut to inject extensions for the given extension point. |
|
|
40
|
+
| [extensions(extensionPointName, metadata)](./core.extensions.md) | Shortcut to inject extensions for the given extension point. |
|
|
41
41
|
| [filterByServiceInterface(serviceInterface)](./core.filterbyserviceinterface.md) | Create a binding filter by service class |
|
|
42
42
|
| [isLifeCycleObserver(obj)](./core.islifecycleobserver.md) | Test if an object implements LifeCycleObserver |
|
|
43
43
|
| [isLifeCycleObserverClass(ctor)](./core.islifecycleobserverclass.md) | Test if a class implements LifeCycleObserver |
|
|
@@ -33,7 +33,6 @@ export function MyMixin<T extends MixinTarget<Application>>(superClass: T) {
|
|
|
33
33
|
// contribute new class members
|
|
34
34
|
}
|
|
35
35
|
};
|
|
36
|
-
|
|
37
36
|
```
|
|
38
37
|
TypeScript does not allow class mixins to access protected members from the base class. You can use the following approach as a workaround:
|
|
39
38
|
|
|
@@ -41,7 +40,6 @@ TypeScript does not allow class mixins to access protected members from the base
|
|
|
41
40
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
42
41
|
// @ts-ignore
|
|
43
42
|
(this as unknown as {YourBaseClass}).protectedMember
|
|
44
|
-
|
|
45
43
|
```
|
|
46
44
|
The directive `@ts-ignore` suppresses compiler error about accessing a protected member from outside. Unfortunately, it also disables other compile-time checks (e.g. to verify that a protected method was invoked with correct arguments, and so on). This is the same behavior you would get by using `Constructor<any>` instead of `MixinTarget<Application>`<!-- -->. The major improvement is that TypeScript can still infer the return type of the protected member, therefore `any` is NOT introduced to subsequent code.
|
|
47
45
|
|
|
@@ -62,7 +60,6 @@ superClass: T,
|
|
|
62
60
|
return binding;
|
|
63
61
|
}
|
|
64
62
|
}
|
|
65
|
-
|
|
66
63
|
```
|
|
67
64
|
|
|
68
65
|
|
|
@@ -34,7 +34,6 @@ class SpyInterceptorProvider extends ExpressMiddlewareInterceptorProvider<
|
|
|
34
34
|
super(spy, spyConfig);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
|
|
38
37
|
```
|
|
39
38
|
To inject the configuration without automatic reloading:
|
|
40
39
|
|
|
@@ -46,7 +45,6 @@ class SpyInterceptorProvider extends ExpressMiddlewareInterceptorProvider<
|
|
|
46
45
|
super(spy, configView);
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
|
-
|
|
50
48
|
```
|
|
51
49
|
|
|
52
50
|
## Constructors
|
|
@@ -39,7 +39,7 @@ export declare function MiddlewareMixin<T extends MixinTarget<Context>>(superCla
|
|
|
39
39
|
unsubscribe: (observer: loopbackContext.ContextEventObserver) => boolean;
|
|
40
40
|
close: () => void;
|
|
41
41
|
isSubscribed: (observer: loopbackContext.ContextObserver) => boolean;
|
|
42
|
-
createView: <T_2 = unknown>(filter: loopbackContext.BindingFilter, comparator?: loopbackContext.BindingComparator | undefined) => loopbackContext.ContextView<T_2>;
|
|
42
|
+
createView: <T_2 = unknown>(filter: loopbackContext.BindingFilter, comparator?: loopbackContext.BindingComparator | undefined, options?: Omit<loopbackContext.ResolutionOptions, "session"> | undefined) => loopbackContext.ContextView<T_2>;
|
|
43
43
|
contains: (key: BindingAddress<unknown>) => boolean;
|
|
44
44
|
isBound: (key: BindingAddress<unknown>) => boolean;
|
|
45
45
|
getOwnerContext: (keyOrBinding: BindingAddress<unknown> | Readonly<Binding<unknown>>) => Context | undefined;
|
|
@@ -99,6 +99,6 @@ export declare function MiddlewareMixin<T extends MixinTarget<Context>>(superCla
|
|
|
99
99
|
|
|
100
100
|
<b>Returns:</b>
|
|
101
101
|
|
|
102
|
-
{ new (...args: any\[\]): { expressMiddleware(key: [BindingAddress](./context.bindingaddress.md)<!-- -->, middleware: [ExpressRequestHandler](./express.expressrequesthandler.md) \| [ExpressRequestHandler](./express.expressrequesthandler.md)<!-- -->\[\], options?: [MiddlewareBindingOptions](./express.middlewarebindingoptions.md) \| undefined): [Binding](./context.binding.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>; expressMiddleware<CFG>(middlewareFactory: [ExpressMiddlewareFactory](./express.expressmiddlewarefactory.md)<!-- --><CFG>, middlewareConfig?: CFG \| undefined, options?: [MiddlewareBindingOptions](./express.middlewarebindingoptions.md) \| undefined): [Binding](./context.binding.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>; expressMiddleware<CFG\_1>(factoryOrKey: [BindingAddress](./context.bindingaddress.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->> \| [ExpressMiddlewareFactory](./express.expressmiddlewarefactory.md)<!-- --><CFG\_1>, configOrHandler: [ExpressRequestHandler](./express.expressrequesthandler.md) \| [ExpressRequestHandler](./express.expressrequesthandler.md)<!-- -->\[\] \| CFG\_1, options?: [MiddlewareBindingOptions](./express.middlewarebindingoptions.md) \| undefined): [Binding](./context.binding.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>; middleware(middleware: [Middleware](./express.middleware.md) \| [Constructor](./context.constructor.md)<!-- --><[Provider](./context.provider.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>>, options?: [MiddlewareBindingOptions](./express.middlewarebindingoptions.md)<!-- -->): [Binding](./context.binding.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>; readonly name: string; readonly subscriptionManager: loopbackContext.[ContextSubscriptionManager](./context.contextsubscriptionmanager.md)<!-- -->; scope: loopbackContext.[BindingScope](./context.bindingscope.md)<!-- -->; readonly parent: [Context](./context.context.md) \| undefined; emitEvent: <T\_1 extends loopbackContext.[ContextEvent](./context.contextevent.md)<!-- -->>(type: string, event: T\_1) => void; emitError: (err: unknown) => void; bind: <ValueType = any>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType>) => [Binding](./context.binding.md)<!-- --><ValueType>; add: (binding: [Binding](./context.binding.md)<!-- --><unknown>) => [Context](./context.context.md)<!-- -->; configure: <ConfigValueType = any>(key?: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown> \| undefined) => [Binding](./context.binding.md)<!-- --><ConfigValueType>; getConfigAsValueOrPromise: <ConfigValueType\_1>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) => loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- --><ConfigValueType\_1 \| undefined>; getConfig: <ConfigValueType\_2>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) => Promise<ConfigValueType\_2 \| undefined>; getConfigSync: <ConfigValueType\_3>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) => ConfigValueType\_3 \| undefined; unbind: (key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>) => boolean; subscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) => loopbackContext.[Subscription](./context.subscription.md)<!-- -->; unsubscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) => boolean; close: () => void; isSubscribed: (observer: loopbackContext.[ContextObserver](./context.contextobserver.md)<!-- -->) => boolean; createView: <T\_2 = unknown>(filter: loopbackContext.[BindingFilter](./context.bindingfilter.md)<!-- -->, comparator?: loopbackContext.[BindingComparator](./context.bindingcomparator.md) \| undefined) => loopbackContext.[ContextView](./context.contextview.md)<!-- --><T\_2>; contains: (key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>) => boolean; isBound: (key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>) => boolean; getOwnerContext: (keyOrBinding: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown> \| Readonly<[Binding](./context.binding.md)<!-- --><unknown>>) => [Context](./context.context.md) \| undefined; getScopedContext: (scope: loopbackContext.[BindingScope.APPLICATION](./context.bindingscope.application.md) \| loopbackContext.[BindingScope.SERVER](./context.bindingscope.server.md) \| loopbackContext.[BindingScope.REQUEST](./context.bindingscope.request.md)<!-- -->) => [Context](./context.context.md) \| undefined; getResolutionContext: (binding: Readonly<[Binding](./context.binding.md)<!-- --><unknown>>) => [Context](./context.context.md) \| undefined; isVisibleTo: (ctx: [Context](./context.context.md)<!-- -->) => boolean; find: <ValueType\_1 = any>(pattern?: string \| RegExp \| loopbackContext.[BindingFilter](./context.bindingfilter.md) \| undefined) => Readonly<[Binding](./context.binding.md)<!-- --><ValueType\_1>>\[\]; findByTag: <ValueType\_2 = any>(tagFilter: RegExp \| loopbackContext.[BindingTag](./context.bindingtag.md)<!-- -->) => Readonly<[Binding](./context.binding.md)<!-- --><ValueType\_2>>\[\]; get: { <ValueType\_3>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_3>, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): Promise<ValueType\_3>; <ValueType\_4>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_4>, options: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md)<!-- -->): Promise<ValueType\_4 \| undefined>; }; getSync: { <ValueType\_5>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_5>, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): ValueType\_5; <ValueType\_6>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_6>, options?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined): ValueType\_6 \| undefined; }; getBinding: { <ValueType\_7 = any>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_7>): [Binding](./context.binding.md)<!-- --><ValueType\_7>; <ValueType\_8>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_8>, options?: { optional?: boolean \| undefined; } \| undefined): [Binding](./context.binding.md)<!-- --><ValueType\_8> \| undefined; }; findOrCreateBinding: <T\_3>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><T\_3>, policy?: loopbackContext.[BindingCreationPolicy](./context.bindingcreationpolicy.md) \| undefined) => [Binding](./context.binding.md)<!-- --><T\_3>; getValueOrPromise: <ValueType\_9>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_9>, optionsOrSession?: loopbackContext.[ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) \| undefined) => loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- --><ValueType\_9 \| undefined>; toJSON: () => loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; inspect: (options?: loopbackContext.[ContextInspectOptions](./context.contextinspectoptions.md) \| undefined) => loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; on: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): [Context](./context.context.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) => void): [Context](./context.context.md)<!-- -->; }; once: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): [Context](./context.context.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) => void): [Context](./context.context.md)<!-- -->; }; addListener: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; removeListener: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; off: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; removeAllListeners: (event?: string \| symbol \| undefined) => [Context](./context.context.md)<!-- -->; setMaxListeners: (n: number) => [Context](./context.context.md)<!-- -->; getMaxListeners: () => number; listeners: (event: string \| symbol) => Function\[\]; rawListeners: (event: string \| symbol) => Function\[\]; emit: (event: string \| symbol, ...args: any\[\]) => boolean; listenerCount: (type: string \| symbol) => number; prependListener: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; prependOnceListener: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; eventNames: () => (string \| symbol)\[\]; }; } & T
|
|
102
|
+
{ new (...args: any\[\]): { expressMiddleware(key: [BindingAddress](./context.bindingaddress.md)<!-- -->, middleware: [ExpressRequestHandler](./express.expressrequesthandler.md) \| [ExpressRequestHandler](./express.expressrequesthandler.md)<!-- -->\[\], options?: [MiddlewareBindingOptions](./express.middlewarebindingoptions.md) \| undefined): [Binding](./context.binding.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>; expressMiddleware<CFG>(middlewareFactory: [ExpressMiddlewareFactory](./express.expressmiddlewarefactory.md)<!-- --><CFG>, middlewareConfig?: CFG \| undefined, options?: [MiddlewareBindingOptions](./express.middlewarebindingoptions.md) \| undefined): [Binding](./context.binding.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>; expressMiddleware<CFG\_1>(factoryOrKey: [BindingAddress](./context.bindingaddress.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->> \| [ExpressMiddlewareFactory](./express.expressmiddlewarefactory.md)<!-- --><CFG\_1>, configOrHandler: [ExpressRequestHandler](./express.expressrequesthandler.md) \| [ExpressRequestHandler](./express.expressrequesthandler.md)<!-- -->\[\] \| CFG\_1, options?: [MiddlewareBindingOptions](./express.middlewarebindingoptions.md) \| undefined): [Binding](./context.binding.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>; middleware(middleware: [Middleware](./express.middleware.md) \| [Constructor](./context.constructor.md)<!-- --><[Provider](./context.provider.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>>, options?: [MiddlewareBindingOptions](./express.middlewarebindingoptions.md)<!-- -->): [Binding](./context.binding.md)<!-- --><[Middleware](./express.middleware.md)<!-- -->>; readonly name: string; readonly subscriptionManager: loopbackContext.[ContextSubscriptionManager](./context.contextsubscriptionmanager.md)<!-- -->; scope: loopbackContext.[BindingScope](./context.bindingscope.md)<!-- -->; readonly parent: [Context](./context.context.md) \| undefined; emitEvent: <T\_1 extends loopbackContext.[ContextEvent](./context.contextevent.md)<!-- -->>(type: string, event: T\_1) => void; emitError: (err: unknown) => void; bind: <ValueType = any>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType>) => [Binding](./context.binding.md)<!-- --><ValueType>; add: (binding: [Binding](./context.binding.md)<!-- --><unknown>) => [Context](./context.context.md)<!-- -->; configure: <ConfigValueType = any>(key?: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown> \| undefined) => [Binding](./context.binding.md)<!-- --><ConfigValueType>; getConfigAsValueOrPromise: <ConfigValueType\_1>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) => loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- --><ConfigValueType\_1 \| undefined>; getConfig: <ConfigValueType\_2>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) => Promise<ConfigValueType\_2 \| undefined>; getConfigSync: <ConfigValueType\_3>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>, propertyPath?: string \| undefined, resolutionOptions?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined) => ConfigValueType\_3 \| undefined; unbind: (key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>) => boolean; subscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) => loopbackContext.[Subscription](./context.subscription.md)<!-- -->; unsubscribe: (observer: loopbackContext.[ContextEventObserver](./context.contexteventobserver.md)<!-- -->) => boolean; close: () => void; isSubscribed: (observer: loopbackContext.[ContextObserver](./context.contextobserver.md)<!-- -->) => boolean; createView: <T\_2 = unknown>(filter: loopbackContext.[BindingFilter](./context.bindingfilter.md)<!-- -->, comparator?: loopbackContext.[BindingComparator](./context.bindingcomparator.md) \| undefined, options?: Omit<loopbackContext.[ResolutionOptions](./context.resolutionoptions.md)<!-- -->, "session"> \| undefined) => loopbackContext.[ContextView](./context.contextview.md)<!-- --><T\_2>; contains: (key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>) => boolean; isBound: (key: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown>) => boolean; getOwnerContext: (keyOrBinding: [BindingAddress](./context.bindingaddress.md)<!-- --><unknown> \| Readonly<[Binding](./context.binding.md)<!-- --><unknown>>) => [Context](./context.context.md) \| undefined; getScopedContext: (scope: loopbackContext.[BindingScope.APPLICATION](./context.bindingscope.md) \| loopbackContext.[BindingScope.SERVER](./context.bindingscope.md) \| loopbackContext.[BindingScope.REQUEST](./context.bindingscope.md)<!-- -->) => [Context](./context.context.md) \| undefined; getResolutionContext: (binding: Readonly<[Binding](./context.binding.md)<!-- --><unknown>>) => [Context](./context.context.md) \| undefined; isVisibleTo: (ctx: [Context](./context.context.md)<!-- -->) => boolean; find: <ValueType\_1 = any>(pattern?: string \| RegExp \| loopbackContext.[BindingFilter](./context.bindingfilter.md) \| undefined) => Readonly<[Binding](./context.binding.md)<!-- --><ValueType\_1>>\[\]; findByTag: <ValueType\_2 = any>(tagFilter: RegExp \| loopbackContext.[BindingTag](./context.bindingtag.md)<!-- -->) => Readonly<[Binding](./context.binding.md)<!-- --><ValueType\_2>>\[\]; get: { <ValueType\_3>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_3>, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): Promise<ValueType\_3>; <ValueType\_4>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_4>, options: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md)<!-- -->): Promise<ValueType\_4 \| undefined>; }; getSync: { <ValueType\_5>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_5>, session?: loopbackContext.[ResolutionSession](./context.resolutionsession.md) \| undefined): ValueType\_5; <ValueType\_6>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_6>, options?: loopbackContext.[ResolutionOptions](./context.resolutionoptions.md) \| undefined): ValueType\_6 \| undefined; }; getBinding: { <ValueType\_7 = any>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_7>): [Binding](./context.binding.md)<!-- --><ValueType\_7>; <ValueType\_8>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_8>, options?: { optional?: boolean \| undefined; } \| undefined): [Binding](./context.binding.md)<!-- --><ValueType\_8> \| undefined; }; findOrCreateBinding: <T\_3>(key: [BindingAddress](./context.bindingaddress.md)<!-- --><T\_3>, policy?: loopbackContext.[BindingCreationPolicy](./context.bindingcreationpolicy.md) \| undefined) => [Binding](./context.binding.md)<!-- --><T\_3>; getValueOrPromise: <ValueType\_9>(keyWithPath: [BindingAddress](./context.bindingaddress.md)<!-- --><ValueType\_9>, optionsOrSession?: loopbackContext.[ResolutionOptionsOrSession](./context.resolutionoptionsorsession.md) \| undefined) => loopbackContext.[ValueOrPromise](./context.valueorpromise.md)<!-- --><ValueType\_9 \| undefined>; toJSON: () => loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; inspect: (options?: loopbackContext.[ContextInspectOptions](./context.contextinspectoptions.md) \| undefined) => loopbackContext.[JSONObject](./context.jsonobject.md)<!-- -->; on: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): [Context](./context.context.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) => void): [Context](./context.context.md)<!-- -->; }; once: { (eventName: "bind" \| "unbind", listener: loopbackContext.[ContextEventListener](./context.contexteventlistener.md)<!-- -->): [Context](./context.context.md)<!-- -->; (event: string \| symbol, listener: (...args: any\[\]) => void): [Context](./context.context.md)<!-- -->; }; addListener: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; removeListener: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; off: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; removeAllListeners: (event?: string \| symbol \| undefined) => [Context](./context.context.md)<!-- -->; setMaxListeners: (n: number) => [Context](./context.context.md)<!-- -->; getMaxListeners: () => number; listeners: (event: string \| symbol) => Function\[\]; rawListeners: (event: string \| symbol) => Function\[\]; emit: (event: string \| symbol, ...args: any\[\]) => boolean; listenerCount: (type: string \| symbol) => number; prependListener: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; prependOnceListener: (event: string \| symbol, listener: (...args: any\[\]) => void) => [Context](./context.context.md)<!-- -->; eventNames: () => (string \| symbol)\[\]; }; } & T
|
|
103
103
|
|
|
104
104
|
|
|
@@ -40,7 +40,6 @@ expressMiddleware<CFG>(middlewareFactory: ExpressMiddlewareFactory<CFG>, middlew
|
|
|
40
40
|
import myExpressMiddlewareFactory from 'my-express-middleware';
|
|
41
41
|
const myExpressMiddlewareConfig= {};
|
|
42
42
|
server.expressMiddleware(myExpressMiddlewareFactory, myExpressMiddlewareConfig);
|
|
43
|
-
|
|
44
43
|
```
|
|
45
44
|
|
|
46
45
|
|