@tanstack/query-core 5.0.0-alpha.49 → 5.0.0-alpha.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/focusManager.js +15 -31
- package/build/lib/focusManager.js.map +1 -1
- package/build/lib/hydration.js +4 -7
- package/build/lib/hydration.js.map +1 -1
- package/build/lib/infiniteQueryBehavior.js +4 -5
- package/build/lib/infiniteQueryBehavior.js.map +1 -1
- package/build/lib/infiniteQueryObserver.js +2 -3
- package/build/lib/infiniteQueryObserver.js.map +1 -1
- package/build/lib/mutation.js +102 -127
- package/build/lib/mutation.js.map +1 -1
- package/build/lib/mutationCache.js +17 -30
- package/build/lib/mutationCache.js.map +1 -1
- package/build/lib/mutationObserver.js +51 -81
- package/build/lib/mutationObserver.js.map +1 -1
- package/build/lib/onlineManager.js +14 -29
- package/build/lib/onlineManager.js.map +1 -1
- package/build/lib/queriesObserver.js +79 -125
- package/build/lib/queriesObserver.js.map +1 -1
- package/build/lib/query.js +161 -210
- package/build/lib/query.js.map +1 -1
- package/build/lib/queryCache.js +10 -15
- package/build/lib/queryCache.js.map +1 -1
- package/build/lib/queryClient.js +61 -98
- package/build/lib/queryClient.js.map +1 -1
- package/build/lib/queryObserver.js +197 -297
- package/build/lib/queryObserver.js.map +1 -1
- package/build/lib/removable.js +6 -13
- package/build/lib/removable.js.map +1 -1
- package/build/lib/retryer.js +14 -15
- package/build/lib/retryer.js.map +1 -1
- package/build/lib/utils.js +1 -1
- package/build/lib/utils.js.map +1 -1
- package/package.json +1 -2
- package/build/lib/_virtual/_rollupPluginBabelHelpers.js +0 -16
- package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/umd/index.development.js +0 -2691
- package/build/umd/index.development.js.map +0 -1
- package/build/umd/index.production.js +0 -2
- package/build/umd/index.production.js.map +0 -1
|
@@ -1,127 +1,97 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
4
3
|
var mutation = require('./mutation.js');
|
|
5
4
|
var notifyManager = require('./notifyManager.js');
|
|
6
5
|
var subscribable = require('./subscribable.js');
|
|
7
6
|
var utils = require('./utils.js');
|
|
8
7
|
|
|
9
8
|
// TYPES
|
|
10
|
-
|
|
11
|
-
var _currentResult = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("currentResult");
|
|
12
|
-
var _currentMutation = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("currentMutation");
|
|
13
|
-
var _mutateOptions = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("mutateOptions");
|
|
14
|
-
var _updateResult = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("updateResult");
|
|
15
|
-
var _notify = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("notify");
|
|
9
|
+
|
|
16
10
|
// CLASS
|
|
17
11
|
|
|
18
12
|
class MutationObserver extends subscribable.Subscribable {
|
|
13
|
+
#client;
|
|
14
|
+
#currentResult = undefined;
|
|
15
|
+
#currentMutation;
|
|
16
|
+
#mutateOptions;
|
|
19
17
|
constructor(client, options) {
|
|
20
18
|
super();
|
|
21
|
-
|
|
22
|
-
value: _notify2
|
|
23
|
-
});
|
|
24
|
-
Object.defineProperty(this, _updateResult, {
|
|
25
|
-
value: _updateResult2
|
|
26
|
-
});
|
|
27
|
-
Object.defineProperty(this, _client, {
|
|
28
|
-
writable: true,
|
|
29
|
-
value: void 0
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(this, _currentResult, {
|
|
32
|
-
writable: true,
|
|
33
|
-
value: undefined
|
|
34
|
-
});
|
|
35
|
-
Object.defineProperty(this, _currentMutation, {
|
|
36
|
-
writable: true,
|
|
37
|
-
value: void 0
|
|
38
|
-
});
|
|
39
|
-
Object.defineProperty(this, _mutateOptions, {
|
|
40
|
-
writable: true,
|
|
41
|
-
value: void 0
|
|
42
|
-
});
|
|
43
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _client)[_client] = client;
|
|
19
|
+
this.#client = client;
|
|
44
20
|
this.setOptions(options);
|
|
45
21
|
this.bindMethods();
|
|
46
|
-
|
|
22
|
+
this.#updateResult();
|
|
47
23
|
}
|
|
48
24
|
bindMethods() {
|
|
49
25
|
this.mutate = this.mutate.bind(this);
|
|
50
26
|
this.reset = this.reset.bind(this);
|
|
51
27
|
}
|
|
52
28
|
setOptions(options) {
|
|
53
|
-
var _classPrivateFieldLoo;
|
|
54
29
|
const prevOptions = this.options;
|
|
55
|
-
this.options =
|
|
30
|
+
this.options = this.#client.defaultMutationOptions(options);
|
|
56
31
|
if (!utils.shallowEqualObjects(prevOptions, this.options)) {
|
|
57
|
-
|
|
32
|
+
this.#client.getMutationCache().notify({
|
|
58
33
|
type: 'observerOptionsUpdated',
|
|
59
|
-
mutation:
|
|
34
|
+
mutation: this.#currentMutation,
|
|
60
35
|
observer: this
|
|
61
36
|
});
|
|
62
37
|
}
|
|
63
|
-
|
|
38
|
+
this.#currentMutation?.setOptions(this.options);
|
|
64
39
|
}
|
|
65
40
|
onUnsubscribe() {
|
|
66
41
|
if (!this.hasListeners()) {
|
|
67
|
-
|
|
68
|
-
(_classPrivateFieldLoo2 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo2.removeObserver(this);
|
|
42
|
+
this.#currentMutation?.removeObserver(this);
|
|
69
43
|
}
|
|
70
44
|
}
|
|
71
45
|
onMutationUpdate(action) {
|
|
72
|
-
|
|
73
|
-
|
|
46
|
+
this.#updateResult();
|
|
47
|
+
this.#notify(action);
|
|
74
48
|
}
|
|
75
49
|
getCurrentResult() {
|
|
76
|
-
return
|
|
50
|
+
return this.#currentResult;
|
|
77
51
|
}
|
|
78
52
|
reset() {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
53
|
+
this.#currentMutation = undefined;
|
|
54
|
+
this.#updateResult();
|
|
55
|
+
this.#notify();
|
|
82
56
|
}
|
|
83
57
|
mutate(variables, options) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation].execute(variables);
|
|
58
|
+
this.#mutateOptions = options;
|
|
59
|
+
this.#currentMutation?.removeObserver(this);
|
|
60
|
+
this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);
|
|
61
|
+
this.#currentMutation.addObserver(this);
|
|
62
|
+
return this.#currentMutation.execute(variables);
|
|
90
63
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
var _classPrivateFieldLoo10, _classPrivateFieldLoo11, _classPrivateFieldLoo12, _classPrivateFieldLoo13;
|
|
115
|
-
(_classPrivateFieldLoo10 = (_classPrivateFieldLoo11 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutateOptions)[_mutateOptions]).onError) == null ? void 0 : _classPrivateFieldLoo10.call(_classPrivateFieldLoo11, action.error, _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _currentResult)[_currentResult].variables, _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _currentResult)[_currentResult].context);
|
|
116
|
-
(_classPrivateFieldLoo12 = (_classPrivateFieldLoo13 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _mutateOptions)[_mutateOptions]).onSettled) == null ? void 0 : _classPrivateFieldLoo12.call(_classPrivateFieldLoo13, undefined, action.error, _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _currentResult)[_currentResult].variables, _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _currentResult)[_currentResult].context);
|
|
64
|
+
#updateResult() {
|
|
65
|
+
const state = this.#currentMutation?.state ?? mutation.getDefaultState();
|
|
66
|
+
this.#currentResult = {
|
|
67
|
+
...state,
|
|
68
|
+
isPending: state.status === 'pending',
|
|
69
|
+
isSuccess: state.status === 'success',
|
|
70
|
+
isError: state.status === 'error',
|
|
71
|
+
isIdle: state.status === 'idle',
|
|
72
|
+
mutate: this.mutate,
|
|
73
|
+
reset: this.reset
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
#notify(action) {
|
|
77
|
+
notifyManager.notifyManager.batch(() => {
|
|
78
|
+
// First trigger the mutate callbacks
|
|
79
|
+
if (this.#mutateOptions && this.hasListeners()) {
|
|
80
|
+
if (action?.type === 'success') {
|
|
81
|
+
this.#mutateOptions.onSuccess?.(action.data, this.#currentResult.variables, this.#currentResult.context);
|
|
82
|
+
this.#mutateOptions.onSettled?.(action.data, null, this.#currentResult.variables, this.#currentResult.context);
|
|
83
|
+
} else if (action?.type === 'error') {
|
|
84
|
+
this.#mutateOptions.onError?.(action.error, this.#currentResult.variables, this.#currentResult.context);
|
|
85
|
+
this.#mutateOptions.onSettled?.(undefined, action.error, this.#currentResult.variables, this.#currentResult.context);
|
|
86
|
+
}
|
|
117
87
|
}
|
|
118
|
-
}
|
|
119
88
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
89
|
+
// Then trigger the listeners
|
|
90
|
+
this.listeners.forEach(listener => {
|
|
91
|
+
listener(this.#currentResult);
|
|
92
|
+
});
|
|
123
93
|
});
|
|
124
|
-
}
|
|
94
|
+
}
|
|
125
95
|
}
|
|
126
96
|
|
|
127
97
|
exports.MutationObserver = MutationObserver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutationObserver.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n #client: QueryClient\n #currentResult: MutationObserverResult<TData, TError, TVariables, TContext> =\n undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TContext>\n #mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.#client = client\n this.setOptions(options)\n this.bindMethods()\n this.#updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n this.#currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.#updateResult()\n\n this.#notify(action)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.#currentResult\n }\n\n reset(): void {\n this.#currentMutation = undefined\n this.#updateResult()\n this.#notify()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TContext>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TContext>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TContext>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables!,\n this.#currentResult.context!,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n"],"names":["_client","_classPrivateFieldLooseKey","_currentResult","_currentMutation","_mutateOptions","_updateResult","_notify","MutationObserver","Subscribable","constructor","client","options","Object","defineProperty","value","_notify2","_updateResult2","writable","undefined","_classPrivateFieldLooseBase","setOptions","bindMethods","mutate","bind","reset","_classPrivateFieldLoo","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","hasListeners","_classPrivateFieldLoo2","removeObserver","onMutationUpdate","action","getCurrentResult","variables","_classPrivateFieldLoo3","build","addObserver","execute","_classPrivateFieldLoo4","_classPrivateFieldLoo5","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","_classPrivateFieldLoo6","_classPrivateFieldLoo7","_classPrivateFieldLoo8","_classPrivateFieldLoo9","onSuccess","call","data","context","onSettled","_classPrivateFieldLoo10","_classPrivateFieldLoo11","_classPrivateFieldLoo12","_classPrivateFieldLoo13","onError","error","listeners","forEach","listener"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutationObserver.js","sources":["../../src/mutationObserver.ts"],"sourcesContent":["import type { Action, Mutation } from './mutation'\nimport { getDefaultState } from './mutation'\nimport { notifyManager } from './notifyManager'\nimport type { QueryClient } from './queryClient'\nimport { Subscribable } from './subscribable'\nimport type {\n MutateOptions,\n MutationObserverResult,\n MutationObserverOptions,\n DefaultError,\n} from './types'\nimport { shallowEqualObjects } from './utils'\n\n// TYPES\n\ntype MutationObserverListener<TData, TError, TVariables, TContext> = (\n result: MutationObserverResult<TData, TError, TVariables, TContext>,\n) => void\n\n// CLASS\n\nexport class MutationObserver<\n TData = unknown,\n TError = DefaultError,\n TVariables = void,\n TContext = unknown,\n> extends Subscribable<\n MutationObserverListener<TData, TError, TVariables, TContext>\n> {\n options!: MutationObserverOptions<TData, TError, TVariables, TContext>\n\n #client: QueryClient\n #currentResult: MutationObserverResult<TData, TError, TVariables, TContext> =\n undefined!\n #currentMutation?: Mutation<TData, TError, TVariables, TContext>\n #mutateOptions?: MutateOptions<TData, TError, TVariables, TContext>\n\n constructor(\n client: QueryClient,\n options: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n super()\n\n this.#client = client\n this.setOptions(options)\n this.bindMethods()\n this.#updateResult()\n }\n\n protected bindMethods(): void {\n this.mutate = this.mutate.bind(this)\n this.reset = this.reset.bind(this)\n }\n\n setOptions(\n options?: MutationObserverOptions<TData, TError, TVariables, TContext>,\n ) {\n const prevOptions = this.options\n this.options = this.#client.defaultMutationOptions(options)\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.#client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.#currentMutation,\n observer: this,\n })\n }\n this.#currentMutation?.setOptions(this.options)\n }\n\n protected onUnsubscribe(): void {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this)\n }\n }\n\n onMutationUpdate(action: Action<TData, TError, TVariables, TContext>): void {\n this.#updateResult()\n\n this.#notify(action)\n }\n\n getCurrentResult(): MutationObserverResult<\n TData,\n TError,\n TVariables,\n TContext\n > {\n return this.#currentResult\n }\n\n reset(): void {\n this.#currentMutation = undefined\n this.#updateResult()\n this.#notify()\n }\n\n mutate(\n variables: TVariables,\n options?: MutateOptions<TData, TError, TVariables, TContext>,\n ): Promise<TData> {\n this.#mutateOptions = options\n\n this.#currentMutation?.removeObserver(this)\n\n this.#currentMutation = this.#client\n .getMutationCache()\n .build(this.#client, this.options)\n\n this.#currentMutation.addObserver(this)\n\n return this.#currentMutation.execute(variables)\n }\n\n #updateResult(): void {\n const state =\n this.#currentMutation?.state ??\n getDefaultState<TData, TError, TVariables, TContext>()\n\n this.#currentResult = {\n ...state,\n isPending: state.status === 'pending',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset,\n } as MutationObserverResult<TData, TError, TVariables, TContext>\n }\n\n #notify(action?: Action<TData, TError, TVariables, TContext>): void {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.#mutateOptions && this.hasListeners()) {\n if (action?.type === 'success') {\n this.#mutateOptions.onSuccess?.(\n action.data,\n this.#currentResult.variables!,\n this.#currentResult.context!,\n )\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n } else if (action?.type === 'error') {\n this.#mutateOptions.onError?.(\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n this.#mutateOptions.onSettled?.(\n undefined,\n action.error,\n this.#currentResult.variables!,\n this.#currentResult.context,\n )\n }\n }\n\n // Then trigger the listeners\n this.listeners.forEach((listener) => {\n listener(this.#currentResult)\n })\n })\n }\n}\n"],"names":["MutationObserver","Subscribable","undefined","constructor","client","options","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","#updateResult","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","#notify","notifyManager","batch","onSuccess","data","context","onSettled","onError","error","listeners","forEach","listener"],"mappings":"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"}
|
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
4
3
|
var subscribable = require('./subscribable.js');
|
|
5
4
|
var utils = require('./utils.js');
|
|
6
5
|
|
|
7
|
-
var _online = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("online");
|
|
8
|
-
var _cleanup = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("cleanup");
|
|
9
|
-
var _setup = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("setup");
|
|
10
6
|
class OnlineManager extends subscribable.Subscribable {
|
|
7
|
+
#online;
|
|
8
|
+
#cleanup;
|
|
9
|
+
#setup;
|
|
11
10
|
constructor() {
|
|
12
11
|
super();
|
|
13
|
-
|
|
14
|
-
writable: true,
|
|
15
|
-
value: void 0
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(this, _cleanup, {
|
|
18
|
-
writable: true,
|
|
19
|
-
value: void 0
|
|
20
|
-
});
|
|
21
|
-
Object.defineProperty(this, _setup, {
|
|
22
|
-
writable: true,
|
|
23
|
-
value: void 0
|
|
24
|
-
});
|
|
25
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _setup)[_setup] = onOnline => {
|
|
12
|
+
this.#setup = onOnline => {
|
|
26
13
|
// addEventListener does not exist in React Native, but window does
|
|
27
14
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
28
15
|
if (!utils.isServer && window.addEventListener) {
|
|
@@ -40,22 +27,20 @@ class OnlineManager extends subscribable.Subscribable {
|
|
|
40
27
|
};
|
|
41
28
|
}
|
|
42
29
|
onSubscribe() {
|
|
43
|
-
if (!
|
|
44
|
-
this.setEventListener(
|
|
30
|
+
if (!this.#cleanup) {
|
|
31
|
+
this.setEventListener(this.#setup);
|
|
45
32
|
}
|
|
46
33
|
}
|
|
47
34
|
onUnsubscribe() {
|
|
48
35
|
if (!this.hasListeners()) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cleanup)[_cleanup] = undefined;
|
|
36
|
+
this.#cleanup?.();
|
|
37
|
+
this.#cleanup = undefined;
|
|
52
38
|
}
|
|
53
39
|
}
|
|
54
40
|
setEventListener(setup) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _cleanup)[_cleanup] = setup(online => {
|
|
41
|
+
this.#setup = setup;
|
|
42
|
+
this.#cleanup?.();
|
|
43
|
+
this.#cleanup = setup(online => {
|
|
59
44
|
if (typeof online === 'boolean') {
|
|
60
45
|
this.setOnline(online);
|
|
61
46
|
} else {
|
|
@@ -64,7 +49,7 @@ class OnlineManager extends subscribable.Subscribable {
|
|
|
64
49
|
});
|
|
65
50
|
}
|
|
66
51
|
setOnline(online) {
|
|
67
|
-
|
|
52
|
+
this.#online = online;
|
|
68
53
|
if (online) {
|
|
69
54
|
this.onOnline();
|
|
70
55
|
}
|
|
@@ -75,8 +60,8 @@ class OnlineManager extends subscribable.Subscribable {
|
|
|
75
60
|
});
|
|
76
61
|
}
|
|
77
62
|
isOnline() {
|
|
78
|
-
if (typeof
|
|
79
|
-
return
|
|
63
|
+
if (typeof this.#online === 'boolean') {
|
|
64
|
+
return this.#online;
|
|
80
65
|
}
|
|
81
66
|
if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {
|
|
82
67
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onlineManager.js","sources":["../../src/onlineManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable {\n #online?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n window.addEventListener('online', listener, false)\n window.addEventListener('offline', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener)\n window.removeEventListener('offline', listener)\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n this.#online = online\n\n if (online) {\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.#online === 'boolean') {\n return this.#online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n"],"names":["
|
|
1
|
+
{"version":3,"file":"onlineManager.js","sources":["../../src/onlineManager.ts"],"sourcesContent":["import { Subscribable } from './subscribable'\nimport { isServer } from './utils'\n\ntype SetupFn = (\n setOnline: (online?: boolean) => void,\n) => (() => void) | undefined\n\nexport class OnlineManager extends Subscribable {\n #online?: boolean\n #cleanup?: () => void\n\n #setup: SetupFn\n\n constructor() {\n super()\n this.#setup = (onOnline) => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline()\n // Listen to online\n window.addEventListener('online', listener, false)\n window.addEventListener('offline', listener, false)\n\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener)\n window.removeEventListener('offline', listener)\n }\n }\n\n return\n }\n }\n\n protected onSubscribe(): void {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup)\n }\n }\n\n protected onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.()\n this.#cleanup = undefined\n }\n }\n\n setEventListener(setup: SetupFn): void {\n this.#setup = setup\n this.#cleanup?.()\n this.#cleanup = setup((online?: boolean) => {\n if (typeof online === 'boolean') {\n this.setOnline(online)\n } else {\n this.onOnline()\n }\n })\n }\n\n setOnline(online?: boolean): void {\n this.#online = online\n\n if (online) {\n this.onOnline()\n }\n }\n\n onOnline(): void {\n this.listeners.forEach((listener) => {\n listener()\n })\n }\n\n isOnline(): boolean {\n if (typeof this.#online === 'boolean') {\n return this.#online\n }\n\n if (\n typeof navigator === 'undefined' ||\n typeof navigator.onLine === 'undefined'\n ) {\n return true\n }\n\n return navigator.onLine\n }\n}\n\nexport const onlineManager = new OnlineManager()\n"],"names":["OnlineManager","Subscribable","constructor","onOnline","isServer","window","addEventListener","listener","removeEventListener","onSubscribe","setEventListener","onUnsubscribe","hasListeners","undefined","setup","online","setOnline","listeners","forEach","isOnline","navigator","onLine","onlineManager"],"mappings":";;;;;AAOO,MAAMA,aAAa,SAASC,yBAAY,CAAC;AAC9C,EAAA,OAAO,CAAA;AACP,EAAA,QAAQ,CAAA;AAER,EAAA,MAAM,CAAA;AAENC,EAAAA,WAAWA,GAAG;AACZ,IAAA,KAAK,EAAE,CAAA;AACP,IAAA,IAAI,CAAC,MAAM,GAAIC,QAAQ,IAAK;AAC1B;AACA;AACA,MAAA,IAAI,CAACC,cAAQ,IAAIC,MAAM,CAACC,gBAAgB,EAAE;AACxC,QAAA,MAAMC,QAAQ,GAAGA,MAAMJ,QAAQ,EAAE,CAAA;AACjC;QACAE,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAClDF,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAEnD,QAAA,OAAO,MAAM;AACX;AACAF,UAAAA,MAAM,CAACG,mBAAmB,CAAC,QAAQ,EAAED,QAAQ,CAAC,CAAA;AAC9CF,UAAAA,MAAM,CAACG,mBAAmB,CAAC,SAAS,EAAED,QAAQ,CAAC,CAAA;SAChD,CAAA;AACH,OAAA;AAEA,MAAA,OAAA;KACD,CAAA;AACH,GAAA;AAEUE,EAAAA,WAAWA,GAAS;AAC5B,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,MAAA,IAAI,CAACC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACpC,KAAA;AACF,GAAA;AAEUC,EAAAA,aAAaA,GAAG;AACxB,IAAA,IAAI,CAAC,IAAI,CAACC,YAAY,EAAE,EAAE;AACxB,MAAA,IAAI,CAAC,QAAQ,IAAI,CAAA;AACjB,MAAA,IAAI,CAAC,QAAQ,GAAGC,SAAS,CAAA;AAC3B,KAAA;AACF,GAAA;EAEAH,gBAAgBA,CAACI,KAAc,EAAQ;AACrC,IAAA,IAAI,CAAC,MAAM,GAAGA,KAAK,CAAA;AACnB,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAA;AACjB,IAAA,IAAI,CAAC,QAAQ,GAAGA,KAAK,CAAEC,MAAgB,IAAK;AAC1C,MAAA,IAAI,OAAOA,MAAM,KAAK,SAAS,EAAE;AAC/B,QAAA,IAAI,CAACC,SAAS,CAACD,MAAM,CAAC,CAAA;AACxB,OAAC,MAAM;QACL,IAAI,CAACZ,QAAQ,EAAE,CAAA;AACjB,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAA;EAEAa,SAASA,CAACD,MAAgB,EAAQ;AAChC,IAAA,IAAI,CAAC,OAAO,GAAGA,MAAM,CAAA;AAErB,IAAA,IAAIA,MAAM,EAAE;MACV,IAAI,CAACZ,QAAQ,EAAE,CAAA;AACjB,KAAA;AACF,GAAA;AAEAA,EAAAA,QAAQA,GAAS;AACf,IAAA,IAAI,CAACc,SAAS,CAACC,OAAO,CAAEX,QAAQ,IAAK;AACnCA,MAAAA,QAAQ,EAAE,CAAA;AACZ,KAAC,CAAC,CAAA;AACJ,GAAA;AAEAY,EAAAA,QAAQA,GAAY;AAClB,IAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;MACrC,OAAO,IAAI,CAAC,OAAO,CAAA;AACrB,KAAA;IAEA,IACE,OAAOC,SAAS,KAAK,WAAW,IAChC,OAAOA,SAAS,CAACC,MAAM,KAAK,WAAW,EACvC;AACA,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;IAEA,OAAOD,SAAS,CAACC,MAAM,CAAA;AACzB,GAAA;AACF,CAAA;MAEaC,aAAa,GAAG,IAAItB,aAAa;;;;;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
4
3
|
var notifyManager = require('./notifyManager.js');
|
|
5
4
|
var queryObserver = require('./queryObserver.js');
|
|
6
5
|
var subscribable = require('./subscribable.js');
|
|
@@ -14,70 +13,30 @@ function replaceAt(array, index, value) {
|
|
|
14
13
|
copy[index] = value;
|
|
15
14
|
return copy;
|
|
16
15
|
}
|
|
17
|
-
var _client = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("client");
|
|
18
|
-
var _result = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("result");
|
|
19
|
-
var _queries = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("queries");
|
|
20
|
-
var _observers = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("observers");
|
|
21
|
-
var _options = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("options");
|
|
22
|
-
var _combinedResult = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("combinedResult");
|
|
23
|
-
var _setResult = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("setResult");
|
|
24
|
-
var _combineResult = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("combineResult");
|
|
25
|
-
var _findMatchingObservers = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("findMatchingObservers");
|
|
26
|
-
var _onUpdate = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("onUpdate");
|
|
27
|
-
var _notify = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("notify");
|
|
28
16
|
class QueriesObserver extends subscribable.Subscribable {
|
|
29
|
-
|
|
17
|
+
#client;
|
|
18
|
+
#result;
|
|
19
|
+
#queries;
|
|
20
|
+
#observers;
|
|
21
|
+
#options;
|
|
22
|
+
#combinedResult;
|
|
23
|
+
constructor(client, queries, options) {
|
|
30
24
|
super();
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Object.defineProperty(this, _combineResult, {
|
|
41
|
-
value: _combineResult2
|
|
42
|
-
});
|
|
43
|
-
Object.defineProperty(this, _setResult, {
|
|
44
|
-
value: _setResult2
|
|
45
|
-
});
|
|
46
|
-
Object.defineProperty(this, _client, {
|
|
47
|
-
writable: true,
|
|
48
|
-
value: void 0
|
|
49
|
-
});
|
|
50
|
-
Object.defineProperty(this, _result, {
|
|
51
|
-
writable: true,
|
|
52
|
-
value: void 0
|
|
53
|
-
});
|
|
54
|
-
Object.defineProperty(this, _queries, {
|
|
55
|
-
writable: true,
|
|
56
|
-
value: void 0
|
|
57
|
-
});
|
|
58
|
-
Object.defineProperty(this, _observers, {
|
|
59
|
-
writable: true,
|
|
60
|
-
value: void 0
|
|
61
|
-
});
|
|
62
|
-
Object.defineProperty(this, _options, {
|
|
63
|
-
writable: true,
|
|
64
|
-
value: void 0
|
|
65
|
-
});
|
|
66
|
-
Object.defineProperty(this, _combinedResult, {
|
|
67
|
-
writable: true,
|
|
68
|
-
value: void 0
|
|
69
|
-
});
|
|
70
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _client)[_client] = client;
|
|
71
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _queries)[_queries] = [];
|
|
72
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers] = [];
|
|
73
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _setResult)[_setResult]([]);
|
|
74
|
-
this.setQueries(_queries2, _options2);
|
|
25
|
+
this.#client = client;
|
|
26
|
+
this.#queries = [];
|
|
27
|
+
this.#observers = [];
|
|
28
|
+
this.#setResult([]);
|
|
29
|
+
this.setQueries(queries, options);
|
|
30
|
+
}
|
|
31
|
+
#setResult(value) {
|
|
32
|
+
this.#result = value;
|
|
33
|
+
this.#combinedResult = this.#combineResult(value);
|
|
75
34
|
}
|
|
76
35
|
onSubscribe() {
|
|
77
36
|
if (this.listeners.size === 1) {
|
|
78
|
-
|
|
37
|
+
this.#observers.forEach(observer => {
|
|
79
38
|
observer.subscribe(result => {
|
|
80
|
-
|
|
39
|
+
this.#onUpdate(observer, result);
|
|
81
40
|
});
|
|
82
41
|
});
|
|
83
42
|
}
|
|
@@ -89,16 +48,16 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
89
48
|
}
|
|
90
49
|
destroy() {
|
|
91
50
|
this.listeners = new Set();
|
|
92
|
-
|
|
51
|
+
this.#observers.forEach(observer => {
|
|
93
52
|
observer.destroy();
|
|
94
53
|
});
|
|
95
54
|
}
|
|
96
55
|
setQueries(queries, options, notifyOptions) {
|
|
97
|
-
|
|
98
|
-
|
|
56
|
+
this.#queries = queries;
|
|
57
|
+
this.#options = options;
|
|
99
58
|
notifyManager.notifyManager.batch(() => {
|
|
100
|
-
const prevObservers =
|
|
101
|
-
const newObserverMatches =
|
|
59
|
+
const prevObservers = this.#observers;
|
|
60
|
+
const newObserverMatches = this.#findMatchingObservers(this.#queries);
|
|
102
61
|
|
|
103
62
|
// set options for the new observers to notify of changes
|
|
104
63
|
newObserverMatches.forEach(match => match.observer.setOptions(match.defaultedQueryOptions, notifyOptions));
|
|
@@ -108,8 +67,8 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
108
67
|
if (prevObservers.length === newObservers.length && !hasIndexChange) {
|
|
109
68
|
return;
|
|
110
69
|
}
|
|
111
|
-
|
|
112
|
-
|
|
70
|
+
this.#observers = newObservers;
|
|
71
|
+
this.#setResult(newResult);
|
|
113
72
|
if (!this.hasListeners()) {
|
|
114
73
|
return;
|
|
115
74
|
}
|
|
@@ -118,26 +77,26 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
118
77
|
});
|
|
119
78
|
difference(newObservers, prevObservers).forEach(observer => {
|
|
120
79
|
observer.subscribe(result => {
|
|
121
|
-
|
|
80
|
+
this.#onUpdate(observer, result);
|
|
122
81
|
});
|
|
123
82
|
});
|
|
124
|
-
|
|
83
|
+
this.#notify();
|
|
125
84
|
});
|
|
126
85
|
}
|
|
127
86
|
getCurrentResult() {
|
|
128
|
-
return
|
|
87
|
+
return this.#combinedResult;
|
|
129
88
|
}
|
|
130
89
|
getQueries() {
|
|
131
|
-
return
|
|
90
|
+
return this.#observers.map(observer => observer.getCurrentQuery());
|
|
132
91
|
}
|
|
133
92
|
getObservers() {
|
|
134
|
-
return
|
|
93
|
+
return this.#observers;
|
|
135
94
|
}
|
|
136
95
|
getOptimisticResult(queries) {
|
|
137
|
-
const matches =
|
|
96
|
+
const matches = this.#findMatchingObservers(queries);
|
|
138
97
|
const result = matches.map(match => match.observer.getOptimisticResult(match.defaultedQueryOptions));
|
|
139
98
|
return [result, r => {
|
|
140
|
-
return
|
|
99
|
+
return this.#combineResult(r ?? result);
|
|
141
100
|
}, () => {
|
|
142
101
|
return matches.map((match, index) => {
|
|
143
102
|
const observerResult = result[index];
|
|
@@ -145,62 +104,57 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
145
104
|
});
|
|
146
105
|
}];
|
|
147
106
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
function _combineResult2(input) {
|
|
154
|
-
var _classPrivateFieldLoo;
|
|
155
|
-
const combine = (_classPrivateFieldLoo = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _options)[_options]) == null ? void 0 : _classPrivateFieldLoo.combine;
|
|
156
|
-
if (combine) {
|
|
157
|
-
return utils.replaceEqualDeep(_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _combinedResult)[_combinedResult], combine(input));
|
|
158
|
-
}
|
|
159
|
-
return input;
|
|
160
|
-
}
|
|
161
|
-
function _findMatchingObservers2(queries) {
|
|
162
|
-
const prevObservers = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers];
|
|
163
|
-
const prevObserversMap = new Map(prevObservers.map(observer => [observer.options.queryHash, observer]));
|
|
164
|
-
const defaultedQueryOptions = queries.map(options => _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _client)[_client].defaultQueryOptions(options));
|
|
165
|
-
const matchingObservers = defaultedQueryOptions.flatMap(defaultedOptions => {
|
|
166
|
-
const match = prevObserversMap.get(defaultedOptions.queryHash);
|
|
167
|
-
if (match != null) {
|
|
168
|
-
return [{
|
|
169
|
-
defaultedQueryOptions: defaultedOptions,
|
|
170
|
-
observer: match
|
|
171
|
-
}];
|
|
107
|
+
#combineResult(input) {
|
|
108
|
+
const combine = this.#options?.combine;
|
|
109
|
+
if (combine) {
|
|
110
|
+
return utils.replaceEqualDeep(this.#combinedResult, combine(input));
|
|
172
111
|
}
|
|
173
|
-
return
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
const
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
112
|
+
return input;
|
|
113
|
+
}
|
|
114
|
+
#findMatchingObservers(queries) {
|
|
115
|
+
const prevObservers = this.#observers;
|
|
116
|
+
const prevObserversMap = new Map(prevObservers.map(observer => [observer.options.queryHash, observer]));
|
|
117
|
+
const defaultedQueryOptions = queries.map(options => this.#client.defaultQueryOptions(options));
|
|
118
|
+
const matchingObservers = defaultedQueryOptions.flatMap(defaultedOptions => {
|
|
119
|
+
const match = prevObserversMap.get(defaultedOptions.queryHash);
|
|
120
|
+
if (match != null) {
|
|
121
|
+
return [{
|
|
122
|
+
defaultedQueryOptions: defaultedOptions,
|
|
123
|
+
observer: match
|
|
124
|
+
}];
|
|
125
|
+
}
|
|
126
|
+
return [];
|
|
127
|
+
});
|
|
128
|
+
const matchedQueryHashes = new Set(matchingObservers.map(match => match.defaultedQueryOptions.queryHash));
|
|
129
|
+
const unmatchedQueries = defaultedQueryOptions.filter(defaultedOptions => !matchedQueryHashes.has(defaultedOptions.queryHash));
|
|
130
|
+
const getObserver = options => {
|
|
131
|
+
const defaultedOptions = this.#client.defaultQueryOptions(options);
|
|
132
|
+
const currentObserver = this.#observers.find(o => o.options.queryHash === defaultedOptions.queryHash);
|
|
133
|
+
return currentObserver ?? new queryObserver.QueryObserver(this.#client, defaultedOptions);
|
|
186
134
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _notify)[_notify]();
|
|
135
|
+
const newOrReusedObservers = unmatchedQueries.map(options => {
|
|
136
|
+
return {
|
|
137
|
+
defaultedQueryOptions: options,
|
|
138
|
+
observer: getObserver(options)
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
const sortMatchesByOrderOfQueries = (a, b) => defaultedQueryOptions.indexOf(a.defaultedQueryOptions) - defaultedQueryOptions.indexOf(b.defaultedQueryOptions);
|
|
142
|
+
return matchingObservers.concat(newOrReusedObservers).sort(sortMatchesByOrderOfQueries);
|
|
196
143
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
144
|
+
#onUpdate(observer, result) {
|
|
145
|
+
const index = this.#observers.indexOf(observer);
|
|
146
|
+
if (index !== -1) {
|
|
147
|
+
this.#setResult(replaceAt(this.#result, index, result));
|
|
148
|
+
this.#notify();
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
#notify() {
|
|
152
|
+
notifyManager.notifyManager.batch(() => {
|
|
153
|
+
this.listeners.forEach(listener => {
|
|
154
|
+
listener(this.#result);
|
|
155
|
+
});
|
|
202
156
|
});
|
|
203
|
-
}
|
|
157
|
+
}
|
|
204
158
|
}
|
|
205
159
|
|
|
206
160
|
exports.QueriesObserver = QueriesObserver;
|