{"version":3,"sources":["../../src/MailerProviderFactory.mts"],"sourcesContent":["import { FlexibleFactory } from \"@devbro/neko-helper\";\nimport type { MailerProvider } from \"./MailerProvider.mjs\";\n\n/**\n * Factory class for creating and registering mailer providers.\n * Uses a flexible factory pattern to manage different mailer provider implementations.\n */\nexport class MailerProviderFactory {\n  /** The singleton factory instance */\n  static instance: FlexibleFactory<MailerProvider> =\n    new FlexibleFactory<MailerProvider>();\n\n  /**\n   * Registers a mailer provider factory function.\n   * @template T - The provider type\n   * @param key - Unique identifier for the provider\n   * @param factory - Factory function that creates the provider instance\n   */\n  static register<T>(\n    key: string,\n    factory: (...args: any[]) => MailerProvider,\n  ): void {\n    MailerProviderFactory.instance.register(key, factory);\n  }\n\n  /**\n   * Creates a mailer provider instance.\n   * @template T - The provider type\n   * @param key - The provider identifier\n   * @param args - Arguments to pass to the provider factory\n   * @returns A new mailer provider instance\n   */\n  static create<T>(key: string, ...args: any[]): MailerProvider {\n    return MailerProviderFactory.instance.create(key, ...args);\n  }\n}\n"],"mappings":";;AAAA,SAAS,uBAAuB;AAOzB,MAAM,sBAAsB;AAAA,EAPnC,OAOmC;AAAA;AAAA;AAAA;AAAA,EAEjC,OAAO,WACL,IAAI,gBAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQtC,OAAO,SACL,KACA,SACM;AACN,0BAAsB,SAAS,SAAS,KAAK,OAAO;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAO,OAAU,QAAgB,MAA6B;AAC5D,WAAO,sBAAsB,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,EAC3D;AACF;","names":[]}