import { interfaces } from 'inversify'; import { resolver, typeDefs } from '@git-stack/graphql-schema'; import { Feature } from '@common-stack/server-core'; import { IGitService, TYPES, gitModule } from '@git-stack/server-core'; import { gitMicroServiceModule } from '@git-stack/microservice-nats'; import { GitRepositoryModule } from '@git-stack/store-mongo'; import { TaggedType } from '@common-stack/core'; const gitServiceGen = (container: interfaces.Container) => { const environment = container.get('Environment'); if (environment === 'development') { return { gitService: container.get(TYPES.IGitService)}; } else { return { gitService: container.getNamed(TYPES.IGitService, TaggedType.MICROSERVICE) }; } }; export default new Feature({ schema: typeDefs, createResolversFunc: resolver, createServiceFunc: gitServiceGen, createContainerFunc: [gitModule, gitMicroServiceModule, GitRepositoryModule], } as any);