apollo-angular
Version:
Use your GraphQL data in your Angular app, with the Apollo Client
92 lines • 11 kB
JavaScript
import { Apollo } 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: "18.0.5", 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: "18.0.5", ngImport: i0, type: ApolloTestingModuleCore });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ApolloTestingModuleCore, providers: [
Apollo,
ApolloTestingBackend,
{ provide: ApolloTestingController, useExisting: ApolloTestingBackend },
] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ApolloTestingModuleCore, decorators: [{
type: NgModule,
args: [{
providers: [
Apollo,
ApolloTestingBackend,
{ provide: ApolloTestingController, useExisting: ApolloTestingBackend },
],
}]
}], ctorParameters: () => [{ 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: "18.0.5", ngImport: i0, type: ApolloTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: ApolloTestingModule, imports: [ApolloTestingModuleCore] });
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ApolloTestingModule, imports: [ApolloTestingModuleCore] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ApolloTestingModule, decorators: [{
type: NgModule,
args: [{
imports: [ApolloTestingModuleCore],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdGluZy9zcmMvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFFTCxVQUFVLEVBQ1YsYUFBYSxHQUVkLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFLdkQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQ3BELDhCQUE4QixDQUMvQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQzFELG9DQUFvQyxDQUNyQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3RELHNDQUFzQyxDQUN2QyxDQUFDO0FBRUYsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLEVBQWlCO0lBQy9DLEVBQWdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUVwQyxPQUFPLEVBQWUsQ0FBQztBQUN6QixDQUFDO0FBU0QsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUNFLE1BQWMsRUFDZCxPQUE2QixFQUc3QixZQUF1QixFQUd2QixLQUF3QixFQUd4QixXQUF5QjtRQUV6QixTQUFTLGFBQWEsQ0FBQyxJQUFZLEVBQUUsQ0FBMkI7WUFDOUQsT0FBTztnQkFDTCxpQkFBaUIsRUFBRSxLQUFLO2dCQUN4QixJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDN0UsS0FBSyxFQUNILENBQUM7b0JBQ0QsSUFBSSxhQUFhLENBQUM7d0JBQ2hCLFdBQVcsRUFBRSxLQUFLO3FCQUNuQixDQUFDO2FBQ0wsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUvQyxJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDeEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDMUIsTUFBTSxNQUFNLEdBQUcsV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBRWpGLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3VHQW5DVSx1QkFBdUIsNEVBS3hCLHNCQUFzQiw2QkFHdEIsb0JBQW9CLDZCQUdwQiwwQkFBMEI7d0dBWHpCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGFBTnZCO1lBQ1QsTUFBTTtZQUNOLG9CQUFvQjtZQUNwQixFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUU7U0FDeEU7OzJGQUVVLHVCQUF1QjtrQkFQbkMsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUU7d0JBQ1QsTUFBTTt3QkFDTixvQkFBb0I7d0JBQ3BCLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRTtxQkFDeEU7aUJBQ0Y7OzBCQUtJLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsc0JBQXNCOzswQkFFN0IsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUUzQixRQUFROzswQkFDUixNQUFNOzJCQUFDLDBCQUEwQjs7QUE4QnRDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFlO1FBQ2hDLE9BQU87WUFDTCxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixRQUFRLEVBQUUsS0FBSztpQkFDaEI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO3VHQVhVLG1CQUFtQjt3R0FBbkIsbUJBQW1CLFlBekNuQix1QkFBdUI7d0dBeUN2QixtQkFBbUIsWUFGcEIsdUJBQXVCOzsyRkFFdEIsbUJBQW1CO2tCQUgvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIE5nTW9kdWxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXBvbGxvQ2FjaGUsXG4gIEFwb2xsb0xpbmssXG4gIEluTWVtb3J5Q2FjaGUsXG4gIE9wZXJhdGlvbiBhcyBMaW5rT3BlcmF0aW9uLFxufSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEFwb2xsb1Rlc3RpbmdCYWNrZW5kIH0gZnJvbSAnLi9iYWNrZW5kJztcbmltcG9ydCB7IEFwb2xsb1Rlc3RpbmdDb250cm9sbGVyIH0gZnJvbSAnLi9jb250cm9sbGVyJztcbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcblxuZXhwb3J0IHR5cGUgTmFtZWRDYWNoZXMgPSBSZWNvcmQ8c3RyaW5nLCBBcG9sbG9DYWNoZTxhbnk+IHwgdW5kZWZpbmVkIHwgbnVsbD47XG5cbmV4cG9ydCBjb25zdCBBUE9MTE9fVEVTVElOR19DQUNIRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcG9sbG9DYWNoZTxhbnk+PihcbiAgJ2Fwb2xsby1hbmd1bGFyL3Rlc3RpbmcgY2FjaGUnLFxuKTtcblxuZXhwb3J0IGNvbnN0IEFQT0xMT19URVNUSU5HX05BTUVEX0NBQ0hFID0gbmV3IEluamVjdGlvblRva2VuPE5hbWVkQ2FjaGVzPihcbiAgJ2Fwb2xsby1hbmd1bGFyL3Rlc3RpbmcgbmFtZWQgY2FjaGUnLFxuKTtcblxuZXhwb3J0IGNvbnN0IEFQT0xMT19URVNUSU5HX0NMSUVOVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nW10+KFxuICAnYXBvbGxvLWFuZ3VsYXIvdGVzdGluZyBuYW1lZCBjbGllbnRzJyxcbik7XG5cbmZ1bmN0aW9uIGFkZENsaWVudChuYW1lOiBzdHJpbmcsIG9wOiBMaW5rT3BlcmF0aW9uKTogT3BlcmF0aW9uIHtcbiAgKG9wIGFzIE9wZXJhdGlvbikuY2xpZW50TmFtZSA9IG5hbWU7XG5cbiAgcmV0dXJuIG9wIGFzIE9wZXJhdGlvbjtcbn1cblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgQXBvbGxvLFxuICAgIEFwb2xsb1Rlc3RpbmdCYWNrZW5kLFxuICAgIHsgcHJvdmlkZTogQXBvbGxvVGVzdGluZ0NvbnRyb2xsZXIsIHVzZUV4aXN0aW5nOiBBcG9sbG9UZXN0aW5nQmFja2VuZCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcG9sbG9UZXN0aW5nTW9kdWxlQ29yZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGFwb2xsbzogQXBvbGxvLFxuICAgIGJhY2tlbmQ6IEFwb2xsb1Rlc3RpbmdCYWNrZW5kLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBUE9MTE9fVEVTVElOR19DTElFTlRTKVxuICAgIG5hbWVkQ2xpZW50cz86IHN0cmluZ1tdLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChBUE9MTE9fVEVTVElOR19DQUNIRSlcbiAgICBjYWNoZT86IEFwb2xsb0NhY2hlPGFueT4sXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEFQT0xMT19URVNUSU5HX05BTUVEX0NBQ0hFKVxuICAgIG5hbWVkQ2FjaGVzPzogTmFtZWRDYWNoZXMsXG4gICkge1xuICAgIGZ1bmN0aW9uIGNyZWF0ZU9wdGlvbnMobmFtZTogc3RyaW5nLCBjPzogQXBvbGxvQ2FjaGU8YW55PiB8IG51bGwpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbm5lY3RUb0RldlRvb2xzOiBmYWxzZSxcbiAgICAgICAgbGluazogbmV3IEFwb2xsb0xpbmsob3BlcmF0aW9uID0+IGJhY2tlbmQuaGFuZGxlKGFkZENsaWVudChuYW1lLCBvcGVyYXRpb24pKSksXG4gICAgICAgIGNhY2hlOlxuICAgICAgICAgIGMgfHxcbiAgICAgICAgICBuZXcgSW5NZW1vcnlDYWNoZSh7XG4gICAgICAgICAgICBhZGRUeXBlbmFtZTogZmFsc2UsXG4gICAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGFwb2xsby5jcmVhdGUoY3JlYXRlT3B0aW9ucygnZGVmYXVsdCcsIGNhY2hlKSk7XG5cbiAgICBpZiAobmFtZWRDbGllbnRzICYmIG5hbWVkQ2xpZW50cy5sZW5ndGgpIHtcbiAgICAgIG5hbWVkQ2xpZW50cy5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgICBjb25zdCBjYWNoZXMgPSBuYW1lZENhY2hlcyAmJiB0eXBlb2YgbmFtZWRDYWNoZXMgPT09ICdvYmplY3QnID8gbmFtZWRDYWNoZXMgOiB7fTtcblxuICAgICAgICBhcG9sbG8uY3JlYXRlTmFtZWQobmFtZSwgY3JlYXRlT3B0aW9ucyhuYW1lLCBjYWNoZXNbbmFtZV0pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQXBvbGxvVGVzdGluZ01vZHVsZUNvcmVdLFxufSlcbmV4cG9ydCBjbGFzcyBBcG9sbG9UZXN0aW5nTW9kdWxlIHtcbiAgc3RhdGljIHdpdGhDbGllbnRzKG5hbWVzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQXBvbGxvVGVzdGluZ01vZHVsZUNvcmUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQT0xMT19URVNUSU5HX0NMSUVOVFMsXG4gICAgICAgICAgdXNlVmFsdWU6IG5hbWVzLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=