service-container.d.ts 1.2 KB

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