@loopback/boot 2.5.0 → 3.0.2
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 +50 -0
- package/dist/.sandbox/{58026FlgHaw → 13668CBQ78z}/application.js +0 -0
- package/dist/.sandbox/{58029mczoB7 → 13668CBQ78z}/repositories/multiple.repository.js +0 -0
- package/dist/.sandbox/{580277nSwfJ → 136691aYtyq}/application.js +0 -0
- package/dist/.sandbox/{58031Q7Xs6g → 136691aYtyq}/datasources/db.datasource.js +0 -0
- package/dist/.sandbox/{58030B0ZNx2 → 136699FaG5e}/multiple.artifact.js +0 -0
- package/dist/.sandbox/{58031KvvSIC → 13669PdIt5Y}/model-endpoints/no-entity.rest-config.js +0 -0
- package/dist/.sandbox/{58029CmUsUW → 13669PdIt5Y}/models/no-entity.model.js +0 -0
- package/dist/.sandbox/{58026gQ7aZw → 13670USa7kn}/model-endpoints/product.rest-config.js +0 -0
- package/dist/.sandbox/{58026gQ7aZw → 13670USa7kn}/models/product.model.js +0 -0
- package/dist/.sandbox/{58028IS6YTh → 13670oClkKr}/application.js +0 -0
- package/dist/.sandbox/{58026FlgHaw → 13670oClkKr}/interceptors/interceptor.interceptor.js +0 -0
- package/dist/.sandbox/{58026FlgHaw → 13670oClkKr}/interceptors/non-global-interceptor.interceptor.js +1 -1
- package/dist/.sandbox/{58029CmUsUW → 13671AwQ2Iw}/application.js +0 -0
- package/dist/.sandbox/{58025EBb7iS → 13671AwQ2Iw}/controllers/multiple.controller.js +0 -0
- package/dist/.sandbox/{58027AvH6ER → 13672i82tvx}/service-provider.artifact.js +0 -0
- package/dist/.sandbox/{58027et7Tgy → 13672pCFrGU}/datasource.artifact.js +0 -0
- package/dist/.sandbox/{58029EXbLaz → 13672qD6fhI}/application.js +0 -0
- package/dist/.sandbox/{58028IS6YTh → 13672qD6fhI}/controllers/multiple.controller.js +0 -0
- package/dist/.sandbox/{58025EBb7iS → 13672qD6fhI}/package.json +0 -0
- package/dist/.sandbox/{58030KbJWl2 → 13672rCNCix}/multiple.artifact.js +0 -0
- package/dist/.sandbox/{58029mczoB7 → 13673FDHNMv}/application.js +0 -0
- package/dist/.sandbox/{580277nSwfJ → 13673FDHNMv}/services/bindable-classes.service.js +32 -3
- package/dist/.sandbox/13673FDHNMv/services/date.service.js +15 -0
- package/dist/.sandbox/{580277nSwfJ → 13673FDHNMv}/services/geocoder.service.js +0 -0
- package/dist/.sandbox/{580277nSwfJ → 13673FDHNMv}/services/greeting.service.js +0 -0
- package/dist/.sandbox/{5803028n8fb → 13673InSeMJ}/application.js +0 -0
- package/dist/.sandbox/{58029CmUsUW → 13673InSeMJ}/models/multiple-models.model.js +0 -0
- package/dist/.sandbox/{58031KvvSIC → 13673InSeMJ}/models/no-entity.model.js +0 -0
- package/dist/.sandbox/{58029CmUsUW → 13673InSeMJ}/models/product.model.js +0 -0
- package/dist/.sandbox/{58031Q7Xs6g → 13673Tsw8CI}/application.js +0 -0
- package/dist/.sandbox/{58029EXbLaz → 13673Tsw8CI}/observers/lifecycle-observer.observer.js +0 -0
- package/dist/.sandbox/{58025EBb7iS → 13673jshTY0/dist}/application.js +0 -0
- package/dist/.sandbox/{58029CtOxbM → 13673jshTY0}/package.json +0 -0
- package/dist/.sandbox/{58029CtOxbM/dist → 13674RdtRZU}/application.js +0 -0
- package/dist/.sandbox/{5803028n8fb → 13674RdtRZU}/controllers/multiple.controller.js +0 -0
- package/dist/.sandbox/{5803028n8fb → 13674RdtRZU}/package.json +0 -0
- package/dist/booters/service.booter.js +8 -1
- package/dist/booters/service.booter.js.map +1 -1
- package/dist/bootstrapper.js +1 -1
- package/dist/bootstrapper.js.map +1 -1
- package/dist/keys.d.ts +4 -0
- package/dist/keys.js +4 -0
- package/dist/keys.js.map +1 -1
- package/dist/mixins/boot.mixin.d.ts +9 -4
- package/dist/mixins/boot.mixin.js +2 -3
- package/dist/mixins/boot.mixin.js.map +1 -1
- package/dist/types.js +7 -1
- package/dist/types.js.map +1 -1
- package/package.json +18 -15
- package/src/booters/service.booter.ts +10 -1
- package/src/bootstrapper.ts +1 -1
- package/src/keys.ts +4 -0
- package/src/mixins/boot.mixin.ts +1 -3
- package/src/types.ts +16 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,56 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.0.2](https://github.com/strongloop/loopback-next/compare/@loopback/boot@3.0.1...@loopback/boot@3.0.2) (2020-10-07)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @loopback/boot
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [3.0.1](https://github.com/strongloop/loopback-next/compare/@loopback/boot@3.0.0...@loopback/boot@3.0.1) (2020-09-17)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @loopback/boot
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [3.0.0](https://github.com/strongloop/loopback-next/compare/@loopback/boot@2.5.1...@loopback/boot@3.0.0) (2020-09-15)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* allow dynamic value provider classes and classes with [@inject](https://github.com/inject) to be booted ([7b85cdf](https://github.com/strongloop/loopback-next/commit/7b85cdf63730ef659a4ee799f05f02eea8a1e3e8))
|
|
28
|
+
* move framework packages to `devDependencies` ([e2c61ce](https://github.com/strongloop/loopback-next/commit/e2c61ce79aa68d76f6e7138642034160b50063f0))
|
|
29
|
+
* **boot:** unify booter namespace to be `booters` ([c8bdfda](https://github.com/strongloop/loopback-next/commit/c8bdfda2abff4e57b9e95aaab0717f0581c5812b))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### BREAKING CHANGES
|
|
33
|
+
|
|
34
|
+
* components no longer install core framework packages as
|
|
35
|
+
their own dependencies, they use the framework packages provided by the
|
|
36
|
+
target application instead.
|
|
37
|
+
|
|
38
|
+
If you are getting `npm install` errors after upgrade, then make sure
|
|
39
|
+
your project lists all dependencies required by the extensions you are
|
|
40
|
+
using.
|
|
41
|
+
|
|
42
|
+
Signed-off-by: Miroslav Bajtoš <mbajtoss@gmail.com>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## [2.5.1](https://github.com/strongloop/loopback-next/compare/@loopback/boot@2.5.0...@loopback/boot@2.5.1) (2020-08-27)
|
|
49
|
+
|
|
50
|
+
**Note:** Version bump only for package @loopback/boot
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
6
56
|
# [2.5.0](https://github.com/strongloop/loopback-next/compare/@loopback/boot@2.4.1...@loopback/boot@2.5.0) (2020-08-19)
|
|
7
57
|
|
|
8
58
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/.sandbox/{58026FlgHaw → 13670oClkKr}/interceptors/non-global-interceptor.interceptor.js
RENAMED
|
@@ -44,7 +44,7 @@ let MyInterceptor = class MyInterceptor {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
MyInterceptor = tslib_1.__decorate([
|
|
47
|
-
core_1.
|
|
47
|
+
core_1.injectable({ tags: { namespace: 'interceptors', name: 'myInterceptor' } })
|
|
48
48
|
], MyInterceptor);
|
|
49
49
|
exports.MyInterceptor = MyInterceptor;
|
|
50
50
|
//# sourceMappingURL=non-global-interceptor.artifact.js.map
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.NotBindableDateProvider = exports.NotBindableGreetingService = exports.DateProvider = exports.BindableGreetingService = void 0;
|
|
7
|
+
exports.ServiceWithMethodInject = exports.ServiceWithPropertyInject = exports.ServiceWithConstructorInject = exports.NotBindableDateProvider = exports.NotBindableGreetingService = exports.DateProvider = exports.BindableGreetingService = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
9
|
const core_1 = require("@loopback/core");
|
|
10
10
|
let BindableGreetingService = class BindableGreetingService {
|
|
@@ -13,7 +13,7 @@ let BindableGreetingService = class BindableGreetingService {
|
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
BindableGreetingService = tslib_1.__decorate([
|
|
16
|
-
core_1.
|
|
16
|
+
core_1.injectable({
|
|
17
17
|
tags: { serviceType: 'local' },
|
|
18
18
|
scope: core_1.BindingScope.SINGLETON,
|
|
19
19
|
})
|
|
@@ -25,7 +25,7 @@ let DateProvider = class DateProvider {
|
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
DateProvider = tslib_1.__decorate([
|
|
28
|
-
core_1.
|
|
28
|
+
core_1.injectable({ tags: { serviceType: 'local', name: 'CurrentDate' } })
|
|
29
29
|
], DateProvider);
|
|
30
30
|
exports.DateProvider = DateProvider;
|
|
31
31
|
class NotBindableGreetingService {
|
|
@@ -40,5 +40,34 @@ class NotBindableDateProvider {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
exports.NotBindableDateProvider = NotBindableDateProvider;
|
|
43
|
+
let ServiceWithConstructorInject = class ServiceWithConstructorInject {
|
|
44
|
+
constructor(user) {
|
|
45
|
+
this.user = user;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
ServiceWithConstructorInject = tslib_1.__decorate([
|
|
49
|
+
tslib_1.__param(0, core_1.inject('currentUser')),
|
|
50
|
+
tslib_1.__metadata("design:paramtypes", [String])
|
|
51
|
+
], ServiceWithConstructorInject);
|
|
52
|
+
exports.ServiceWithConstructorInject = ServiceWithConstructorInject;
|
|
53
|
+
class ServiceWithPropertyInject {
|
|
54
|
+
}
|
|
55
|
+
tslib_1.__decorate([
|
|
56
|
+
core_1.inject('currentUser'),
|
|
57
|
+
tslib_1.__metadata("design:type", String)
|
|
58
|
+
], ServiceWithPropertyInject.prototype, "user", void 0);
|
|
59
|
+
exports.ServiceWithPropertyInject = ServiceWithPropertyInject;
|
|
60
|
+
class ServiceWithMethodInject {
|
|
61
|
+
greet(user) {
|
|
62
|
+
return `Hello, ${user}`;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
tslib_1.__decorate([
|
|
66
|
+
tslib_1.__param(0, core_1.inject('currentUser')),
|
|
67
|
+
tslib_1.__metadata("design:type", Function),
|
|
68
|
+
tslib_1.__metadata("design:paramtypes", [String]),
|
|
69
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
70
|
+
], ServiceWithMethodInject.prototype, "greet", null);
|
|
71
|
+
exports.ServiceWithMethodInject = ServiceWithMethodInject;
|
|
43
72
|
//# sourceMappingURL=bindable-classes.artifact.js.map
|
|
44
73
|
//# sourceMappingURL=/Users/rfeng/Projects/loopback4/loopback-next/packages/boot/dist/__tests__/fixtures/bindable-classes.artifact.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright IBM Corp. 2019. All Rights Reserved.
|
|
3
|
+
// Node module: @loopback/boot
|
|
4
|
+
// This file is licensed under the MIT License.
|
|
5
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DynamicDateProvider = void 0;
|
|
8
|
+
class DynamicDateProvider {
|
|
9
|
+
static value() {
|
|
10
|
+
return new Date();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.DynamicDateProvider = DynamicDateProvider;
|
|
14
|
+
//# sourceMappingURL=service-dynamic-value-provider.artifact.js.map
|
|
15
|
+
//# sourceMappingURL=/Users/rfeng/Projects/loopback4/loopback-next/packages/boot/dist/__tests__/fixtures/service-dynamic-value-provider.artifact.js.map
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -70,11 +70,18 @@ function isBindableClass(cls) {
|
|
|
70
70
|
if (core_1.MetadataInspector.getClassMetadata(core_1.BINDING_METADATA_KEY, cls)) {
|
|
71
71
|
return true;
|
|
72
72
|
}
|
|
73
|
+
if (core_1.hasInjections(cls)) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
73
76
|
if (isServiceProvider(cls)) {
|
|
74
77
|
debug('Provider class found: %s', cls.name);
|
|
75
78
|
return true;
|
|
76
79
|
}
|
|
77
|
-
|
|
80
|
+
if (core_1.isDynamicValueProviderClass(cls)) {
|
|
81
|
+
debug('Dynamic value provider class found: %s', cls.name);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
debug('Skip class not decorated with @injectable: %s', cls.name);
|
|
78
85
|
return false;
|
|
79
86
|
}
|
|
80
87
|
//# sourceMappingURL=service.booter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.booter.js","sourceRoot":"","sources":["../../src/booters/service.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"service.booter.js","sourceRoot":"","sources":["../../src/booters/service.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCASwB;AAExB,0DAAiC;AACjC,kCAAqC;AACrC,oCAAiD;AACjD,iEAA0D;AAE1D,MAAM,KAAK,GAAG,eAAY,CAAC,8BAA8B,CAAC,CAAC;AAE3D;;;;;;;;;GASG;AAEH,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,yCAAkB;IACnD,YAES,GAA4B,EACA,WAAmB,EAE/C,gBAAiC,EAAE;QAE1C,KAAK,CACH,WAAW;QACX,yDAAyD;QACzD,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,uBAAe,EAAE,aAAa,CAAC,CAClD,CAAC;QATK,QAAG,GAAH,GAAG,CAAyB;QAG5B,kBAAa,GAAb,aAAa,CAAsB;IAO5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEpC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;SACjD;IACH,CAAC;CACF,CAAA;AA9BY,aAAa;IADzB,cAAM,CAAC,UAAU,CAAC;IAGd,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IAEzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAA;IACjC,mBAAA,aAAM,EAAE,CAAA;;GALA,aAAa,CA8BzB;AA9BY,sCAAa;AAgC1B;;GAEG;AACU,QAAA,eAAe,GAAoB;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,MAAM,EAAE,IAAI;CACb,CAAC;AAEF,SAAS,iBAAiB,CAAC,GAAyB;IAClD,MAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC;IACjE,OAAO,gBAAgB,IAAI,cAAc,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,GAAyB;IAChD,IAAI,wBAAiB,CAAC,gBAAgB,CAAC,2BAAoB,EAAE,GAAG,CAAC,EAAE;QACjE,OAAO,IAAI,CAAC;KACb;IACD,IAAI,oBAAa,CAAC,GAAG,CAAC,EAAE;QACtB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE;QAC1B,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;KACb;IACD,IAAI,kCAA2B,CAAC,GAAG,CAAC,EAAE;QACpC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;KACb;IACD,KAAK,CAAC,+CAA+C,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/bootstrapper.js
CHANGED
|
@@ -64,7 +64,7 @@ let Bootstrapper = class Bootstrapper {
|
|
|
64
64
|
// Find booters registered to the BOOTERS_TAG by getting the bindings
|
|
65
65
|
const bindings = bootCtx.findByTag(keys_1.BootTags.BOOTER);
|
|
66
66
|
// Prefix length. +1 because of `.` => 'booters.'
|
|
67
|
-
const prefixLength = keys_1.BootBindings.
|
|
67
|
+
const prefixLength = keys_1.BootBindings.BOOTERS.length + 1;
|
|
68
68
|
// Names of all registered booters.
|
|
69
69
|
const defaultBooterNames = bindings.map(binding => binding.key.slice(prefixLength));
|
|
70
70
|
// Determining the booters to be run. If a user set a booters filter (class
|
package/dist/bootstrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../src/bootstrapper.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAMwB;AACxB,0DAAgC;AAChC,+BAA6B;AAC7B,iCAA8C;AAC9C,qCAAoC;AACpC,mCAKiB;AAEjB,MAAM,KAAK,GAAG,eAAW,CAAC,4BAA4B,CAAC,CAAC;AAExD;;;;;;;;;;GAUG;AACH,IAAa,YAAY,GAAzB,MAAa,YAAY;IACvB,YAEU,GAA2B,EACQ,WAAmB,EAEtD,cAA2B,EAAE;QAH7B,QAAG,GAAH,GAAG,CAAwB;QACQ,gBAAW,GAAX,WAAW,CAAQ;QAEtD,gBAAW,GAAX,WAAW,CAAkB;QAErC,0CAA0C;QAC1C,IAAI,CAAC,WAAW,GAAG,cAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzD,+EAA+E;QAC/E,mDAAmD;QACnD,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,IAAI,CACR,WAAkC,EAClC,GAAa;;QAEb,MAAM,OAAO,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,IAAI,cAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7C,kDAAkD;QAClD,iEAAiE;QACjE,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE;YACxB,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;SACrE;QAED,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,MAAM,eAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,0CAAE,MAAM,mCAAI,qBAAa,CAAC;QAE5D,qEAAqE;QACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,eAAQ,CAAC,MAAM,CAAC,CAAC;QAEpD,iDAAiD;QACjD,MAAM,YAAY,GAAG,mBAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../src/bootstrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/keys.d.ts
CHANGED
|
@@ -17,6 +17,10 @@ export declare namespace BootBindings {
|
|
|
17
17
|
* Binding key for binding the BootStrapper class
|
|
18
18
|
*/
|
|
19
19
|
const BOOTSTRAPPER_KEY: BindingKey<Bootstrapper>;
|
|
20
|
+
/**
|
|
21
|
+
* Booter binding namespace
|
|
22
|
+
*/
|
|
23
|
+
const BOOTERS = "booters";
|
|
20
24
|
const BOOTER_PREFIX = "booters";
|
|
21
25
|
}
|
|
22
26
|
/**
|
package/dist/keys.js
CHANGED
|
@@ -23,6 +23,10 @@ var BootBindings;
|
|
|
23
23
|
* Binding key for binding the BootStrapper class
|
|
24
24
|
*/
|
|
25
25
|
BootBindings.BOOTSTRAPPER_KEY = core_1.BindingKey.create('application.bootstrapper');
|
|
26
|
+
/**
|
|
27
|
+
* Booter binding namespace
|
|
28
|
+
*/
|
|
29
|
+
BootBindings.BOOTERS = 'booters';
|
|
26
30
|
BootBindings.BOOTER_PREFIX = 'booters';
|
|
27
31
|
})(BootBindings = exports.BootBindings || (exports.BootBindings = {}));
|
|
28
32
|
/**
|
package/dist/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAA0C;AAI1C;;GAEG;AACH,IAAiB,YAAY,
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAA0C;AAI1C;;GAEG;AACH,IAAiB,YAAY,CAsB5B;AAtBD,WAAiB,YAAY;IAC3B;;OAEG;IACU,yBAAY,GAAG,iBAAU,CAAC,MAAM,CAAc,cAAc,CAAC,CAAC;IAC3E;;OAEG;IACU,yBAAY,GAAG,iBAAU,CAAC,MAAM,CAAS,mBAAmB,CAAC,CAAC;IAE3E;;OAEG;IACU,6BAAgB,GAAG,iBAAU,CAAC,MAAM,CAC/C,0BAA0B,CAC3B,CAAC;IAEF;;OAEG;IACU,oBAAO,GAAG,SAAS,CAAC;IACpB,0BAAa,GAAG,SAAS,CAAC;AACzC,CAAC,EAtBgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAsB5B;AAED;;GAEG;AACH,IAAiB,QAAQ,CAMxB;AAND,WAAiB,QAAQ;IACV,eAAM,GAAG,QAAQ,CAAC;IAC/B;;OAEG;IACU,mBAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5C,CAAC,EANgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMxB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Binding, BindingFilter, BindingFromClassOptions, Constructor, Context } from '@loopback/core';
|
|
2
|
-
import { Application, Component, MixinTarget } from '@loopback/core';
|
|
1
|
+
import { Binding, BindingFilter, BindingFromClassOptions, BindingScope, Constructor, Context, Application, Component, MixinTarget } from '@loopback/core';
|
|
3
2
|
import { Bootable, Booter, BootOptions, InstanceWithBooters } from '../types';
|
|
4
3
|
import * as loopbackContext from '@loopback/core';
|
|
5
4
|
export { Binding };
|
|
@@ -88,13 +87,16 @@ export declare function BootMixin<T extends MixinTarget<Application>>(superClass
|
|
|
88
87
|
server: <T_2 extends loopbackContext.Server>(ctor: Constructor<T_2>, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding<T_2>;
|
|
89
88
|
servers: <T_3 extends loopbackContext.Server>(ctors: Constructor<T_3>[]) => Binding<any>[];
|
|
90
89
|
getServer: <T_4 extends loopbackContext.Server>(target: string | Constructor<T_4>) => Promise<T_4>;
|
|
90
|
+
onStart: (fn: () => void | PromiseLike<void>) => Binding<loopbackContext.LifeCycleObserver>;
|
|
91
91
|
stop: () => Promise<void>;
|
|
92
|
+
onStop: (fn: () => void | PromiseLike<void>) => Binding<loopbackContext.LifeCycleObserver>;
|
|
92
93
|
setMetadata: (metadata: loopbackContext.ApplicationMetadata) => void;
|
|
93
94
|
lifeCycleObserver: <T_5 extends loopbackContext.LifeCycleObserver>(ctor: Constructor<T_5>, nameOrOptions?: string | BindingFromClassOptions | undefined) => Binding<T_5>;
|
|
94
|
-
service: <S>(cls:
|
|
95
|
+
service: <S>(cls: loopbackContext.ServiceOrProviderClass<S>, nameOrOptions?: string | loopbackContext.ServiceOptions | undefined) => Binding<S>;
|
|
95
96
|
interceptor: (interceptor: loopbackContext.Interceptor | Constructor<loopbackContext.Provider<loopbackContext.Interceptor>>, nameOrOptions?: string | loopbackContext.InterceptorBindingOptions | undefined) => Binding<loopbackContext.Interceptor>;
|
|
96
97
|
readonly name: string;
|
|
97
98
|
readonly subscriptionManager: loopbackContext.ContextSubscriptionManager;
|
|
99
|
+
scope: BindingScope;
|
|
98
100
|
readonly parent: Context | undefined;
|
|
99
101
|
emitEvent: <T_6 extends loopbackContext.ContextEvent>(type: string, event: T_6) => void;
|
|
100
102
|
emitError: (err: unknown) => void;
|
|
@@ -112,7 +114,10 @@ export declare function BootMixin<T extends MixinTarget<Application>>(superClass
|
|
|
112
114
|
createView: <T_7 = unknown>(filter: BindingFilter, comparator?: loopbackContext.BindingComparator | undefined) => loopbackContext.ContextView<T_7>;
|
|
113
115
|
contains: (key: loopbackContext.BindingAddress<unknown>) => boolean;
|
|
114
116
|
isBound: (key: loopbackContext.BindingAddress<unknown>) => boolean;
|
|
115
|
-
getOwnerContext: (
|
|
117
|
+
getOwnerContext: (keyOrBinding: string | Readonly<Binding<unknown>> | loopbackContext.BindingKey<unknown>) => Context | undefined;
|
|
118
|
+
getScopedContext: (scope: BindingScope.APPLICATION | BindingScope.SERVER | BindingScope.REQUEST) => Context | undefined;
|
|
119
|
+
getResolutionContext: (binding: Readonly<Binding<unknown>>) => Context | undefined;
|
|
120
|
+
isVisibleTo: (ctx: Context) => boolean;
|
|
116
121
|
find: <ValueType_1 = any>(pattern?: string | RegExp | BindingFilter | undefined) => Readonly<Binding<ValueType_1>>[];
|
|
117
122
|
findByTag: <ValueType_2 = any>(tagFilter: string | RegExp | Record<string, any>) => Readonly<Binding<ValueType_2>>[];
|
|
118
123
|
get: {
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports._bindBooter = exports.bindBooter = exports.BootMixin = exports.Binding = void 0;
|
|
8
8
|
const core_1 = require("@loopback/core");
|
|
9
9
|
Object.defineProperty(exports, "Binding", { enumerable: true, get: function () { return core_1.Binding; } });
|
|
10
|
-
const core_2 = require("@loopback/core");
|
|
11
10
|
const boot_component_1 = require("../boot.component");
|
|
12
11
|
const component_application_booter_1 = require("../booters/component-application.booter");
|
|
13
12
|
const keys_1 = require("../keys");
|
|
@@ -157,7 +156,7 @@ function BootMixin(superClass) {
|
|
|
157
156
|
}
|
|
158
157
|
// TODO(semver-major) @bajtos: Reminder to remove this on the next major release
|
|
159
158
|
const componentName = componentInstanceOrClass.name;
|
|
160
|
-
const componentKey = `${
|
|
159
|
+
const componentKey = `${core_1.CoreBindings.COMPONENTS}.${componentName}`;
|
|
161
160
|
return ctx.getSync(componentKey);
|
|
162
161
|
}
|
|
163
162
|
}
|
|
@@ -173,7 +172,7 @@ exports.BootMixin = BootMixin;
|
|
|
173
172
|
*/
|
|
174
173
|
function bindBooter(ctx, booterCls) {
|
|
175
174
|
const binding = core_1.createBindingFromClass(booterCls, {
|
|
176
|
-
namespace: keys_1.BootBindings.
|
|
175
|
+
namespace: keys_1.BootBindings.BOOTERS,
|
|
177
176
|
defaultScope: core_1.BindingScope.SINGLETON,
|
|
178
177
|
}).tag(keys_1.BootTags.BOOTER);
|
|
179
178
|
ctx.add(binding);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.mixin.js","sourceRoot":"","sources":["../../src/mixins/boot.mixin.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"boot.mixin.js","sourceRoot":"","sources":["../../src/mixins/boot.mixin.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -39,7 +39,13 @@ exports.BOOTER_PHASES = ['configure', 'discover', 'load'];
|
|
|
39
39
|
* @param specs - Extra specs for the binding
|
|
40
40
|
*/
|
|
41
41
|
function booter(artifactNamespace, ...specs) {
|
|
42
|
-
return core_1.
|
|
42
|
+
return core_1.injectable({
|
|
43
|
+
tags: {
|
|
44
|
+
artifactNamespace,
|
|
45
|
+
[keys_1.BootTags.BOOTER]: keys_1.BootTags.BOOTER,
|
|
46
|
+
[core_1.ContextTags.NAMESPACE]: keys_1.BootBindings.BOOTERS,
|
|
47
|
+
},
|
|
48
|
+
}, ...specs);
|
|
43
49
|
}
|
|
44
50
|
exports.booter = booter;
|
|
45
51
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAMwB;AACxB,iCAA8C;AAoD9C;;;GAGG;AACU,QAAA,aAAa,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAmE/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,MAAM,CAAC,iBAAyB,EAAE,GAAG,KAAoB;IACvE,OAAO,iBAAU,CACf;QACE,IAAI,EAAE;YACJ,iBAAiB;YACjB,CAAC,eAAQ,CAAC,MAAM,CAAC,EAAE,eAAQ,CAAC,MAAM;YAClC,CAAC,kBAAW,CAAC,SAAS,CAAC,EAAE,mBAAY,CAAC,OAAO;SAC9C;KACF,EACD,GAAG,KAAK,CACT,CAAC;AACJ,CAAC;AAXD,wBAWC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/boot",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"description": "A collection of Booters for LoopBack 4 Applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": "
|
|
8
|
+
"node": "^10.16 || 12 || 14"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
11
11
|
"acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"",
|
|
@@ -23,24 +23,27 @@
|
|
|
23
23
|
"publishConfig": {
|
|
24
24
|
"access": "public"
|
|
25
25
|
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"@loopback/core": "^2.11.0"
|
|
28
|
+
},
|
|
26
29
|
"dependencies": {
|
|
27
|
-
"@loopback/
|
|
28
|
-
"@loopback/
|
|
29
|
-
"@loopback/
|
|
30
|
-
"@loopback/service-proxy": "^2.3.7",
|
|
30
|
+
"@loopback/model-api-builder": "^2.1.16",
|
|
31
|
+
"@loopback/repository": "^3.1.0",
|
|
32
|
+
"@loopback/service-proxy": "^3.0.2",
|
|
31
33
|
"@types/debug": "^4.1.5",
|
|
32
34
|
"@types/glob": "^7.1.3",
|
|
33
|
-
"debug": "^4.
|
|
35
|
+
"debug": "^4.2.0",
|
|
34
36
|
"glob": "^7.1.6",
|
|
35
|
-
"tslib": "^2.0.
|
|
37
|
+
"tslib": "^2.0.2"
|
|
36
38
|
},
|
|
37
39
|
"devDependencies": {
|
|
38
|
-
"@loopback/build": "^6.2.
|
|
39
|
-
"@loopback/
|
|
40
|
-
"@loopback/
|
|
41
|
-
"@loopback/rest
|
|
42
|
-
"@loopback/
|
|
43
|
-
"@
|
|
40
|
+
"@loopback/build": "^6.2.5",
|
|
41
|
+
"@loopback/core": "^2.11.0",
|
|
42
|
+
"@loopback/eslint-config": "^10.0.1",
|
|
43
|
+
"@loopback/rest": "^8.0.0",
|
|
44
|
+
"@loopback/rest-crud": "^0.8.16",
|
|
45
|
+
"@loopback/testlab": "^3.2.7",
|
|
46
|
+
"@types/node": "^10.17.35"
|
|
44
47
|
},
|
|
45
48
|
"files": [
|
|
46
49
|
"README.md",
|
|
@@ -53,5 +56,5 @@
|
|
|
53
56
|
"url": "https://github.com/strongloop/loopback-next.git",
|
|
54
57
|
"directory": "packages/boot"
|
|
55
58
|
},
|
|
56
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "390f2794d10eea3d969ae417963af815ce1bc417"
|
|
57
60
|
}
|
|
@@ -8,7 +8,9 @@ import {
|
|
|
8
8
|
config,
|
|
9
9
|
Constructor,
|
|
10
10
|
CoreBindings,
|
|
11
|
+
hasInjections,
|
|
11
12
|
inject,
|
|
13
|
+
isDynamicValueProviderClass,
|
|
12
14
|
MetadataInspector,
|
|
13
15
|
} from '@loopback/core';
|
|
14
16
|
import {ApplicationWithServices} from '@loopback/service-proxy';
|
|
@@ -81,10 +83,17 @@ function isBindableClass(cls: Constructor<unknown>) {
|
|
|
81
83
|
if (MetadataInspector.getClassMetadata(BINDING_METADATA_KEY, cls)) {
|
|
82
84
|
return true;
|
|
83
85
|
}
|
|
86
|
+
if (hasInjections(cls)) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
84
89
|
if (isServiceProvider(cls)) {
|
|
85
90
|
debug('Provider class found: %s', cls.name);
|
|
86
91
|
return true;
|
|
87
92
|
}
|
|
88
|
-
|
|
93
|
+
if (isDynamicValueProviderClass(cls)) {
|
|
94
|
+
debug('Dynamic value provider class found: %s', cls.name);
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
debug('Skip class not decorated with @injectable: %s', cls.name);
|
|
89
98
|
return false;
|
|
90
99
|
}
|
package/src/bootstrapper.ts
CHANGED
|
@@ -85,7 +85,7 @@ export class Bootstrapper {
|
|
|
85
85
|
const bindings = bootCtx.findByTag(BootTags.BOOTER);
|
|
86
86
|
|
|
87
87
|
// Prefix length. +1 because of `.` => 'booters.'
|
|
88
|
-
const prefixLength = BootBindings.
|
|
88
|
+
const prefixLength = BootBindings.BOOTERS.length + 1;
|
|
89
89
|
|
|
90
90
|
// Names of all registered booters.
|
|
91
91
|
const defaultBooterNames = bindings.map(binding =>
|
package/src/keys.ts
CHANGED
package/src/mixins/boot.mixin.ts
CHANGED
|
@@ -11,8 +11,6 @@ import {
|
|
|
11
11
|
Constructor,
|
|
12
12
|
Context,
|
|
13
13
|
createBindingFromClass,
|
|
14
|
-
} from '@loopback/core';
|
|
15
|
-
import {
|
|
16
14
|
Application,
|
|
17
15
|
Component,
|
|
18
16
|
CoreBindings,
|
|
@@ -235,7 +233,7 @@ export function bindBooter(
|
|
|
235
233
|
booterCls: Constructor<Booter>,
|
|
236
234
|
): Binding {
|
|
237
235
|
const binding = createBindingFromClass(booterCls, {
|
|
238
|
-
namespace: BootBindings.
|
|
236
|
+
namespace: BootBindings.BOOTERS,
|
|
239
237
|
defaultScope: BindingScope.SINGLETON,
|
|
240
238
|
}).tag(BootTags.BOOTER);
|
|
241
239
|
ctx.add(binding);
|
package/src/types.ts
CHANGED
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import {
|
|
7
|
+
Binding,
|
|
8
|
+
BindingSpec,
|
|
9
|
+
Constructor,
|
|
10
|
+
ContextTags,
|
|
11
|
+
injectable,
|
|
12
|
+
} from '@loopback/core';
|
|
13
|
+
import {BootBindings, BootTags} from './keys';
|
|
8
14
|
|
|
9
15
|
/**
|
|
10
16
|
* Type definition for ArtifactOptions. These are the options supported by
|
|
@@ -154,8 +160,14 @@ export interface Bootable {
|
|
|
154
160
|
* @param specs - Extra specs for the binding
|
|
155
161
|
*/
|
|
156
162
|
export function booter(artifactNamespace: string, ...specs: BindingSpec[]) {
|
|
157
|
-
return
|
|
158
|
-
{
|
|
163
|
+
return injectable(
|
|
164
|
+
{
|
|
165
|
+
tags: {
|
|
166
|
+
artifactNamespace,
|
|
167
|
+
[BootTags.BOOTER]: BootTags.BOOTER,
|
|
168
|
+
[ContextTags.NAMESPACE]: BootBindings.BOOTERS,
|
|
169
|
+
},
|
|
170
|
+
},
|
|
159
171
|
...specs,
|
|
160
172
|
);
|
|
161
173
|
}
|