@loopback/boot 2.3.1 → 2.3.5
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 +49 -0
- package/dist/.sandbox/{63541odlHvc → 18043muTUQs}/model-endpoints/product.rest-config.js +0 -0
- package/dist/.sandbox/18043muTUQs/models/product.model.js +25 -0
- package/dist/.sandbox/{635419mu8mo → 18043wLA3S3}/application.js +0 -0
- package/dist/.sandbox/18043wLA3S3/controllers/multiple.controller.js +39 -0
- package/dist/.sandbox/{63541DlS0Ic → 18044FOwh70}/application.js +0 -0
- package/dist/.sandbox/18044FOwh70/interceptors/interceptor.interceptor.js +51 -0
- package/dist/.sandbox/18044FOwh70/interceptors/non-global-interceptor.interceptor.js +51 -0
- package/dist/.sandbox/{63541DshyBF → 18045Jt9E5K}/application.js +0 -0
- package/dist/.sandbox/{63541ik89oh → 18045Jt9E5K}/models/multiple-models.model.js +0 -0
- package/dist/.sandbox/18045Jt9E5K/models/no-entity.model.js +25 -0
- package/dist/.sandbox/18045Jt9E5K/models/product.model.js +25 -0
- package/dist/.sandbox/{63541IEce5V → 18045YaR1P2}/application.js +0 -0
- package/dist/.sandbox/{63541DshyBF → 18045YaR1P2}/observers/lifecycle-observer.observer.js +0 -0
- package/dist/.sandbox/{635415cxfJi → 18045e2CYyx}/service-provider.artifact.js +0 -0
- package/dist/.sandbox/18045hzRuQ4/dist/application.js +20 -0
- package/dist/.sandbox/{63541meTxP7 → 18045hzRuQ4}/package.json +1 -1
- package/dist/.sandbox/{635419t6TqH → 18045rgy7Ui}/datasource.artifact.js +5 -8
- package/dist/.sandbox/{63541ik89oh → 18046d8C54w}/application.js +0 -0
- package/dist/.sandbox/18046d8C54w/controllers/multiple.controller.js +39 -0
- package/dist/.sandbox/{package.json → 18046d8C54w/package.json} +1 -1
- package/dist/.sandbox/18046kEhstv/multiple.artifact.js +39 -0
- package/dist/.sandbox/18046obZENY/multiple.artifact.js +39 -0
- package/dist/.sandbox/{63541meTxP7 → 18047EeHfXu}/application.js +0 -0
- package/dist/.sandbox/18047EeHfXu/repositories/multiple.repository.js +39 -0
- package/dist/.sandbox/{63541nGmQFL → 18048e1iuZt}/application.js +0 -0
- package/dist/.sandbox/{635419mu8mo → 18048e1iuZt}/services/bindable-classes.service.js +19 -25
- package/dist/.sandbox/{635419mu8mo → 18048e1iuZt}/services/geocoder.service.js +0 -0
- package/dist/.sandbox/{635419mu8mo → 18048e1iuZt}/services/greeting.service.js +0 -0
- package/dist/.sandbox/18048urj9RP/application.js +20 -0
- package/dist/.sandbox/18048urj9RP/controllers/multiple.controller.js +39 -0
- package/dist/.sandbox/18048urj9RP/package.json +18 -0
- package/dist/.sandbox/{635411GGsm1 → 18049UriL05}/model-endpoints/no-entity.rest-config.js +0 -0
- package/dist/.sandbox/18049UriL05/models/no-entity.model.js +25 -0
- package/dist/.sandbox/{63541ruUDNf → 18049gfsPc4}/application.js +0 -0
- package/dist/.sandbox/{63541IEce5V → 18049gfsPc4}/datasources/db.datasource.js +5 -8
- package/dist/boot.component.js +30 -34
- package/dist/boot.component.js.map +1 -1
- package/dist/booters/application-metadata.booter.js +19 -23
- package/dist/booters/application-metadata.booter.js.map +1 -1
- package/dist/booters/base-artifact.booter.d.ts +1 -1
- package/dist/booters/base-artifact.booter.js +1 -1
- package/dist/booters/booter-utils.d.ts +1 -1
- package/dist/booters/component-application.booter.js +39 -42
- package/dist/booters/component-application.booter.js.map +1 -1
- package/dist/booters/controller.booter.js +26 -30
- package/dist/booters/controller.booter.js.map +1 -1
- package/dist/booters/datasource.booter.js +36 -40
- package/dist/booters/datasource.booter.js.map +1 -1
- package/dist/booters/interceptor.booter.d.ts +1 -2
- package/dist/booters/interceptor.booter.js +28 -32
- package/dist/booters/interceptor.booter.js.map +1 -1
- package/dist/booters/lifecyle-observer.booter.d.ts +1 -1
- package/dist/booters/lifecyle-observer.booter.js +29 -32
- package/dist/booters/lifecyle-observer.booter.js.map +1 -1
- package/dist/booters/model-api.booter.js +63 -66
- package/dist/booters/model-api.booter.js.map +1 -1
- package/dist/booters/model.booter.js +31 -35
- package/dist/booters/model.booter.js.map +1 -1
- package/dist/booters/repository.booter.js +35 -39
- package/dist/booters/repository.booter.js.map +1 -1
- package/dist/booters/service.booter.js +30 -34
- package/dist/booters/service.booter.js.map +1 -1
- package/dist/bootstrapper.d.ts +1 -2
- package/dist/bootstrapper.js +77 -85
- package/dist/bootstrapper.js.map +1 -1
- package/dist/keys.d.ts +1 -1
- package/dist/keys.js +4 -4
- package/dist/keys.js.map +1 -1
- package/dist/mixins/boot.mixin.d.ts +52 -41
- package/dist/mixins/boot.mixin.js +40 -18
- package/dist/mixins/boot.mixin.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/package.json +18 -19
- package/src/boot.component.ts +7 -2
- package/src/booters/application-metadata.booter.ts +1 -2
- package/src/booters/base-artifact.booter.ts +2 -2
- package/src/booters/booter-utils.ts +1 -1
- package/src/booters/controller.booter.ts +1 -2
- package/src/booters/datasource.booter.ts +2 -3
- package/src/booters/interceptor.booter.ts +3 -2
- package/src/booters/lifecyle-observer.booter.ts +1 -1
- package/src/booters/model.booter.ts +1 -2
- package/src/booters/repository.booter.ts +1 -2
- package/src/booters/service.booter.ts +2 -2
- package/src/bootstrapper.ts +11 -10
- package/src/keys.ts +1 -1
- package/src/mixins/boot.mixin.ts +50 -45
- package/src/types.ts +8 -1
- package/dist/.sandbox/635411GGsm1/models/no-entity.model.js +0 -28
- package/dist/.sandbox/63541BtDxTa/multiple.artifact.js +0 -45
- package/dist/.sandbox/63541DlS0Ic/repositories/multiple.repository.js +0 -45
- package/dist/.sandbox/63541ik89oh/models/no-entity.model.js +0 -28
- package/dist/.sandbox/63541ik89oh/models/product.model.js +0 -28
- package/dist/.sandbox/63541meTxP7/controllers/multiple.controller.js +0 -45
- package/dist/.sandbox/63541nGmQFL/controllers/multiple.controller.js +0 -45
- package/dist/.sandbox/63541odlHvc/models/product.model.js +0 -28
- package/dist/.sandbox/63541ruUDNf/interceptors/interceptor.interceptor.js +0 -54
- package/dist/.sandbox/63541ruUDNf/interceptors/non-global-interceptor.interceptor.js +0 -54
- package/dist/.sandbox/63541vSi6af/multiple.artifact.js +0 -45
- package/dist/.sandbox/application.js +0 -20
- package/dist/.sandbox/controllers/multiple.controller.js +0 -45
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "boot-test-app",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "boot-test-app",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"loopback-application",
|
|
7
|
+
"loopback"
|
|
8
|
+
],
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=10.16"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git"
|
|
15
|
+
},
|
|
16
|
+
"author": "IBM Corp.",
|
|
17
|
+
"license": "MIT"
|
|
18
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright IBM Corp. 2020. 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.NoEntity = void 0;
|
|
8
|
+
const tslib_1 = require("tslib");
|
|
9
|
+
const repository_1 = require("@loopback/repository");
|
|
10
|
+
let NoEntity = class NoEntity extends repository_1.Model {
|
|
11
|
+
};
|
|
12
|
+
tslib_1.__decorate([
|
|
13
|
+
repository_1.property({ id: true }),
|
|
14
|
+
tslib_1.__metadata("design:type", Number)
|
|
15
|
+
], NoEntity.prototype, "id", void 0);
|
|
16
|
+
tslib_1.__decorate([
|
|
17
|
+
repository_1.property({ required: true }),
|
|
18
|
+
tslib_1.__metadata("design:type", String)
|
|
19
|
+
], NoEntity.prototype, "name", void 0);
|
|
20
|
+
NoEntity = tslib_1.__decorate([
|
|
21
|
+
repository_1.model()
|
|
22
|
+
], NoEntity);
|
|
23
|
+
exports.NoEntity = NoEntity;
|
|
24
|
+
//# sourceMappingURL=no-entity.model.js.map
|
|
25
|
+
//# sourceMappingURL=/Users/rfeng/Projects/loopback4/loopback-next/packages/boot/dist/__tests__/fixtures/no-entity.model.js.map
|
|
File without changes
|
|
@@ -6,15 +6,12 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.DbDataSource = void 0;
|
|
8
8
|
const repository_1 = require("@loopback/repository");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
super({ name: 'db' });
|
|
13
|
-
}
|
|
9
|
+
class DbDataSource extends repository_1.juggler.DataSource {
|
|
10
|
+
constructor() {
|
|
11
|
+
super({ name: 'db' });
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
return DbDataSource;
|
|
17
|
-
})();
|
|
13
|
+
}
|
|
18
14
|
exports.DbDataSource = DbDataSource;
|
|
15
|
+
DbDataSource.dataSourceName = 'db';
|
|
19
16
|
//# sourceMappingURL=datasource.artifact.js.map
|
|
20
17
|
//# sourceMappingURL=/Users/rfeng/Projects/loopback4/loopback-next/packages/boot/dist/__tests__/fixtures/datasource.artifact.js.map
|
package/dist/boot.component.js
CHANGED
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.BootComponent = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const context_1 = require("@loopback/context");
|
|
10
9
|
const core_1 = require("@loopback/core");
|
|
11
10
|
const booters_1 = require("./booters");
|
|
12
11
|
const bootstrapper_1 = require("./bootstrapper");
|
|
@@ -16,38 +15,35 @@ const keys_1 = require("./keys");
|
|
|
16
15
|
* available by this module as well as bind the BootStrapper to the app so it
|
|
17
16
|
* can be used to run the Booters.
|
|
18
17
|
*/
|
|
19
|
-
let BootComponent =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
], BootComponent);
|
|
50
|
-
return BootComponent;
|
|
51
|
-
})();
|
|
18
|
+
let BootComponent = class BootComponent {
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param app - Application instance
|
|
22
|
+
*/
|
|
23
|
+
constructor(app) {
|
|
24
|
+
// Export a list of default booters in the component so they get bound
|
|
25
|
+
// automatically when this component is mounted.
|
|
26
|
+
this.booters = [
|
|
27
|
+
booters_1.ApplicationMetadataBooter,
|
|
28
|
+
booters_1.ControllerBooter,
|
|
29
|
+
booters_1.RepositoryBooter,
|
|
30
|
+
booters_1.ServiceBooter,
|
|
31
|
+
booters_1.DataSourceBooter,
|
|
32
|
+
booters_1.LifeCycleObserverBooter,
|
|
33
|
+
booters_1.InterceptorProviderBooter,
|
|
34
|
+
booters_1.ModelApiBooter,
|
|
35
|
+
booters_1.ModelBooter,
|
|
36
|
+
];
|
|
37
|
+
// Bound as a SINGLETON so it can be cached as it has no state
|
|
38
|
+
app
|
|
39
|
+
.bind(keys_1.BootBindings.BOOTSTRAPPER_KEY)
|
|
40
|
+
.toClass(bootstrapper_1.Bootstrapper)
|
|
41
|
+
.inScope(core_1.BindingScope.SINGLETON);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
BootComponent = tslib_1.__decorate([
|
|
45
|
+
tslib_1.__param(0, core_1.inject(core_1.CoreBindings.APPLICATION_INSTANCE)),
|
|
46
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Application])
|
|
47
|
+
], BootComponent);
|
|
52
48
|
exports.BootComponent = BootComponent;
|
|
53
49
|
//# sourceMappingURL=boot.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot.component.js","sourceRoot":"","sources":["../src/boot.component.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"boot.component.js","sourceRoot":"","sources":["../src/boot.component.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAMwB;AACxB,uCAUmB;AACnB,iDAA4C;AAC5C,iCAAoC;AAEpC;;;;GAIG;AACH,IAAa,aAAa,GAA1B,MAAa,aAAa;IAexB;;;OAGG;IACH,YAAuD,GAAgB;QAlBvE,sEAAsE;QACtE,gDAAgD;QAChD,YAAO,GAAG;YACR,mCAAyB;YACzB,0BAAgB;YAChB,0BAAgB;YAChB,uBAAa;YACb,0BAAgB;YAChB,iCAAuB;YACvB,mCAAyB;YACzB,wBAAc;YACd,qBAAW;SACZ,CAAC;QAOA,8DAA8D;QAC9D,GAAG;aACA,IAAI,CAAC,mBAAY,CAAC,gBAAgB,CAAC;aACnC,OAAO,CAAC,2BAAY,CAAC;aACrB,OAAO,CAAC,mBAAY,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AA1BY,aAAa;IAmBX,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;6CAAM,kBAAW;GAnB5D,aAAa,CA0BzB;AA1BY,sCAAa"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.ApplicationMetadataBooter = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const context_1 = require("@loopback/context");
|
|
10
9
|
const core_1 = require("@loopback/core");
|
|
11
10
|
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
12
11
|
const keys_1 = require("../keys");
|
|
@@ -19,29 +18,26 @@ const debug = debug_1.default('loopback:boot:booter:application-metadata');
|
|
|
19
18
|
* @param app - Application instance
|
|
20
19
|
* @param projectRoot - Root of User Project
|
|
21
20
|
*/
|
|
22
|
-
let ApplicationMetadataBooter =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
let ApplicationMetadataBooter = class ApplicationMetadataBooter {
|
|
22
|
+
constructor(app, projectRoot) {
|
|
23
|
+
this.app = app;
|
|
24
|
+
this.projectRoot = projectRoot;
|
|
25
|
+
}
|
|
26
|
+
async configure() {
|
|
27
|
+
try {
|
|
28
|
+
// `this.projectRoot` points to `<project>/dist`
|
|
29
|
+
const pkg = require(path.resolve(this.projectRoot, '../package.json'));
|
|
30
|
+
this.app.setMetadata(pkg);
|
|
27
31
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// `this.projectRoot` points to `<project>/dist`
|
|
31
|
-
const pkg = require(path.resolve(this.projectRoot, '../package.json'));
|
|
32
|
-
this.app.setMetadata(pkg);
|
|
33
|
-
}
|
|
34
|
-
catch (err) {
|
|
35
|
-
debug('package.json not found', err);
|
|
36
|
-
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
debug('package.json not found', err);
|
|
37
34
|
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
})();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
ApplicationMetadataBooter = tslib_1.__decorate([
|
|
38
|
+
tslib_1.__param(0, core_1.inject(core_1.CoreBindings.APPLICATION_INSTANCE)),
|
|
39
|
+
tslib_1.__param(1, core_1.inject(keys_1.BootBindings.PROJECT_ROOT)),
|
|
40
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Application, String])
|
|
41
|
+
], ApplicationMetadataBooter);
|
|
46
42
|
exports.ApplicationMetadataBooter = ApplicationMetadataBooter;
|
|
47
43
|
//# sourceMappingURL=application-metadata.booter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-metadata.booter.js","sourceRoot":"","sources":["../../src/booters/application-metadata.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"application-metadata.booter.js","sourceRoot":"","sources":["../../src/booters/application-metadata.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAAiE;AACjE,0DAAgC;AAChC,kCAAqC;AAErC,6BAA8B;AAE9B,MAAM,KAAK,GAAG,eAAW,CAAC,2CAA2C,CAAC,CAAC;AAEvE;;;;;;GAMG;AACH,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IACpC,YACoD,GAAgB,EACvB,WAAmB;QADZ,QAAG,GAAH,GAAG,CAAa;QACvB,gBAAW,GAAX,WAAW,CAAQ;IAC7D,CAAC;IAEJ,KAAK,CAAC,SAAS;QACb,IAAI;YACF,gDAAgD;YAChD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC3B;QAAC,OAAO,GAAG,EAAE;YACZ,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;SACtC;IACH,CAAC;CACF,CAAA;AAfY,yBAAyB;IAEjC,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IACzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAA;6CADqB,kBAAW;GAFzD,yBAAyB,CAerC;AAfY,8DAAyB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright IBM Corp. 2018,
|
|
2
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
3
3
|
// Node module: @loopback/boot
|
|
4
4
|
// This file is licensed under the MIT License.
|
|
5
5
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -37,50 +37,47 @@ function createBooterForComponentApplication(componentApp, filter = () => true)
|
|
|
37
37
|
/**
|
|
38
38
|
* A booter to boot artifacts for the component application
|
|
39
39
|
*/
|
|
40
|
-
let ComponentApplicationBooter =
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
debug('Adding binding from %s to %s', componentApp.name, this.mainApp.name, binding);
|
|
73
|
-
this.mainApp.add(binding);
|
|
40
|
+
let ComponentApplicationBooter = class ComponentApplicationBooter {
|
|
41
|
+
constructor(mainApp) {
|
|
42
|
+
this.mainApp = mainApp;
|
|
43
|
+
}
|
|
44
|
+
async load() {
|
|
45
|
+
/**
|
|
46
|
+
* List all bindings before boot
|
|
47
|
+
*/
|
|
48
|
+
let bindings = componentApp.find(() => true);
|
|
49
|
+
const bindingsBeforeBoot = new Set(bindings);
|
|
50
|
+
// Boot the component application
|
|
51
|
+
await componentApp.boot();
|
|
52
|
+
/**
|
|
53
|
+
* Add bindings from the component application to the main application
|
|
54
|
+
*/
|
|
55
|
+
bindings = componentApp.find(filter);
|
|
56
|
+
for (const binding of bindings) {
|
|
57
|
+
// Exclude boot related bindings
|
|
58
|
+
if (exports.bindingKeysExcludedFromSubApp.includes(binding.key))
|
|
59
|
+
continue;
|
|
60
|
+
// Exclude bindings from the app before boot
|
|
61
|
+
if (bindingsBeforeBoot.has(binding)) {
|
|
62
|
+
debug('Skipping binding %s that exists before booting %s', binding.key, componentApp.name);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
// Do not override locked bindings
|
|
66
|
+
const locked = this.mainApp.find(binding.key).some(b => b.isLocked);
|
|
67
|
+
if (locked) {
|
|
68
|
+
debug('Skipping binding %s from %s - locked in %s', binding.key, componentApp.name, this.mainApp.name);
|
|
69
|
+
continue;
|
|
74
70
|
}
|
|
71
|
+
debug('Adding binding from %s to %s', componentApp.name, this.mainApp.name, binding);
|
|
72
|
+
this.mainApp.add(binding);
|
|
75
73
|
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
})();
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
ComponentApplicationBooter = tslib_1.__decorate([
|
|
77
|
+
types_1.booter('componentApplications'),
|
|
78
|
+
tslib_1.__param(0, core_1.inject(core_1.CoreBindings.APPLICATION_INSTANCE)),
|
|
79
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Application])
|
|
80
|
+
], ComponentApplicationBooter);
|
|
84
81
|
return ComponentApplicationBooter;
|
|
85
82
|
}
|
|
86
83
|
exports.createBooterForComponentApplication = createBooterForComponentApplication;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-application.booter.js","sourceRoot":"","sources":["../../src/booters/component-application.booter.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAQwB;AACxB,0DAAiC;AACjC,kCAAqC;AACrC,oCAAkD;AAElD,MAAM,KAAK,GAAG,eAAY,CAAC,4CAA4C,CAAC,CAAC;AAEzE;;;GAGG;AACU,QAAA,6BAA6B,GAAG;IAC3C,mBAAY,CAAC,YAAY,CAAC,GAAG;IAC7B,mBAAY,CAAC,YAAY,CAAC,GAAG;IAC7B,mBAAY,CAAC,gBAAgB,CAAC,GAAG;IACjC,mBAAY,CAAC,kBAAkB,CAAC,GAAG;IACnC,mBAAY,CAAC,oBAAoB,CAAC,GAAG;IACrC,mBAAY,CAAC,oBAAoB,CAAC,GAAG;IACrC,mBAAY,CAAC,4BAA4B,CAAC,GAAG;IAC7C,mBAAY,CAAC,2BAA2B,CAAC,GAAG;CAC7C,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,mCAAmC,CACjD,YAAoC,EACpC,SAAwB,GAAG,EAAE,CAAC,IAAI;IAElC;;OAEG;IAEH
|
|
1
|
+
{"version":3,"file":"component-application.booter.js","sourceRoot":"","sources":["../../src/booters/component-application.booter.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAQwB;AACxB,0DAAiC;AACjC,kCAAqC;AACrC,oCAAkD;AAElD,MAAM,KAAK,GAAG,eAAY,CAAC,4CAA4C,CAAC,CAAC;AAEzE;;;GAGG;AACU,QAAA,6BAA6B,GAAG;IAC3C,mBAAY,CAAC,YAAY,CAAC,GAAG;IAC7B,mBAAY,CAAC,YAAY,CAAC,GAAG;IAC7B,mBAAY,CAAC,gBAAgB,CAAC,GAAG;IACjC,mBAAY,CAAC,kBAAkB,CAAC,GAAG;IACnC,mBAAY,CAAC,oBAAoB,CAAC,GAAG;IACrC,mBAAY,CAAC,oBAAoB,CAAC,GAAG;IACrC,mBAAY,CAAC,4BAA4B,CAAC,GAAG;IAC7C,mBAAY,CAAC,2BAA2B,CAAC,GAAG;CAC7C,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,mCAAmC,CACjD,YAAoC,EACpC,SAAwB,GAAG,EAAE,CAAC,IAAI;IAElC;;OAEG;IAEH,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;QAC9B,YACqD,OAAoB;YAApB,YAAO,GAAP,OAAO,CAAa;QACtE,CAAC;QAEJ,KAAK,CAAC,IAAI;YACR;;eAEG;YACH,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7C,iCAAiC;YACjC,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;YAC1B;;eAEG;YACH,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,gCAAgC;gBAChC,IAAI,qCAA6B,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAElE,4CAA4C;gBAC5C,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;oBACnC,KAAK,CACH,mDAAmD,EACnD,OAAO,CAAC,GAAG,EACX,YAAY,CAAC,IAAI,CAClB,CAAC;oBACF,SAAS;iBACV;gBAED,kCAAkC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE;oBACV,KAAK,CACH,4CAA4C,EAC5C,OAAO,CAAC,GAAG,EACX,YAAY,CAAC,IAAI,EACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAClB,CAAC;oBACF,SAAS;iBACV;gBAED,KAAK,CACH,8BAA8B,EAC9B,YAAY,CAAC,IAAI,EACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,OAAO,CACR,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAkB,CAAC,CAAC;aACtC;QACH,CAAC;KACF,CAAA;IApDK,0BAA0B;QAD/B,cAAM,CAAC,uBAAuB,CAAC;QAG3B,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;iDAAkB,kBAAW;OAFrE,0BAA0B,CAoD/B;IACD,OAAO,0BAA0B,CAAC;AACpC,CAAC;AA9DD,kFA8DC;AAED;;;;;;;GAOG;AACH,SAAgB,uCAAuC,CACrD,YAAoC,EACpC,MAAsB;IAEtB,OAAO,6BAAsB,CAC3B,mCAAmC,CAAC,YAAY,EAAE,MAAM,CAAC,CAC1D,CAAC;AACJ,CAAC;AAPD,0FAOC"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.ControllerDefaults = exports.ControllerBooter = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const context_1 = require("@loopback/context");
|
|
10
9
|
const core_1 = require("@loopback/core");
|
|
11
10
|
const keys_1 = require("../keys");
|
|
12
11
|
const types_1 = require("../types");
|
|
@@ -21,35 +20,32 @@ const base_artifact_booter_1 = require("./base-artifact.booter");
|
|
|
21
20
|
* @param projectRoot - Root of User Project relative to which all paths are resolved
|
|
22
21
|
* @param bootConfig - Controller Artifact Options Object
|
|
23
22
|
*/
|
|
24
|
-
let ControllerBooter =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
], ControllerBooter);
|
|
51
|
-
return ControllerBooter;
|
|
52
|
-
})();
|
|
23
|
+
let ControllerBooter = class ControllerBooter extends base_artifact_booter_1.BaseArtifactBooter {
|
|
24
|
+
constructor(app, projectRoot, controllerConfig = {}) {
|
|
25
|
+
super(projectRoot,
|
|
26
|
+
// Set Controller Booter Options if passed in via bootConfig
|
|
27
|
+
Object.assign({}, exports.ControllerDefaults, controllerConfig));
|
|
28
|
+
this.app = app;
|
|
29
|
+
this.controllerConfig = controllerConfig;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Uses super method to get a list of Artifact classes. Boot each class by
|
|
33
|
+
* binding it to the application using `app.controller(controller);`.
|
|
34
|
+
*/
|
|
35
|
+
async load() {
|
|
36
|
+
await super.load();
|
|
37
|
+
this.classes.forEach(cls => {
|
|
38
|
+
this.app.controller(cls);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
ControllerBooter = tslib_1.__decorate([
|
|
43
|
+
types_1.booter('controllers'),
|
|
44
|
+
tslib_1.__param(0, core_1.inject(core_1.CoreBindings.APPLICATION_INSTANCE)),
|
|
45
|
+
tslib_1.__param(1, core_1.inject(keys_1.BootBindings.PROJECT_ROOT)),
|
|
46
|
+
tslib_1.__param(2, core_1.config()),
|
|
47
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Application, String, Object])
|
|
48
|
+
], ControllerBooter);
|
|
53
49
|
exports.ControllerBooter = ControllerBooter;
|
|
54
50
|
/**
|
|
55
51
|
* Default ArtifactOptions for ControllerBooter.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.booter.js","sourceRoot":"","sources":["../../src/booters/controller.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"controller.booter.js","sourceRoot":"","sources":["../../src/booters/controller.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAAyE;AACzE,kCAAqC;AACrC,oCAAiD;AACjD,iEAA0D;AAE1D;;;;;;;;;GASG;AAEH,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,yCAAkB;IACtD,YACoD,GAAgB,EAC/B,WAAmB,EAE/C,mBAAoC,EAAE;QAE7C,KAAK,CACH,WAAW;QACX,4DAA4D;QAC5D,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,0BAAkB,EAAE,gBAAgB,CAAC,CACxD,CAAC;QATgD,QAAG,GAAH,GAAG,CAAa;QAG3D,qBAAgB,GAAhB,gBAAgB,CAAsB;IAO/C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAxBY,gBAAgB;IAD5B,cAAM,CAAC,aAAa,CAAC;IAGjB,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IACzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAA;IACjC,mBAAA,aAAM,EAAE,CAAA;6CAF8C,kBAAW;GAFzD,gBAAgB,CAwB5B;AAxBY,4CAAgB;AA0B7B;;GAEG;AACU,QAAA,kBAAkB,GAAoB;IACjD,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,UAAU,EAAE,CAAC,gBAAgB,CAAC;IAC9B,MAAM,EAAE,IAAI;CACb,CAAC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Copyright IBM Corp. 2018,
|
|
2
|
+
// Copyright IBM Corp. 2018,2020. All Rights Reserved.
|
|
3
3
|
// Node module: @loopback/boot
|
|
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
7
|
exports.DataSourceDefaults = exports.DataSourceBooter = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const context_1 = require("@loopback/context");
|
|
10
9
|
const core_1 = require("@loopback/core");
|
|
11
10
|
const keys_1 = require("../keys");
|
|
12
11
|
const types_1 = require("../types");
|
|
@@ -21,48 +20,45 @@ const base_artifact_booter_1 = require("./base-artifact.booter");
|
|
|
21
20
|
* @param projectRoot - Root of User Project relative to which all paths are resolved
|
|
22
21
|
* @param bootConfig - DataSource Artifact Options Object
|
|
23
22
|
*/
|
|
24
|
-
let DataSourceBooter =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
let DataSourceBooter = class DataSourceBooter extends base_artifact_booter_1.BaseArtifactBooter {
|
|
24
|
+
constructor(app, projectRoot, datasourceConfig = {}) {
|
|
25
|
+
super(projectRoot,
|
|
26
|
+
// Set DataSource Booter Options if passed in via bootConfig
|
|
27
|
+
Object.assign({}, exports.DataSourceDefaults, datasourceConfig));
|
|
28
|
+
this.app = app;
|
|
29
|
+
this.datasourceConfig = datasourceConfig;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Uses super method to get a list of Artifact classes. Boot each file by
|
|
33
|
+
* creating a DataSourceConstructor and binding it to the application class.
|
|
34
|
+
*/
|
|
35
|
+
async load() {
|
|
36
|
+
await super.load();
|
|
33
37
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
38
|
+
* If DataSource Classes were discovered, we need to make sure RepositoryMixin
|
|
39
|
+
* was used (so we have `app.dataSource()`) to perform the binding of a
|
|
40
|
+
* DataSource Class.
|
|
36
41
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
console.warn('app.dataSource() function is needed for DataSourceBooter. You can add ' +
|
|
47
|
-
'it to your Application using RepositoryMixin from @loopback/repository.');
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this.classes.forEach(cls => {
|
|
51
|
-
this.app.dataSource(cls);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
42
|
+
if (this.classes.length > 0) {
|
|
43
|
+
if (!this.app.dataSource) {
|
|
44
|
+
console.warn('app.dataSource() function is needed for DataSourceBooter. You can add ' +
|
|
45
|
+
'it to your Application using RepositoryMixin from @loopback/repository.');
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.classes.forEach(cls => {
|
|
49
|
+
this.app.dataSource(cls);
|
|
50
|
+
});
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
})();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
DataSourceBooter = tslib_1.__decorate([
|
|
56
|
+
types_1.booter('datasources'),
|
|
57
|
+
tslib_1.__param(0, core_1.inject(core_1.CoreBindings.APPLICATION_INSTANCE)),
|
|
58
|
+
tslib_1.__param(1, core_1.inject(keys_1.BootBindings.PROJECT_ROOT)),
|
|
59
|
+
tslib_1.__param(2, core_1.config()),
|
|
60
|
+
tslib_1.__metadata("design:paramtypes", [Object, String, Object])
|
|
61
|
+
], DataSourceBooter);
|
|
66
62
|
exports.DataSourceBooter = DataSourceBooter;
|
|
67
63
|
/**
|
|
68
64
|
* Default ArtifactOptions for DataSourceBooter.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasource.booter.js","sourceRoot":"","sources":["../../src/booters/datasource.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"datasource.booter.js","sourceRoot":"","sources":["../../src/booters/datasource.booter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAA4D;AAM5D,kCAAqC;AACrC,oCAAiD;AACjD,iEAA0D;AAE1D;;;;;;;;;GASG;AAEH,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,yCAAkB;IACtD,YAES,GAAgC,EACJ,WAAmB,EAE/C,mBAAoC,EAAE;QAE7C,KAAK,CACH,WAAW;QACX,4DAA4D;QAC5D,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,0BAAkB,EAAE,gBAAgB,CAAC,CACxD,CAAC;QATK,QAAG,GAAH,GAAG,CAA6B;QAGhC,qBAAgB,GAAhB,gBAAgB,CAAsB;IAO/C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB;;;;WAIG;QACH,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;gBACxB,OAAO,CAAC,IAAI,CACV,wEAAwE;oBACtE,yEAAyE,CAC5E,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACzB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAgC,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;CACF,CAAA;AAxCY,gBAAgB;IAD5B,cAAM,CAAC,aAAa,CAAC;IAGjB,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IAEzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,YAAY,CAAC,CAAA;IACjC,mBAAA,aAAM,EAAE,CAAA;;GALA,gBAAgB,CAwC5B;AAxCY,4CAAgB;AA0C7B;;GAEG;AACU,QAAA,kBAAkB,GAAoB;IACjD,IAAI,EAAE,CAAC,aAAa,CAAC;IACrB,UAAU,EAAE,CAAC,gBAAgB,CAAC;IAC9B,MAAM,EAAE,IAAI;CACb,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Constructor, Interceptor, Provider } from '@loopback/
|
|
2
|
-
import { Application } from '@loopback/core';
|
|
1
|
+
import { Application, Constructor, Interceptor, Provider } from '@loopback/core';
|
|
3
2
|
import { ArtifactOptions } from '../types';
|
|
4
3
|
import { BaseArtifactBooter } from './base-artifact.booter';
|
|
5
4
|
declare type InterceptorProviderClass = Constructor<Provider<Interceptor>>;
|