apollo-angular
Version:
Use your GraphQL data in your Angular app, with the Apollo Client
37 lines • 3.95 kB
JavaScript
import { ApolloError } from '@apollo/client/core';
const isApolloError = (err) => err && err.hasOwnProperty('graphQLErrors');
export class TestOperation {
operation;
observer;
constructor(operation, observer) {
this.operation = operation;
this.observer = observer;
}
flush(result) {
if (isApolloError(result)) {
this.observer.error(result);
}
else {
const fetchResult = result ? { ...result } : result;
this.observer.next(fetchResult);
this.observer.complete();
}
}
flushData(data) {
this.flush({
data,
});
}
networkError(error) {
const apolloError = new ApolloError({
networkError: error,
});
this.flush(apolloError);
}
graphqlErrors(errors) {
this.flush({
errors,
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdGluZy9zcmMvb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQTJDLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFRLEVBQXNCLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQU1uRyxNQUFNLE9BQU8sYUFBYTtJQUVmO0lBQ0M7SUFGVixZQUNTLFNBQW9CLEVBQ25CLFFBQWtDO1FBRG5DLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7SUFDekMsQ0FBQztJQUVHLEtBQUssQ0FBQyxNQUFxQztRQUNoRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFrQixDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsSUFBbUM7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNULElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQVk7UUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDbEMsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQXNCO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDVCxNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhlY3V0aW9uUmVzdWx0LCBHcmFwaFFMRXJyb3IgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBcG9sbG9FcnJvciwgRmV0Y2hSZXN1bHQsIE9wZXJhdGlvbiBhcyBMaW5rT3BlcmF0aW9uIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5cbmNvbnN0IGlzQXBvbGxvRXJyb3IgPSAoZXJyOiBhbnkpOiBlcnIgaXMgQXBvbGxvRXJyb3IgPT4gZXJyICYmIGVyci5oYXNPd25Qcm9wZXJ0eSgnZ3JhcGhRTEVycm9ycycpO1xuXG5leHBvcnQgdHlwZSBPcGVyYXRpb24gPSBMaW5rT3BlcmF0aW9uICYge1xuICBjbGllbnROYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY2xhc3MgVGVzdE9wZXJhdGlvbjxUID0geyBba2V5OiBzdHJpbmddOiBhbnkgfT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3BlcmF0aW9uOiBPcGVyYXRpb24sXG4gICAgcHJpdmF0ZSBvYnNlcnZlcjogT2JzZXJ2ZXI8RmV0Y2hSZXN1bHQ8VD4+LFxuICApIHt9XG5cbiAgcHVibGljIGZsdXNoKHJlc3VsdDogRXhlY3V0aW9uUmVzdWx0IHwgQXBvbGxvRXJyb3IpOiB2b2lkIHtcbiAgICBpZiAoaXNBcG9sbG9FcnJvcihyZXN1bHQpKSB7XG4gICAgICB0aGlzLm9ic2VydmVyLmVycm9yKHJlc3VsdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZldGNoUmVzdWx0ID0gcmVzdWx0ID8geyAuLi5yZXN1bHQgfSA6IHJlc3VsdDtcbiAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChmZXRjaFJlc3VsdCBhcyBhbnkpO1xuICAgICAgdGhpcy5vYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmbHVzaERhdGEoZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLmZsdXNoKHtcbiAgICAgIGRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmV0d29ya0Vycm9yKGVycm9yOiBFcnJvcik6IHZvaWQge1xuICAgIGNvbnN0IGFwb2xsb0Vycm9yID0gbmV3IEFwb2xsb0Vycm9yKHtcbiAgICAgIG5ldHdvcmtFcnJvcjogZXJyb3IsXG4gICAgfSk7XG5cbiAgICB0aGlzLmZsdXNoKGFwb2xsb0Vycm9yKTtcbiAgfVxuXG4gIHB1YmxpYyBncmFwaHFsRXJyb3JzKGVycm9yczogR3JhcGhRTEVycm9yW10pOiB2b2lkIHtcbiAgICB0aGlzLmZsdXNoKHtcbiAgICAgIGVycm9ycyxcbiAgICB9KTtcbiAgfVxufVxuIl19