apollo-angular
Version:
Use your GraphQL data in your Angular app, with the Apollo Client
91 lines • 11.2 kB
JavaScript
import { ApolloModule } from 'apollo-angular';
import { Inject, InjectionToken, NgModule, Optional } from '@angular/core';
import { ApolloLink, InMemoryCache, } from '@apollo/client/core';
import { ApolloTestingBackend } from './backend';
import { ApolloTestingController } from './controller';
import * as i0 from "@angular/core";
import * as i1 from "apollo-angular";
import * as i2 from "./backend";
import * as i3 from "@apollo/client/core";
export const APOLLO_TESTING_CACHE = new InjectionToken('apollo-angular/testing cache');
export const APOLLO_TESTING_NAMED_CACHE = new InjectionToken('apollo-angular/testing named cache');
export const APOLLO_TESTING_CLIENTS = new InjectionToken('apollo-angular/testing named clients');
function addClient(name, op) {
op.clientName = name;
return op;
}
export class ApolloTestingModuleCore {
constructor(apollo, backend, namedClients, cache, namedCaches) {
function createOptions(name, c) {
return {
connectToDevTools: false,
link: new ApolloLink(operation => backend.handle(addClient(name, operation))),
cache: c ||
new InMemoryCache({
addTypename: false,
}),
};
}
apollo.create(createOptions('default', cache));
if (namedClients && namedClients.length) {
namedClients.forEach(name => {
const caches = namedCaches && typeof namedCaches === 'object' ? namedCaches : {};
apollo.createNamed(name, createOptions(name, caches[name]));
});
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ApolloTestingModuleCore, deps: [{ token: i1.Apollo }, { token: i2.ApolloTestingBackend }, { token: APOLLO_TESTING_CLIENTS, optional: true }, { token: APOLLO_TESTING_CACHE, optional: true }, { token: APOLLO_TESTING_NAMED_CACHE, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: ApolloTestingModuleCore, imports: [ApolloModule] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ApolloTestingModuleCore, providers: [
ApolloTestingBackend,
{ provide: ApolloTestingController, useExisting: ApolloTestingBackend },
], imports: [ApolloModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ApolloTestingModuleCore, decorators: [{
type: NgModule,
args: [{
imports: [ApolloModule],
providers: [
ApolloTestingBackend,
{ provide: ApolloTestingController, useExisting: ApolloTestingBackend },
],
}]
}], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.ApolloTestingBackend }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [APOLLO_TESTING_CLIENTS]
}] }, { type: i3.ApolloCache, decorators: [{
type: Optional
}, {
type: Inject,
args: [APOLLO_TESTING_CACHE]
}] }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [APOLLO_TESTING_NAMED_CACHE]
}] }]; } });
export class ApolloTestingModule {
static withClients(names) {
return {
ngModule: ApolloTestingModuleCore,
providers: [
{
provide: APOLLO_TESTING_CLIENTS,
useValue: names,
},
],
};
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ApolloTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: ApolloTestingModule, imports: [ApolloTestingModuleCore] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ApolloTestingModule, imports: [ApolloTestingModuleCore] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ApolloTestingModule, decorators: [{
type: NgModule,
args: [{
imports: [ApolloTestingModuleCore],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdGluZy9zcmMvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFFTCxVQUFVLEVBQ1YsYUFBYSxHQUVkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFLdkQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQ3BELDhCQUE4QixDQUMvQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQzFELG9DQUFvQyxDQUNyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHNDQUFzQyxDQUN2QyxDQUFDO0FBRUYsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLEVBQWlCO0lBQy9DLEVBQWdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUVwQyxPQUFPLEVBQWUsQ0FBQztBQUN6QixDQUFDO0FBU0QsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNFLE1BQWMsRUFDZCxPQUE2QixFQUc3QixZQUF1QixFQUd2QixLQUF3QixFQUd4QixXQUFpQjtRQUVqQixTQUFTLGFBQWEsQ0FBQyxJQUFZLEVBQUUsQ0FBMkI7WUFDOUQsT0FBTztnQkFDTCxpQkFBaUIsRUFBRSxLQUFLO2dCQUN4QixJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDN0UsS0FBSyxFQUNILENBQUM7b0JBQ0QsSUFBSSxhQUFhLENBQUM7d0JBQ2hCLFdBQVcsRUFBRSxLQUFLO3FCQUNuQixDQUFDO2FBQ0wsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUvQyxJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3ZDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFCLE1BQU0sTUFBTSxHQUFHLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUVqRixNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7dUdBbkNVLHVCQUF1Qiw0RUFLeEIsc0JBQXNCLDZCQUd0QixvQkFBb0IsNkJBR3BCLDBCQUEwQjt3R0FYekIsdUJBQXVCLFlBTnhCLFlBQVk7d0dBTVgsdUJBQXVCLGFBTHZCO1lBQ1Qsb0JBQW9CO1lBQ3BCLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRTtTQUN4RSxZQUpTLFlBQVk7OzJGQU1YLHVCQUF1QjtrQkFQbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRTt3QkFDVCxvQkFBb0I7d0JBQ3BCLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRTtxQkFDeEU7aUJBQ0Y7OzBCQUtJLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsc0JBQXNCOzswQkFFN0IsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUUzQixRQUFROzswQkFDUixNQUFNOzJCQUFDLDBCQUEwQjs7QUE4QnRDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFlO1FBQ2hDLE9BQU87WUFDTCxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixRQUFRLEVBQUUsS0FBSztpQkFDaEI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO3VHQVhVLG1CQUFtQjt3R0FBbkIsbUJBQW1CLFlBekNuQix1QkFBdUI7d0dBeUN2QixtQkFBbUIsWUFGcEIsdUJBQXVCOzsyRkFFdEIsbUJBQW1CO2tCQUgvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwb2xsbywgQXBvbGxvTW9kdWxlIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgTmdNb2R1bGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBcG9sbG9DYWNoZSxcbiAgQXBvbGxvTGluayxcbiAgSW5NZW1vcnlDYWNoZSxcbiAgT3BlcmF0aW9uIGFzIExpbmtPcGVyYXRpb24sXG59IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgQXBvbGxvVGVzdGluZ0JhY2tlbmQgfSBmcm9tICcuL2JhY2tlbmQnO1xuaW1wb3J0IHsgQXBvbGxvVGVzdGluZ0NvbnRyb2xsZXIgfSBmcm9tICcuL2NvbnRyb2xsZXInO1xuaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSAnLi9vcGVyYXRpb24nO1xuXG5leHBvcnQgdHlwZSBOYW1lZENhY2hlcyA9IFJlY29yZDxzdHJpbmcsIEFwb2xsb0NhY2hlPGFueT4gfCB1bmRlZmluZWQgfCBudWxsPjtcblxuZXhwb3J0IGNvbnN0IEFQT0xMT19URVNUSU5HX0NBQ0hFID0gbmV3IEluamVjdGlvblRva2VuPEFwb2xsb0NhY2hlPGFueT4+KFxuICAnYXBvbGxvLWFuZ3VsYXIvdGVzdGluZyBjYWNoZScsXG4pO1xuXG5leHBvcnQgY29uc3QgQVBPTExPX1RFU1RJTkdfTkFNRURfQ0FDSEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48TmFtZWRDYWNoZXM+KFxuICAnYXBvbGxvLWFuZ3VsYXIvdGVzdGluZyBuYW1lZCBjYWNoZScsXG4pO1xuXG5leHBvcnQgY29uc3QgQVBPTExPX1RFU1RJTkdfQ0xJRU5UUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmdbXT4oXG4gICdhcG9sbG8tYW5ndWxhci90ZXN0aW5nIG5hbWVkIGNsaWVudHMnLFxuKTtcblxuZnVuY3Rpb24gYWRkQ2xpZW50KG5hbWU6IHN0cmluZywgb3A6IExpbmtPcGVyYXRpb24pOiBPcGVyYXRpb24ge1xuICAob3AgYXMgT3BlcmF0aW9uKS5jbGllbnROYW1lID0gbmFtZTtcblxuICByZXR1cm4gb3AgYXMgT3BlcmF0aW9uO1xufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQXBvbGxvTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQXBvbGxvVGVzdGluZ0JhY2tlbmQsXG4gICAgeyBwcm92aWRlOiBBcG9sbG9UZXN0aW5nQ29udHJvbGxlciwgdXNlRXhpc3Rpbmc6IEFwb2xsb1Rlc3RpbmdCYWNrZW5kIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwb2xsb1Rlc3RpbmdNb2R1bGVDb3JlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgYXBvbGxvOiBBcG9sbG8sXG4gICAgYmFja2VuZDogQXBvbGxvVGVzdGluZ0JhY2tlbmQsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEFQT0xMT19URVNUSU5HX0NMSUVOVFMpXG4gICAgbmFtZWRDbGllbnRzPzogc3RyaW5nW10sXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEFQT0xMT19URVNUSU5HX0NBQ0hFKVxuICAgIGNhY2hlPzogQXBvbGxvQ2FjaGU8YW55PixcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoQVBPTExPX1RFU1RJTkdfTkFNRURfQ0FDSEUpXG4gICAgbmFtZWRDYWNoZXM/OiBhbnksIC8vIEZJWDogdXNpbmcgTmFtZWRDYWNoZXMgaGVyZSBtYWtlcyBuZ2MgZmFpbFxuICApIHtcbiAgICBmdW5jdGlvbiBjcmVhdGVPcHRpb25zKG5hbWU6IHN0cmluZywgYz86IEFwb2xsb0NhY2hlPGFueT4gfCBudWxsKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb25uZWN0VG9EZXZUb29sczogZmFsc2UsXG4gICAgICAgIGxpbms6IG5ldyBBcG9sbG9MaW5rKG9wZXJhdGlvbiA9PiBiYWNrZW5kLmhhbmRsZShhZGRDbGllbnQobmFtZSwgb3BlcmF0aW9uKSkpLFxuICAgICAgICBjYWNoZTpcbiAgICAgICAgICBjIHx8XG4gICAgICAgICAgbmV3IEluTWVtb3J5Q2FjaGUoe1xuICAgICAgICAgICAgYWRkVHlwZW5hbWU6IGZhbHNlLFxuICAgICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBhcG9sbG8uY3JlYXRlKGNyZWF0ZU9wdGlvbnMoJ2RlZmF1bHQnLCBjYWNoZSkpO1xuXG4gICAgaWYgKG5hbWVkQ2xpZW50cyAmJiBuYW1lZENsaWVudHMubGVuZ3RoKSB7XG4gICAgICBuYW1lZENsaWVudHMuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgY29uc3QgY2FjaGVzID0gbmFtZWRDYWNoZXMgJiYgdHlwZW9mIG5hbWVkQ2FjaGVzID09PSAnb2JqZWN0JyA/IG5hbWVkQ2FjaGVzIDoge307XG5cbiAgICAgICAgYXBvbGxvLmNyZWF0ZU5hbWVkKG5hbWUsIGNyZWF0ZU9wdGlvbnMobmFtZSwgY2FjaGVzW25hbWVdKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0Fwb2xsb1Rlc3RpbmdNb2R1bGVDb3JlXSxcbn0pXG5leHBvcnQgY2xhc3MgQXBvbGxvVGVzdGluZ01vZHVsZSB7XG4gIHN0YXRpYyB3aXRoQ2xpZW50cyhuYW1lczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFwb2xsb1Rlc3RpbmdNb2R1bGVDb3JlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUE9MTE9fVEVTVElOR19DTElFTlRTLFxuICAgICAgICAgIHVzZVZhbHVlOiBuYW1lcyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19