import {Configuration, Inject, registerProvider} from "@tsed/di";

/**
 * Inject {{symbolName}} to the service, controller, etc...
 *
 * ## Usage
 *
 * ```typescript
 * import {Injectable} from "@tsed/di";
 * import {{{symbolName}}} from "./{{symbolName}}";
 *
 * @Injectable()
 * class MyService {
 *   @{{symbolName}}()
 *   private factory: {{symbolName}};
 *
 *   // or
 *   constructor(@{{symbolName}}() private factory: {{symbolName}}){}
 * }
 *
 * @decorator
 */
export function {{symbolName}}() {
  return Inject({{symbolName}});
}

export type {{symbolName}} = any; // implement type or interface for type checking

registerProvider({
  provide: {{symbolName}},
  deps: [Configuration],
  async useAsyncFactory(settings: Configuration) {
    return {};
  }
});
