service.d.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import {Constructor} from './types.js';
  2. import {ServiceContainer} from './service-container.js';
  3. /**
  4. * Service class name.
  5. */
  6. export const SERVICE_CLASS_NAME: 'Service';
  7. /**
  8. * Service.
  9. */
  10. export declare class Service {
  11. /**
  12. * Kind.
  13. */
  14. static readonly kinds: string[];
  15. /**
  16. * Container.
  17. */
  18. container: ServiceContainer;
  19. /**
  20. * Constructor.
  21. *
  22. * @param container
  23. */
  24. constructor(container?: ServiceContainer);
  25. /**
  26. * Получить существующий или новый экземпляр.
  27. *
  28. * @param ctor
  29. * @param args
  30. */
  31. getService<T extends object>(
  32. ctor: Constructor<T>,
  33. ...args: any[],
  34. ): T;
  35. /**
  36. * Проверка существования конструктора в контейнере.
  37. *
  38. * @param ctor
  39. */
  40. hasService<T extends object>(
  41. ctor: Constructor<T>,
  42. ): boolean;
  43. /**
  44. * Добавить конструктор в контейнер.
  45. *
  46. * @param ctor
  47. * @param args
  48. */
  49. addService<T extends object>(
  50. ctor: Constructor<T>,
  51. ...args: any[],
  52. ): this;
  53. /**
  54. * Добавить конструктор и создать экземпляр.
  55. *
  56. * @param ctor
  57. * @param args
  58. */
  59. useService<T extends object>(
  60. ctor: Constructor<T>,
  61. ...args: any[],
  62. ): this;
  63. /**
  64. * Добавить конструктор и связанный экземпляр.
  65. *
  66. * @param ctor
  67. * @param service
  68. */
  69. setService<T extends object>(
  70. ctor: Constructor<T>,
  71. service: T,
  72. ): this;
  73. }