debuggable-service.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import {Service} from './service.js';
  2. import {Debuggable} from '@e22m4u/js-debug';
  3. import {ServiceContainer} from './service-container.js';
  4. /**
  5. * Debuggable service.
  6. */
  7. export class DebuggableService extends Debuggable {
  8. /**
  9. * Kinds.
  10. *
  11. * @type {string[]}
  12. */
  13. static kinds = Service.kinds;
  14. /**
  15. * Service.
  16. *
  17. * @type {Service}
  18. */
  19. _service;
  20. /**
  21. * Container.
  22. *
  23. * @type {ServiceContainer}
  24. */
  25. get container() {
  26. return this._service.container;
  27. }
  28. /**
  29. * Get service.
  30. *
  31. * @type {Service['getService']}
  32. */
  33. get getService() {
  34. return this._service.getService;
  35. }
  36. /**
  37. * Has service.
  38. *
  39. * @type {Service['hasService']}
  40. */
  41. get hasService() {
  42. return this._service.hasService;
  43. }
  44. /**
  45. * Add service.
  46. *
  47. * @type {Service['addService']}
  48. */
  49. get addService() {
  50. return this._service.addService;
  51. }
  52. /**
  53. * Use service.
  54. *
  55. * @type {Service['useService']}
  56. */
  57. get useService() {
  58. return this._service.useService;
  59. }
  60. /**
  61. * Set service.
  62. *
  63. * @type {Service['setService']}
  64. */
  65. get setService() {
  66. return this._service.setService;
  67. }
  68. /**
  69. * Constructor.
  70. *
  71. * @param {ServiceContainer|undefined} container
  72. * @param {import('@e22m4u/js-debug').DebuggableOptions|undefined} options
  73. */
  74. constructor(container = undefined, options = undefined) {
  75. super(options);
  76. this._service = new Service(container);
  77. }
  78. }