import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core'; import { CommonModule } from '@angular/common'; import { HttpClientModule } from '@angular/common/http'; import { Configuration } from './configuration'; import { AccountService } from './api/account.service'; import { BasketService } from './api/basket.service'; import { BasketItemService } from './api/basketItem.service'; import { CheckoutService } from './api/checkout.service'; import { CodeClaimService } from './api/codeClaim.service'; import { EventService } from './api/event.service'; import { EventAttendeeService } from './api/eventAttendee.service'; import { EventGuestService } from './api/eventGuest.service'; import { GuestListMemberService } from './api/guestListMember.service'; import { HomeService } from './api/home.service'; import { ImageService } from './api/image.service'; import { OrderService } from './api/order.service'; import { OrganisationEventService } from './api/organisationEvent.service'; import { OrganisationReservationService } from './api/organisationReservation.service'; import { ReservationService } from './api/reservation.service'; import { ReservationAttendeeService } from './api/reservationAttendee.service'; import { TicketService } from './api/ticket.service'; import { UserEventService } from './api/userEvent.service'; import { UserGuestService } from './api/userGuest.service'; import { UserGuestListService } from './api/userGuestList.service'; import { UserPromoService } from './api/userPromo.service'; import { UserReservationService } from './api/userReservation.service'; import { ValidateService } from './api/validate.service'; @NgModule({ imports: [ CommonModule, HttpClientModule ], declarations: [], exports: [], providers: [ AccountService, BasketService, BasketItemService, CheckoutService, CodeClaimService, EventService, EventAttendeeService, EventGuestService, GuestListMemberService, HomeService, ImageService, OrderService, OrganisationEventService, OrganisationReservationService, ReservationService, ReservationAttendeeService, TicketService, UserEventService, UserGuestService, UserGuestListService, UserPromoService, UserReservationService, ValidateService ] }) export class ApiModule { public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders { return { ngModule: ApiModule, providers: [ { provide: Configuration, useFactory: configurationFactory } ] } } constructor( @Optional() @SkipSelf() parentModule: ApiModule) { if (parentModule) { throw new Error('ApiModule is already loaded. Import your base AppModule only.'); } } }