Просмотр исходного кода

fix: type of DebuggableService

e22m4u 3 месяцев назад
Родитель
Сommit
421fac41af
5 измененных файлов с 85 добавлено и 11 удалено
  1. 5 5
      dist/cjs/index.cjs
  2. 73 1
      src/debuggable-service.d.ts
  3. 5 5
      src/debuggable-service.js
  4. 1 0
      src/index.js
  5. 1 0
      src/types.js

+ 5 - 5
dist/cjs/index.cjs

@@ -306,7 +306,7 @@ var _DebuggableService = class _DebuggableService extends import_js_debug.Debugg
     return this._service.container;
   }
   /**
-   * Get service.
+   * Получить существующий или новый экземпляр.
    *
    * @type {Service['getService']}
    */
@@ -314,7 +314,7 @@ var _DebuggableService = class _DebuggableService extends import_js_debug.Debugg
     return this._service.getService;
   }
   /**
-   * Has service.
+   * Проверка существования конструктора в контейнере.
    *
    * @type {Service['hasService']}
    */
@@ -322,7 +322,7 @@ var _DebuggableService = class _DebuggableService extends import_js_debug.Debugg
     return this._service.hasService;
   }
   /**
-   * Add service.
+   * Добавить конструктор в контейнер.
    *
    * @type {Service['addService']}
    */
@@ -330,7 +330,7 @@ var _DebuggableService = class _DebuggableService extends import_js_debug.Debugg
     return this._service.addService;
   }
   /**
-   * Use service.
+   * Добавить конструктор и создать экземпляр.
    *
    * @type {Service['useService']}
    */
@@ -338,7 +338,7 @@ var _DebuggableService = class _DebuggableService extends import_js_debug.Debugg
     return this._service.useService;
   }
   /**
-   * Set service.
+   * Добавить конструктор и связанный экземпляр.
    *
    * @type {Service['setService']}
    */

+ 73 - 1
src/debuggable-service.d.ts

@@ -1,7 +1,79 @@
 import {Service} from './service.js';
+import {Constructor} from './types.js';
 import {Debuggable} from '@e22m4u/js-debug';
+import {ServiceContainer} from './service-container.js';
 
 /**
  * Debuggable service.
  */
-export type DebuggableService = Debuggable & Service;
+export class DebuggableService extends Debuggable implements Service {
+  /**
+   * Kind.
+   */
+  static readonly kinds: string[];
+
+  /**
+   * Container.
+   */
+  container: ServiceContainer;
+
+  /**
+   * Constructor.
+   *
+   * @param container
+   */
+  constructor(container?: ServiceContainer);
+
+  /**
+   * Получить существующий или новый экземпляр.
+   *
+   * @param ctor
+   * @param args
+   */
+  getService<T extends object>(
+    ctor: Constructor<T>,
+    ...args: any[],
+  ): T;
+
+  /**
+   * Проверка существования конструктора в контейнере.
+   *
+   * @param ctor
+   */
+  hasService<T extends object>(
+    ctor: Constructor<T>,
+  ): boolean;
+
+  /**
+   * Добавить конструктор в контейнер.
+   *
+   * @param ctor
+   * @param args
+   */
+  addService<T extends object>(
+    ctor: Constructor<T>,
+    ...args: any[],
+  ): this;
+
+  /**
+   * Добавить конструктор и создать экземпляр.
+   *
+   * @param ctor
+   * @param args
+   */
+  useService<T extends object>(
+    ctor: Constructor<T>,
+    ...args: any[],
+  ): this;
+
+  /**
+   * Добавить конструктор и связанный экземпляр.
+   *
+   * @param ctor
+   * @param service
+   */
+  setService<T extends object>(
+    ctor: Constructor<T>,
+    service: T,
+  ): this;
+}

+ 5 - 5
src/debuggable-service.js

@@ -30,7 +30,7 @@ export class DebuggableService extends Debuggable {
   }
 
   /**
-   * Get service.
+   * Получить существующий или новый экземпляр.
    *
    * @type {Service['getService']}
    */
@@ -39,7 +39,7 @@ export class DebuggableService extends Debuggable {
   }
 
   /**
-   * Has service.
+   * Проверка существования конструктора в контейнере.
    *
    * @type {Service['hasService']}
    */
@@ -48,7 +48,7 @@ export class DebuggableService extends Debuggable {
   }
 
   /**
-   * Add service.
+   * Добавить конструктор в контейнер.
    *
    * @type {Service['addService']}
    */
@@ -57,7 +57,7 @@ export class DebuggableService extends Debuggable {
   }
 
   /**
-   * Use service.
+   * Добавить конструктор и создать экземпляр.
    *
    * @type {Service['useService']}
    */
@@ -66,7 +66,7 @@ export class DebuggableService extends Debuggable {
   }
 
   /**
-   * Set service.
+   * Добавить конструктор и связанный экземпляр.
    *
    * @type {Service['setService']}
    */

+ 1 - 0
src/index.js

@@ -1,3 +1,4 @@
+export * from './types.js';
 export * from './service.js';
 export * from './service-container.js';
 export * from './debuggable-service.js';

+ 1 - 0
src/types.js

@@ -0,0 +1 @@
+export {};