@loopback/core 2.7.1 → 2.9.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 CHANGED
@@ -3,6 +3,49 @@
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
+ ## [2.9.2](https://github.com/strongloop/loopback-next/compare/@loopback/core@2.9.1...@loopback/core@2.9.2) (2020-07-20)
7
+
8
+ **Note:** Version bump only for package @loopback/core
9
+
10
+
11
+
12
+
13
+
14
+ ## [2.9.1](https://github.com/strongloop/loopback-next/compare/@loopback/core@2.9.0...@loopback/core@2.9.1) (2020-06-30)
15
+
16
+ **Note:** Version bump only for package @loopback/core
17
+
18
+
19
+
20
+
21
+
22
+ # [2.9.0](https://github.com/strongloop/loopback-next/compare/@loopback/core@2.8.0...@loopback/core@2.9.0) (2020-06-23)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * set node version to >=10.16 to support events.once ([e39da1c](https://github.com/strongloop/loopback-next/commit/e39da1ca47728eafaf83c10ce35b09b03b6a4edc))
28
+
29
+
30
+ ### Features
31
+
32
+ * **core:** enable application config with configure/getConfig/[@config](https://github.com/config) ([3a74ee1](https://github.com/strongloop/loopback-next/commit/3a74ee180633754ecd369b07454a104e731129f1))
33
+
34
+
35
+
36
+
37
+
38
+ # [2.8.0](https://github.com/strongloop/loopback-next/compare/@loopback/core@2.7.1...@loopback/core@2.8.0) (2020-06-11)
39
+
40
+
41
+ ### Features
42
+
43
+ * **core:** add services to component artifacts ([5545345](https://github.com/strongloop/loopback-next/commit/5545345a7a1a51333d518d5a5cb8580d74ff2492))
44
+
45
+
46
+
47
+
48
+
6
49
  ## [2.7.1](https://github.com/strongloop/loopback-next/compare/@loopback/core@2.7.0...@loopback/core@2.7.1) (2020-05-28)
7
50
 
8
51
  **Note:** Version bump only for package @loopback/core
@@ -236,7 +236,7 @@ export declare class Application extends Context implements LifeCycleObserver {
236
236
  * }
237
237
  * ```
238
238
  */
239
- service<S>(cls: Constructor<S | Provider<S>>, nameOrOptions?: string | ServiceOptions): Binding<S>;
239
+ service<S>(cls: ServiceOrProviderClass<S>, nameOrOptions?: string | ServiceOptions): Binding<S>;
240
240
  /**
241
241
  * Register an interceptor
242
242
  * @param interceptor - An interceptor function or provider class
@@ -282,6 +282,7 @@ export interface ApplicationConfig {
282
282
  [prop: string]: any;
283
283
  }
284
284
  export declare type ControllerClass<T = any> = Constructor<T>;
285
+ export declare type ServiceOrProviderClass<T = any> = Constructor<T | Provider<T>>;
285
286
  /**
286
287
  * Type description for `package.json`
287
288
  */
@@ -65,6 +65,8 @@ class Application extends context_1.Context {
65
65
  this.bind(keys_1.CoreBindings.APPLICATION_INSTANCE).to(this);
66
66
  // Make options available to other modules as well.
67
67
  this.bind(keys_1.CoreBindings.APPLICATION_CONFIG).to(this.options);
68
+ // Also configure the application instance to allow `@config`
69
+ this.configure(keys_1.CoreBindings.APPLICATION_INSTANCE).toAlias(keys_1.CoreBindings.APPLICATION_CONFIG);
68
70
  this._shutdownOptions = { signals: ['SIGTERM'], ...this.options.shutdown };
69
71
  }
70
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+CAY2B;AAC3B,4DAA4B;AAC5B,0DAAiC;AACjC,mCAA4B;AAC5B,2CAAsD;AACtD,iCAA8C;AAC9C,2CAIqB;AACrB,6DAA+D;AAE/D,uCAA+D;AAC/D,MAAM,KAAK,GAAG,eAAY,CAAC,2BAA2B,CAAC,CAAC;AACxD,MAAM,aAAa,GAAG,eAAY,CAAC,oCAAoC,CAAC,CAAC;AACzE,MAAM,YAAY,GAAG,eAAY,CAAC,mCAAmC,CAAC,CAAC;AAEvE;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,cAA4C,EAC5C,MAAgB;IAEhB,IAAI,IAAwB,CAAC;IAC7B,IAAI,SAA8B,CAAC;IAEnC,IAAI,cAAc,YAAY,iBAAO,EAAE;QACrC,SAAS,GAAG,cAAc,CAAC;QAC3B,IAAI,GAAG,SAAS,CAAC;KAClB;SAAM;QACL,SAAS,GAAG,MAAM,CAAC;QACnB,IAAI,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC;KAC7B;IACD,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAa,WAAY,SAAQ,iBAAO;IAkDtC,YAAY,cAA4C,EAAE,MAAgB;QACxE,sDAAsD;QACtD,KAAK,CAAC,GAAG,oBAAoB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAjDzD;;WAEG;QACK,oBAAe,GAAG,KAAK,CAAC;QAIhC;;WAEG;QACK,WAAM,GAAG,SAAS,CAAC;QAyCzB,IAAI,CAAC,OAAO;YACV,cAAc,YAAY,iBAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC;QAEhE,kBAAkB;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,mBAAY,CAAC,4BAA4B,CAAC;aACjD,OAAO,CAAC,8CAAyB,CAAC;aAClC,OAAO,CAAC,sBAAY,CAAC,SAAS,CAAC,CAAC;QACnC,2EAA2E;QAC3E,IAAI,CAAC,IAAI,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACtD,mDAAmD;QACnD,IAAI,CAAC,IAAI,CAAC,mBAAY,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5D,6DAA6D;QAC7D,IAAI,CAAC,SAAS,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAC,OAAO,CACvD,mBAAY,CAAC,kBAAkB,CAChC,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,EAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC,CAAC;IAC3E,CAAC;IA5DD;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAyCD;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CACR,cAAkC,EAClC,aAAgD;QAEhD,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,gCAAsB,CAAC,cAAc,EAAE;YACrD,SAAS,EAAE,mBAAY,CAAC,WAAW;YACnC,IAAI,EAAE,eAAQ,CAAC,UAAU;YACzB,YAAY,EAAE,sBAAY,CAAC,SAAS;YACpC,GAAG,SAAS,CAAC,aAAa,CAAC;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,MAAM,CACX,IAAoB,EACpB,aAAgD;QAEhD,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,gCAAsB,CAAC,IAAI,EAAE;YAC3C,SAAS,EAAE,mBAAY,CAAC,OAAO;YAC/B,IAAI,EAAE,eAAQ,CAAC,MAAM;YACrB,YAAY,EAAE,sBAAY,CAAC,SAAS;YACpC,GAAG,SAAS,CAAC,aAAa,CAAC;SAC5B,CAAC,CAAC,KAAK,CAAC,+BAAmB,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,OAAO,CAAmB,KAAuB;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,SAAS,CACpB,MAA+B;QAE/B,IAAI,GAAW,CAAC;QAChB,4CAA4C;QAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,GAAG,GAAG,GAAG,mBAAY,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC;SAC3C;aAAM;YACL,MAAM,IAAI,GAAG,MAAwB,CAAC;YACtC,GAAG,GAAG,GAAG,mBAAY,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;SAC9C;QACD,OAAO,IAAI,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACO,kBAAkB,CAAC,EAAU;QACrC,gBAAM,CACJ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC5B,UAAU,EAAE,6BAA6B,IAAI,CAAC,MAAM,GAAG,CACxD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,cAAc,CAAC,EAAU,EAAE,GAAG,MAAgB;QACtD,gBAAM,CACJ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,UAAU,EAAE,6BAA6B,IAAI,CAAC,MAAM,sBAAsB,MAAM,GAAG,CACpF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,QAAQ,CAAC,KAAa;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;IACH,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,KAAa;QACtC,MAAM,aAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjC,wBAAwB;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACtC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC3D,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAChC,mCAAmC;QACnC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACtC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,kEAAkE;YAClE,uCAAuC;YACvC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC3D,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,4BAA4B;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAY,CAAC,4BAA4B,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,SAAS,CACd,aAA6B,EAC7B,aAAgD;QAEhD,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,aAAa,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,gCAAsB,CAAC,aAAa,EAAE;YACpD,SAAS,EAAE,mBAAY,CAAC,UAAU;YAClC,IAAI,EAAE,eAAQ,CAAC,SAAS;YACxB,YAAY,EAAE,sBAAY,CAAC,SAAS;YACpC,GAAG,SAAS,CAAC,aAAa,CAAC;SAC5B,CAAC,CAAC;QACH,IAAI,oCAAwB,CAAC,aAAa,CAAC,EAAE;YAC3C,OAAO,CAAC,KAAK,CAAC,+BAAmB,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAY,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,0BAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,QAA6B;QAC9C,IAAI,CAAC,IAAI,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CACtB,IAAoB,EACpB,aAAgD;QAEhD,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,gCAAsB,CAAC,IAAI,EAAE;YAC3C,SAAS,EAAE,mBAAY,CAAC,oBAAoB;YAC5C,IAAI,EAAE,eAAQ,CAAC,mBAAmB;YAClC,YAAY,EAAE,sBAAY,CAAC,SAAS;YACpC,GAAG,SAAS,CAAC,aAAa,CAAC;SAC5B,CAAC,CAAC,KAAK,CAAC,+BAAmB,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACI,OAAO,CACZ,GAA8B,EAC9B,aAAuC;QAEvC,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,8BAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,WAAW,CAChB,WAA6D,EAC7D,aAAkD;QAElD,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QACzC,OAAO,6BAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACO,aAAa;QACrB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;YAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,eAAe,CAAC;SAC7B;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC,CAAC;YACF,aAAa,CACX,wCAAwC,EACxC,IAAI,CAAC,IAAI,EACT,MAAM,EACN,OAAO,CAAC,GAAG,CACZ,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,IAAI,KAAK,CAAC;gBACV,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;oBAC1D,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;iBACvC;gBACD,IAAI;oBACF,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;iBACnB;wBAAS;oBACR,IAAI,KAAK,IAAI,IAAI;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;oBACvC,IAAI,EAAE,CAAC;iBACR;aACF;QACH,CAAC,CAAC;QACF,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEO,sBAAsB;QAC5B,MAAM,EAAC,OAAO,GAAG,EAAE,EAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7C,aAAa,CACX,qDAAqD,EACrD,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,GAAG,EACX,OAAO,CACR,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBAC3D,IAAI,YAAY,CAAC,OAAO,EAAE;oBACxB,YAAY,CACV,8CAA8C,EAC9C,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAC1B,GAAG,EACH,OAAO,CAAC,GAAG,EACX,IAAI,KAAK,CAAC,6BAA6B,CAAC,CACzC,CAAC;iBACH;aACF;YACD,kEAAkE;YAClE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI;YAAE,OAAO;QACzC,MAAM,EAAC,OAAO,GAAG,EAAE,EAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7C,aAAa,CACX,kDAAkD,EAClD,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,GAAG,EACX,OAAO,CACR,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,kEAAkE;QAClE,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,CAClD,CAAC;IACJ,CAAC;CACF;AAhfD,kCAgfC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,aAAgD;IACjE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;QACrC,OAAO,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC;KAC9B;IACD,OAAO,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC;AAC7B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Binding, BoundValue, Constructor, Provider } from '@loopback/context';
2
- import { Application, ControllerClass } from './application';
2
+ import { Application, ControllerClass, ServiceOrProviderClass } from './application';
3
3
  import { LifeCycleObserver } from './lifecycle';
4
4
  import { Server } from './server';
5
5
  /**
@@ -52,6 +52,10 @@ export interface Component {
52
52
  [name: string]: Constructor<Server>;
53
53
  };
54
54
  lifeCycleObservers?: Constructor<LifeCycleObserver>[];
55
+ /**
56
+ * An array of service or provider classes
57
+ */
58
+ services?: ServiceOrProviderClass[];
55
59
  /**
56
60
  * An array of bindings to be aded to the application context.
57
61
  *
package/dist/component.js CHANGED
@@ -49,6 +49,11 @@ function mountComponent(app, component) {
49
49
  app.lifeCycleObserver(observer);
50
50
  }
51
51
  }
52
+ if (component.services) {
53
+ for (const service of component.services) {
54
+ app.service(service);
55
+ }
56
+ }
52
57
  }
53
58
  exports.mountComponent = mountComponent;
54
59
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,+CAM2B;AAgF3B;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,GAAgB,EAAE,SAAoB;IACnE,IAAI,SAAS,CAAC,OAAO,EAAE;QACrB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;YACxC,MAAM,OAAO,GAAG,gCAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAClE,GAAG,EAAE,QAAQ;aACd,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAClB;KACF;IAED,IAAI,SAAS,CAAC,SAAS,EAAE;QACvB,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,SAAS,EAAE;YAC7C,MAAM,OAAO,GAAG,gCAAsB,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gBACvE,GAAG,EAAE,WAAW;aACjB,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAClB;KACF;IAED,IAAI,SAAS,CAAC,QAAQ,EAAE;QACtB,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE;YACxC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAClB;KACF;IAED,IAAI,SAAS,CAAC,WAAW,EAAE;QACzB,KAAK,MAAM,cAAc,IAAI,SAAS,CAAC,WAAW,EAAE;YAClD,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;SAChC;KACF;IAED,IAAI,SAAS,CAAC,OAAO,EAAE;QACrB,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;YACzC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;SACrD;KACF;IAED,IAAI,SAAS,CAAC,kBAAkB,EAAE;QAChC,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,kBAAkB,EAAE;YACnD,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACjC;KACF;AACH,CAAC;AA1CD,wCA0CC"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,+CAM2B;AAyF3B;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,GAAgB,EAAE,SAAoB;IACnE,IAAI,SAAS,CAAC,OAAO,EAAE;QACrB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;YACxC,MAAM,OAAO,GAAG,gCAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAClE,GAAG,EAAE,QAAQ;aACd,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAClB;KACF;IAED,IAAI,SAAS,CAAC,SAAS,EAAE;QACvB,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,SAAS,EAAE;YAC7C,MAAM,OAAO,GAAG,gCAAsB,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gBACvE,GAAG,EAAE,WAAW;aACjB,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAClB;KACF;IAED,IAAI,SAAS,CAAC,QAAQ,EAAE;QACtB,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE;YACxC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAClB;KACF;IAED,IAAI,SAAS,CAAC,WAAW,EAAE;QACzB,KAAK,MAAM,cAAc,IAAI,SAAS,CAAC,WAAW,EAAE;YAClD,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;SAChC;KACF;IAED,IAAI,SAAS,CAAC,OAAO,EAAE;QACrB,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;YACzC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;SACrD;KACF;IAED,IAAI,SAAS,CAAC,kBAAkB,EAAE;QAChC,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,kBAAkB,EAAE;YACnD,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SACjC;KACF;IAED,IAAI,SAAS,CAAC,QAAQ,EAAE;QACtB,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE;YACxC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACtB;KACF;AACH,CAAC;AAhDD,wCAgDC"}
@@ -15,157 +15,154 @@ exports.DEFAULT_ORDERED_GROUPS = ['server'];
15
15
  /**
16
16
  * A context-based registry for life cycle observers
17
17
  */
18
- let LifeCycleObserverRegistry = /** @class */ (() => {
19
- let LifeCycleObserverRegistry = class LifeCycleObserverRegistry {
20
- constructor(observersView, options = {
21
- parallel: true,
22
- orderedGroups: exports.DEFAULT_ORDERED_GROUPS,
23
- }) {
24
- this.observersView = observersView;
25
- this.options = options;
18
+ let LifeCycleObserverRegistry = class LifeCycleObserverRegistry {
19
+ constructor(observersView, options = {
20
+ parallel: true,
21
+ orderedGroups: exports.DEFAULT_ORDERED_GROUPS,
22
+ }) {
23
+ this.observersView = observersView;
24
+ this.options = options;
25
+ }
26
+ setOrderedGroups(groups) {
27
+ this.options.orderedGroups = groups;
28
+ }
29
+ /**
30
+ * Get observer groups ordered by the group
31
+ */
32
+ getObserverGroupsByOrder() {
33
+ const bindings = this.observersView.bindings;
34
+ const groups = this.sortObserverBindingsByGroup(bindings);
35
+ if (debug.enabled) {
36
+ debug('Observer groups: %j', groups.map(g => ({
37
+ group: g.group,
38
+ bindings: g.bindings.map(b => b.key),
39
+ })));
26
40
  }
27
- setOrderedGroups(groups) {
28
- this.options.orderedGroups = groups;
41
+ return groups;
42
+ }
43
+ /**
44
+ * Get the group for a given life cycle observer binding
45
+ * @param binding - Life cycle observer binding
46
+ */
47
+ getObserverGroup(binding) {
48
+ // First check if there is an explicit group name in the tag
49
+ let group = binding.tagMap[keys_1.CoreTags.LIFE_CYCLE_OBSERVER_GROUP];
50
+ if (!group) {
51
+ // Fall back to a tag that matches one of the groups
52
+ group = this.options.orderedGroups.find(g => binding.tagMap[g] === g);
29
53
  }
30
- /**
31
- * Get observer groups ordered by the group
32
- */
33
- getObserverGroupsByOrder() {
34
- const bindings = this.observersView.bindings;
35
- const groups = this.sortObserverBindingsByGroup(bindings);
36
- if (debug.enabled) {
37
- debug('Observer groups: %j', groups.map(g => ({
38
- group: g.group,
39
- bindings: g.bindings.map(b => b.key),
40
- })));
54
+ group = group || '';
55
+ debug('Binding %s is configured with observer group %s', binding.key, group);
56
+ return group;
57
+ }
58
+ /**
59
+ * Sort the life cycle observer bindings so that we can start/stop them
60
+ * in the right order. By default, we can start other observers before servers
61
+ * and stop them in the reverse order
62
+ * @param bindings - Life cycle observer bindings
63
+ */
64
+ sortObserverBindingsByGroup(bindings) {
65
+ // Group bindings in a map
66
+ const groupMap = new Map();
67
+ context_1.sortBindingsByPhase(bindings, keys_1.CoreTags.LIFE_CYCLE_OBSERVER_GROUP, this.options.orderedGroups);
68
+ for (const binding of bindings) {
69
+ const group = this.getObserverGroup(binding);
70
+ let bindingsInGroup = groupMap.get(group);
71
+ if (bindingsInGroup == null) {
72
+ bindingsInGroup = [];
73
+ groupMap.set(group, bindingsInGroup);
41
74
  }
42
- return groups;
75
+ bindingsInGroup.push(binding);
43
76
  }
44
- /**
45
- * Get the group for a given life cycle observer binding
46
- * @param binding - Life cycle observer binding
47
- */
48
- getObserverGroup(binding) {
49
- // First check if there is an explicit group name in the tag
50
- let group = binding.tagMap[keys_1.CoreTags.LIFE_CYCLE_OBSERVER_GROUP];
51
- if (!group) {
52
- // Fall back to a tag that matches one of the groups
53
- group = this.options.orderedGroups.find(g => binding.tagMap[g] === g);
54
- }
55
- group = group || '';
56
- debug('Binding %s is configured with observer group %s', binding.key, group);
57
- return group;
77
+ // Create an array for group entries
78
+ const groups = [];
79
+ for (const [group, bindingsInGroup] of groupMap) {
80
+ groups.push({ group, bindings: bindingsInGroup });
58
81
  }
59
- /**
60
- * Sort the life cycle observer bindings so that we can start/stop them
61
- * in the right order. By default, we can start other observers before servers
62
- * and stop them in the reverse order
63
- * @param bindings - Life cycle observer bindings
64
- */
65
- sortObserverBindingsByGroup(bindings) {
66
- // Group bindings in a map
67
- const groupMap = new Map();
68
- context_1.sortBindingsByPhase(bindings, keys_1.CoreTags.LIFE_CYCLE_OBSERVER_GROUP, this.options.orderedGroups);
69
- for (const binding of bindings) {
70
- const group = this.getObserverGroup(binding);
71
- let bindingsInGroup = groupMap.get(group);
72
- if (bindingsInGroup == null) {
73
- bindingsInGroup = [];
74
- groupMap.set(group, bindingsInGroup);
75
- }
76
- bindingsInGroup.push(binding);
77
- }
78
- // Create an array for group entries
79
- const groups = [];
80
- for (const [group, bindingsInGroup] of groupMap) {
81
- groups.push({ group, bindings: bindingsInGroup });
82
+ return groups;
83
+ }
84
+ /**
85
+ * Notify an observer group of the given event
86
+ * @param group - A group of bindings for life cycle observers
87
+ * @param event - Event name
88
+ */
89
+ async notifyObservers(observers, bindings, event) {
90
+ if (!this.options.parallel) {
91
+ let index = 0;
92
+ for (const observer of observers) {
93
+ debug('Invoking %s observer for binding %s', event, bindings[index].key);
94
+ index++;
95
+ await this.invokeObserver(observer, event);
82
96
  }
83
- return groups;
97
+ return;
84
98
  }
85
- /**
86
- * Notify an observer group of the given event
87
- * @param group - A group of bindings for life cycle observers
88
- * @param event - Event name
89
- */
90
- async notifyObservers(observers, bindings, event) {
91
- if (!this.options.parallel) {
92
- let index = 0;
93
- for (const observer of observers) {
94
- debug('Invoking %s observer for binding %s', event, bindings[index].key);
95
- index++;
96
- await this.invokeObserver(observer, event);
97
- }
98
- return;
99
- }
100
- // Parallel invocation
101
- const notifiers = observers.map((observer, index) => {
102
- debug('Invoking %s observer for binding %s', event, bindings[index].key);
103
- return this.invokeObserver(observer, event);
104
- });
105
- await Promise.all(notifiers);
99
+ // Parallel invocation
100
+ const notifiers = observers.map((observer, index) => {
101
+ debug('Invoking %s observer for binding %s', event, bindings[index].key);
102
+ return this.invokeObserver(observer, event);
103
+ });
104
+ await Promise.all(notifiers);
105
+ }
106
+ /**
107
+ * Invoke an observer for the given event
108
+ * @param observer - A life cycle observer
109
+ * @param event - Event name
110
+ */
111
+ async invokeObserver(observer, event) {
112
+ if (typeof observer[event] === 'function') {
113
+ await observer[event]();
106
114
  }
107
- /**
108
- * Invoke an observer for the given event
109
- * @param observer - A life cycle observer
110
- * @param event - Event name
111
- */
112
- async invokeObserver(observer, event) {
113
- if (typeof observer[event] === 'function') {
114
- await observer[event]();
115
- }
115
+ }
116
+ /**
117
+ * Emit events to the observer groups
118
+ * @param events - Event names
119
+ * @param groups - Observer groups
120
+ */
121
+ async notifyGroups(events, groups, reverse = false) {
122
+ const observers = await this.observersView.values();
123
+ const bindings = this.observersView.bindings;
124
+ if (reverse) {
125
+ // Do not reverse the original `groups` in place
126
+ groups = [...groups].reverse();
116
127
  }
117
- /**
118
- * Emit events to the observer groups
119
- * @param events - Event names
120
- * @param groups - Observer groups
121
- */
122
- async notifyGroups(events, groups, reverse = false) {
123
- const observers = await this.observersView.values();
124
- const bindings = this.observersView.bindings;
125
- if (reverse) {
126
- // Do not reverse the original `groups` in place
127
- groups = [...groups].reverse();
128
+ for (const group of groups) {
129
+ const observersForGroup = [];
130
+ const bindingsInGroup = reverse
131
+ ? group.bindings.reverse()
132
+ : group.bindings;
133
+ for (const binding of bindingsInGroup) {
134
+ const index = bindings.indexOf(binding);
135
+ observersForGroup.push(observers[index]);
128
136
  }
129
- for (const group of groups) {
130
- const observersForGroup = [];
131
- const bindingsInGroup = reverse
132
- ? group.bindings.reverse()
133
- : group.bindings;
134
- for (const binding of bindingsInGroup) {
135
- const index = bindings.indexOf(binding);
136
- observersForGroup.push(observers[index]);
137
- }
138
- for (const event of events) {
139
- debug('Beginning notification %s of %s...', event);
140
- await this.notifyObservers(observersForGroup, group.bindings, event);
141
- debug('Finished notification %s of %s', event);
142
- }
137
+ for (const event of events) {
138
+ debug('Beginning notification %s of %s...', event);
139
+ await this.notifyObservers(observersForGroup, group.bindings, event);
140
+ debug('Finished notification %s of %s', event);
143
141
  }
144
142
  }
145
- /**
146
- * Notify all life cycle observers by group of `start`
147
- */
148
- async start() {
149
- debug('Starting the %s...');
150
- const groups = this.getObserverGroupsByOrder();
151
- await this.notifyGroups(['start'], groups);
152
- }
153
- /**
154
- * Notify all life cycle observers by group of `stop`
155
- */
156
- async stop() {
157
- debug('Stopping the %s...');
158
- const groups = this.getObserverGroupsByOrder();
159
- // Stop in the reverse order
160
- await this.notifyGroups(['stop'], groups, true);
161
- }
162
- };
163
- LifeCycleObserverRegistry = tslib_1.__decorate([
164
- tslib_1.__param(0, context_1.inject.view(lifecycle_1.lifeCycleObserverFilter)),
165
- tslib_1.__param(1, context_1.inject(keys_1.CoreBindings.LIFE_CYCLE_OBSERVER_OPTIONS, { optional: true })),
166
- tslib_1.__metadata("design:paramtypes", [context_1.ContextView, Object])
167
- ], LifeCycleObserverRegistry);
168
- return LifeCycleObserverRegistry;
169
- })();
143
+ }
144
+ /**
145
+ * Notify all life cycle observers by group of `start`
146
+ */
147
+ async start() {
148
+ debug('Starting the %s...');
149
+ const groups = this.getObserverGroupsByOrder();
150
+ await this.notifyGroups(['start'], groups);
151
+ }
152
+ /**
153
+ * Notify all life cycle observers by group of `stop`
154
+ */
155
+ async stop() {
156
+ debug('Stopping the %s...');
157
+ const groups = this.getObserverGroupsByOrder();
158
+ // Stop in the reverse order
159
+ await this.notifyGroups(['stop'], groups, true);
160
+ }
161
+ };
162
+ LifeCycleObserverRegistry = tslib_1.__decorate([
163
+ tslib_1.__param(0, context_1.inject.view(lifecycle_1.lifeCycleObserverFilter)),
164
+ tslib_1.__param(1, context_1.inject(keys_1.CoreBindings.LIFE_CYCLE_OBSERVER_OPTIONS, { optional: true })),
165
+ tslib_1.__metadata("design:paramtypes", [context_1.ContextView, Object])
166
+ ], LifeCycleObserverRegistry);
170
167
  exports.LifeCycleObserverRegistry = LifeCycleObserverRegistry;
171
168
  //# sourceMappingURL=lifecycle-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-registry.js","sourceRoot":"","sources":["../src/lifecycle-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-registry.js","sourceRoot":"","sources":["../src/lifecycle-registry.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { Constructor } from '@loopback/context';
20
20
  * the base class. You can use the following approach as a workaround:
21
21
  *
22
22
  * ```ts
23
+ * // eslint-disable-next-line @typescript-eslint/ban-ts-comment
23
24
  * // @ts-ignore
24
25
  * (this as unknown as {YourBaseClass}).protectedMember
25
26
  * ```
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@loopback/core",
3
- "version": "2.7.1",
4
- "description": "LoopBack 4 core",
3
+ "version": "2.9.2",
4
+ "description": "Define and implement core constructs such as Application and Component",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "engines": {
8
- "node": ">=10"
8
+ "node": ">=10.16"
9
9
  },
10
10
  "scripts": {
11
11
  "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"",
@@ -20,17 +20,20 @@
20
20
  "author": "IBM Corp.",
21
21
  "copyright.owner": "IBM Corp.",
22
22
  "license": "MIT",
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
23
26
  "dependencies": {
24
- "@loopback/context": "^3.8.2",
27
+ "@loopback/context": "^3.9.3",
25
28
  "debug": "^4.1.1",
26
29
  "tslib": "^2.0.0"
27
30
  },
28
31
  "devDependencies": {
29
- "@loopback/build": "^5.4.2",
30
- "@loopback/eslint-config": "^8.0.0",
31
- "@loopback/testlab": "^3.1.6",
32
+ "@loopback/build": "^6.1.1",
33
+ "@loopback/eslint-config": "^8.0.4",
34
+ "@loopback/testlab": "^3.2.1",
32
35
  "@types/debug": "^4.1.5",
33
- "@types/node": "^10.17.24"
36
+ "@types/node": "^10.17.27"
34
37
  },
35
38
  "files": [
36
39
  "README.md",
@@ -43,5 +46,5 @@
43
46
  "url": "https://github.com/strongloop/loopback-next.git",
44
47
  "directory": "packages/core"
45
48
  },
46
- "gitHead": "64afb3616e94b96703524aba8be722efefa7c2c5"
49
+ "gitHead": "5538896411bb56467ae52670a29d1aec1690be74"
47
50
  }
@@ -129,6 +129,11 @@ export class Application extends Context implements LifeCycleObserver {
129
129
  // Make options available to other modules as well.
130
130
  this.bind(CoreBindings.APPLICATION_CONFIG).to(this.options);
131
131
 
132
+ // Also configure the application instance to allow `@config`
133
+ this.configure(CoreBindings.APPLICATION_INSTANCE).toAlias(
134
+ CoreBindings.APPLICATION_CONFIG,
135
+ );
136
+
132
137
  this._shutdownOptions = {signals: ['SIGTERM'], ...this.options.shutdown};
133
138
  }
134
139
 
@@ -451,7 +456,7 @@ export class Application extends Context implements LifeCycleObserver {
451
456
  * ```
452
457
  */
453
458
  public service<S>(
454
- cls: Constructor<S | Provider<S>>,
459
+ cls: ServiceOrProviderClass<S>,
455
460
  nameOrOptions?: string | ServiceOptions,
456
461
  ): Binding<S> {
457
462
  const options = toOptions(nameOrOptions);
@@ -602,6 +607,9 @@ export interface ApplicationConfig {
602
607
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
603
608
  export type ControllerClass<T = any> = Constructor<T>;
604
609
 
610
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
611
+ export type ServiceOrProviderClass<T = any> = Constructor<T | Provider<T>>;
612
+
605
613
  /**
606
614
  * Type description for `package.json`
607
615
  */
package/src/component.ts CHANGED
@@ -10,7 +10,11 @@ import {
10
10
  createBindingFromClass,
11
11
  Provider,
12
12
  } from '@loopback/context';
13
- import {Application, ControllerClass} from './application';
13
+ import {
14
+ Application,
15
+ ControllerClass,
16
+ ServiceOrProviderClass,
17
+ } from './application';
14
18
  import {LifeCycleObserver} from './lifecycle';
15
19
  import {Server} from './server';
16
20
 
@@ -71,6 +75,11 @@ export interface Component {
71
75
 
72
76
  lifeCycleObservers?: Constructor<LifeCycleObserver>[];
73
77
 
78
+ /**
79
+ * An array of service or provider classes
80
+ */
81
+ services?: ServiceOrProviderClass[];
82
+
74
83
  /**
75
84
  * An array of bindings to be aded to the application context.
76
85
  *
@@ -137,4 +146,10 @@ export function mountComponent(app: Application, component: Component) {
137
146
  app.lifeCycleObserver(observer);
138
147
  }
139
148
  }
149
+
150
+ if (component.services) {
151
+ for (const service of component.services) {
152
+ app.service(service);
153
+ }
154
+ }
140
155
  }
@@ -26,6 +26,7 @@ import {Constructor} from '@loopback/context';
26
26
  * the base class. You can use the following approach as a workaround:
27
27
  *
28
28
  * ```ts
29
+ * // eslint-disable-next-line @typescript-eslint/ban-ts-comment
29
30
  * // @ts-ignore
30
31
  * (this as unknown as {YourBaseClass}).protectedMember
31
32
  * ```