1 | import { NetworkStatus } from '@apollo/client/core';
|
2 | import { Observable, from } from 'rxjs';
|
3 | import { wrapWithZone, fixObservable } from './utils';
|
4 | function useInitialLoading(obsQuery) {
|
5 | return function useInitialLoadingOperator(source) {
|
6 | return new Observable(function useInitialLoadingSubscription(subscriber) {
|
7 | const currentResult = obsQuery.getCurrentResult();
|
8 | const { loading, errors, error, partial, data } = currentResult;
|
9 | const { partialRefetch, fetchPolicy } = obsQuery.options;
|
10 | const hasError = errors || error;
|
11 | if (partialRefetch &&
|
12 | partial &&
|
13 | (!data || Object.keys(data).length === 0) &&
|
14 | fetchPolicy !== 'cache-only' &&
|
15 | !loading &&
|
16 | !hasError) {
|
17 | subscriber.next({
|
18 | ...currentResult,
|
19 | loading: true,
|
20 | networkStatus: NetworkStatus.loading,
|
21 | });
|
22 | }
|
23 | return source.subscribe(subscriber);
|
24 | });
|
25 | };
|
26 | }
|
27 | export class QueryRef {
|
28 | constructor(obsQuery, ngZone, options) {
|
29 | this.obsQuery = obsQuery;
|
30 | const wrapped = wrapWithZone(from(fixObservable(this.obsQuery)), ngZone);
|
31 | this.valueChanges = options.useInitialLoading
|
32 | ? wrapped.pipe(useInitialLoading(this.obsQuery))
|
33 | : wrapped;
|
34 | this.queryId = this.obsQuery.queryId;
|
35 | }
|
36 | // ObservableQuery's methods
|
37 | get options() {
|
38 | return this.obsQuery.options;
|
39 | }
|
40 | get variables() {
|
41 | return this.obsQuery.variables;
|
42 | }
|
43 | result() {
|
44 | return this.obsQuery.result();
|
45 | }
|
46 | getCurrentResult() {
|
47 | return this.obsQuery.getCurrentResult();
|
48 | }
|
49 | getLastResult() {
|
50 | return this.obsQuery.getLastResult();
|
51 | }
|
52 | getLastError() {
|
53 | return this.obsQuery.getLastError();
|
54 | }
|
55 | resetLastResults() {
|
56 | return this.obsQuery.resetLastResults();
|
57 | }
|
58 | refetch(variables) {
|
59 | return this.obsQuery.refetch(variables);
|
60 | }
|
61 | fetchMore(fetchMoreOptions) {
|
62 | return this.obsQuery.fetchMore(fetchMoreOptions);
|
63 | }
|
64 | subscribeToMore(options) {
|
65 | // XXX: there's a bug in apollo-client typings
|
66 | // it should not inherit types from ObservableQuery
|
67 | return this.obsQuery.subscribeToMore(options);
|
68 | }
|
69 | updateQuery(mapFn) {
|
70 | return this.obsQuery.updateQuery(mapFn);
|
71 | }
|
72 | stopPolling() {
|
73 | return this.obsQuery.stopPolling();
|
74 | }
|
75 | startPolling(pollInterval) {
|
76 | return this.obsQuery.startPolling(pollInterval);
|
77 | }
|
78 | setOptions(opts) {
|
79 | return this.obsQuery.setOptions(opts);
|
80 | }
|
81 | setVariables(variables) {
|
82 | return this.obsQuery.setVariables(variables);
|
83 | }
|
84 | }
|
85 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5LXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFHcEQsU0FBUyxpQkFBaUIsQ0FBTyxRQUErQjtJQUM5RCxPQUFPLFNBQVMseUJBQXlCLENBQ3ZDLE1BQXFCO1FBRXJCLE9BQU8sSUFBSSxVQUFVLENBQUMsU0FBUyw2QkFBNkIsQ0FBQyxVQUFVO1lBQ3JFLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2xELE1BQU0sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLEdBQUcsYUFBYSxDQUFDO1lBQzlELE1BQU0sRUFBQyxjQUFjLEVBQUUsV0FBVyxFQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUV2RCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksS0FBSyxDQUFDO1lBRWpDLElBQ0UsY0FBYztnQkFDZCxPQUFPO2dCQUNQLENBQUMsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxXQUFXLEtBQUssWUFBWTtnQkFDNUIsQ0FBQyxPQUFPO2dCQUNSLENBQUMsUUFBUSxFQUNUO2dCQUNBLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQ2QsR0FBRyxhQUFhO29CQUNoQixPQUFPLEVBQUUsSUFBSTtvQkFDYixhQUFhLEVBQUUsYUFBYSxDQUFDLE9BQU87aUJBQzlCLENBQUMsQ0FBQzthQUNYO1lBRUQsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUtELE1BQU0sT0FBTyxRQUFRO0lBSW5CLFlBQ1UsUUFBK0IsRUFDdkMsTUFBYyxFQUNkLE9BQWdDO1FBRnhCLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBSXZDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLGlCQUFpQjtZQUMzQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztJQUVELDRCQUE0QjtJQUU1QixJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU0sYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxTQUFhO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFNBQVMsQ0FDZCxnQkFBNkM7UUFFN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxlQUFlLENBQ3BCLE9BQTBDO1FBRTFDLDhDQUE4QztRQUM5QyxtREFBbUQ7UUFDbkQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ00sV0FBVyxDQUNoQixLQUFvRTtRQUVwRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sWUFBWSxDQUFDLFlBQW9CO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFTO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBBcG9sbG9RdWVyeVJlc3VsdCxcbiAgT2JzZXJ2YWJsZVF1ZXJ5LFxuICBBcG9sbG9FcnJvcixcbiAgRmV0Y2hNb3JlUXVlcnlPcHRpb25zLFxuICBTdWJzY3JpYmVUb01vcmVPcHRpb25zLFxuICBVcGRhdGVRdWVyeU9wdGlvbnMsXG4gIFR5cGVkRG9jdW1lbnROb2RlLFxufSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7TmV0d29ya1N0YXR1c30gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIGZyb219IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge3dyYXBXaXRoWm9uZSwgZml4T2JzZXJ2YWJsZX0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge1dhdGNoUXVlcnlPcHRpb25zLCBFbXB0eU9iamVjdH0gZnJvbSAnLi90eXBlcyc7XG5cbmZ1bmN0aW9uIHVzZUluaXRpYWxMb2FkaW5nPFQsIFY+KG9ic1F1ZXJ5OiBPYnNlcnZhYmxlUXVlcnk8VCwgVj4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVzZUluaXRpYWxMb2FkaW5nT3BlcmF0b3I8VD4oXG4gICAgc291cmNlOiBPYnNlcnZhYmxlPFQ+LFxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoZnVuY3Rpb24gdXNlSW5pdGlhbExvYWRpbmdTdWJzY3JpcHRpb24oc3Vic2NyaWJlcikge1xuICAgICAgY29uc3QgY3VycmVudFJlc3VsdCA9IG9ic1F1ZXJ5LmdldEN1cnJlbnRSZXN1bHQoKTtcbiAgICAgIGNvbnN0IHtsb2FkaW5nLCBlcnJvcnMsIGVycm9yLCBwYXJ0aWFsLCBkYXRhfSA9IGN1cnJlbnRSZXN1bHQ7XG4gICAgICBjb25zdCB7cGFydGlhbFJlZmV0Y2gsIGZldGNoUG9saWN5fSA9IG9ic1F1ZXJ5Lm9wdGlvbnM7XG5cbiAgICAgIGNvbnN0IGhhc0Vycm9yID0gZXJyb3JzIHx8IGVycm9yO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHBhcnRpYWxSZWZldGNoICYmXG4gICAgICAgIHBhcnRpYWwgJiZcbiAgICAgICAgKCFkYXRhIHx8IE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICAgZmV0Y2hQb2xpY3kgIT09ICdjYWNoZS1vbmx5JyAmJlxuICAgICAgICAhbG9hZGluZyAmJlxuICAgICAgICAhaGFzRXJyb3JcbiAgICAgICkge1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQoe1xuICAgICAgICAgIC4uLmN1cnJlbnRSZXN1bHQsXG4gICAgICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICAgICAgICBuZXR3b3JrU3RhdHVzOiBOZXR3b3JrU3RhdHVzLmxvYWRpbmcsXG4gICAgICAgIH0gYXMgYW55KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7XG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5UmVmRnJvbURvY3VtZW50PFQgZXh0ZW5kcyBUeXBlZERvY3VtZW50Tm9kZT4gPVxuICBUIGV4dGVuZHMgVHlwZWREb2N1bWVudE5vZGU8aW5mZXIgUiwgaW5mZXIgVj4gPyBRdWVyeVJlZjxSLCBWPiA6IG5ldmVyO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlSZWY8VCwgViA9IEVtcHR5T2JqZWN0PiB7XG4gIHB1YmxpYyB2YWx1ZUNoYW5nZXM6IE9ic2VydmFibGU8QXBvbGxvUXVlcnlSZXN1bHQ8VD4+O1xuICBwdWJsaWMgcXVlcnlJZDogT2JzZXJ2YWJsZVF1ZXJ5PFQsIFY+WydxdWVyeUlkJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvYnNRdWVyeTogT2JzZXJ2YWJsZVF1ZXJ5PFQsIFY+LFxuICAgIG5nWm9uZTogTmdab25lLFxuICAgIG9wdGlvbnM6IFdhdGNoUXVlcnlPcHRpb25zPFYsIFQ+LFxuICApIHtcbiAgICBjb25zdCB3cmFwcGVkID0gd3JhcFdpdGhab25lKGZyb20oZml4T2JzZXJ2YWJsZSh0aGlzLm9ic1F1ZXJ5KSksIG5nWm9uZSk7XG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlcyA9IG9wdGlvbnMudXNlSW5pdGlhbExvYWRpbmdcbiAgICAgID8gd3JhcHBlZC5waXBlKHVzZUluaXRpYWxMb2FkaW5nKHRoaXMub2JzUXVlcnkpKVxuICAgICAgOiB3cmFwcGVkO1xuICAgIHRoaXMucXVlcnlJZCA9IHRoaXMub2JzUXVlcnkucXVlcnlJZDtcbiAgfVxuXG4gIC8vIE9ic2VydmFibGVRdWVyeSdzIG1ldGhvZHNcblxuICBwdWJsaWMgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMub2JzUXVlcnkub3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFyaWFibGVzKCkge1xuICAgIHJldHVybiB0aGlzLm9ic1F1ZXJ5LnZhcmlhYmxlcztcbiAgfVxuXG4gIHB1YmxpYyByZXN1bHQoKTogUHJvbWlzZTxBcG9sbG9RdWVyeVJlc3VsdDxUPj4ge1xuICAgIHJldHVybiB0aGlzLm9ic1F1ZXJ5LnJlc3VsdCgpO1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRSZXN1bHQoKTogQXBvbGxvUXVlcnlSZXN1bHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLm9ic1F1ZXJ5LmdldEN1cnJlbnRSZXN1bHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXN0UmVzdWx0KCk6IEFwb2xsb1F1ZXJ5UmVzdWx0PFQ+IHtcbiAgICByZXR1cm4gdGhpcy5vYnNRdWVyeS5nZXRMYXN0UmVzdWx0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGFzdEVycm9yKCk6IEFwb2xsb0Vycm9yIHtcbiAgICByZXR1cm4gdGhpcy5vYnNRdWVyeS5nZXRMYXN0RXJyb3IoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldExhc3RSZXN1bHRzKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLm9ic1F1ZXJ5LnJlc2V0TGFzdFJlc3VsdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZldGNoKHZhcmlhYmxlcz86IFYpOiBQcm9taXNlPEFwb2xsb1F1ZXJ5UmVzdWx0PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMub2JzUXVlcnkucmVmZXRjaCh2YXJpYWJsZXMpO1xuICB9XG5cbiAgcHVibGljIGZldGNoTW9yZTxLID0gVj4oXG4gICAgZmV0Y2hNb3JlT3B0aW9uczogRmV0Y2hNb3JlUXVlcnlPcHRpb25zPEssIFQ+LFxuICApOiBQcm9taXNlPEFwb2xsb1F1ZXJ5UmVzdWx0PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMub2JzUXVlcnkuZmV0Y2hNb3JlKGZldGNoTW9yZU9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZVRvTW9yZTxNVCA9IGFueSwgTVYgPSBFbXB0eU9iamVjdD4oXG4gICAgb3B0aW9uczogU3Vic2NyaWJlVG9Nb3JlT3B0aW9uczxULCBNViwgTVQ+LFxuICApOiAoKSA9PiB2b2lkIHtcbiAgICAvLyBYWFg6IHRoZXJlJ3MgYSBidWcgaW4gYXBvbGxvLWNsaWVudCB0eXBpbmdzXG4gICAgLy8gaXQgc2hvdWxkIG5vdCBpbmhlcml0IHR5cGVzIGZyb20gT2JzZXJ2YWJsZVF1ZXJ5XG4gICAgcmV0dXJuIHRoaXMub2JzUXVlcnkuc3Vic2NyaWJlVG9Nb3JlKG9wdGlvbnMgYXMgYW55KTtcbiAgfVxuICBwdWJsaWMgdXBkYXRlUXVlcnkoXG4gICAgbWFwRm46IChwcmV2aW91c1F1ZXJ5UmVzdWx0OiBULCBvcHRpb25zOiBVcGRhdGVRdWVyeU9wdGlvbnM8Vj4pID0+IFQsXG4gICk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLm9ic1F1ZXJ5LnVwZGF0ZVF1ZXJ5KG1hcEZuKTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9wUG9sbGluZygpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5vYnNRdWVyeS5zdG9wUG9sbGluZygpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0UG9sbGluZyhwb2xsSW50ZXJ2YWw6IG51bWJlcik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLm9ic1F1ZXJ5LnN0YXJ0UG9sbGluZyhwb2xsSW50ZXJ2YWwpO1xuICB9XG5cbiAgcHVibGljIHNldE9wdGlvbnMob3B0czogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMub2JzUXVlcnkuc2V0T3B0aW9ucyhvcHRzKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWYXJpYWJsZXModmFyaWFibGVzOiBWKSB7XG4gICAgcmV0dXJuIHRoaXMub2JzUXVlcnkuc2V0VmFyaWFibGVzKHZhcmlhYmxlcyk7XG4gIH1cbn1cbiJdfQ== |
\ | No newline at end of file |