service.d.ts 1.4 KB

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