@tanstack/query-core 5.0.0-alpha.31 → 5.0.0-alpha.33
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/index.d.ts +1 -0
- package/build/lib/mutationObserver.esm.js +1 -1
- package/build/lib/mutationObserver.esm.js.map +1 -1
- package/build/lib/mutationObserver.js +1 -1
- package/build/lib/mutationObserver.js.map +1 -1
- package/build/lib/mutationObserver.mjs +1 -1
- package/build/lib/mutationObserver.mjs.map +1 -1
- package/build/lib/queriesObserver.d.ts +12 -5
- package/build/lib/queriesObserver.esm.js +52 -13
- package/build/lib/queriesObserver.esm.js.map +1 -1
- package/build/lib/queriesObserver.js +52 -13
- package/build/lib/queriesObserver.js.map +1 -1
- package/build/lib/queriesObserver.mjs +35 -13
- package/build/lib/queriesObserver.mjs.map +1 -1
- package/build/lib/queryObserver.esm.js +3 -3
- package/build/lib/queryObserver.esm.js.map +1 -1
- package/build/lib/queryObserver.js +3 -3
- package/build/lib/queryObserver.js.map +1 -1
- package/build/lib/queryObserver.mjs +3 -3
- package/build/lib/queryObserver.mjs.map +1 -1
- package/build/lib/subscribable.d.ts +1 -1
- package/build/lib/subscribable.esm.js +4 -4
- package/build/lib/subscribable.esm.js.map +1 -1
- package/build/lib/subscribable.js +4 -4
- package/build/lib/subscribable.js.map +1 -1
- package/build/lib/subscribable.mjs +4 -4
- package/build/lib/subscribable.mjs.map +1 -1
- package/build/umd/index.development.js +42 -21
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/mutationObserver.ts +1 -1
- package/src/queriesObserver.ts +66 -16
- package/src/queryObserver.ts +3 -3
- package/src/subscribable.ts +5 -5
- package/build/lib/focusManager.d.ts.map +0 -1
- package/build/lib/hydration.d.ts.map +0 -1
- package/build/lib/index.d.ts.map +0 -1
- package/build/lib/infiniteQueryBehavior.d.ts.map +0 -1
- package/build/lib/infiniteQueryObserver.d.ts.map +0 -1
- package/build/lib/mutation.d.ts.map +0 -1
- package/build/lib/mutationCache.d.ts.map +0 -1
- package/build/lib/mutationObserver.d.ts.map +0 -1
- package/build/lib/notifyManager.d.ts.map +0 -1
- package/build/lib/onlineManager.d.ts.map +0 -1
- package/build/lib/queriesObserver.d.ts.map +0 -1
- package/build/lib/query.d.ts.map +0 -1
- package/build/lib/queryCache.d.ts.map +0 -1
- package/build/lib/queryClient.d.ts.map +0 -1
- package/build/lib/queryObserver.d.ts.map +0 -1
- package/build/lib/removable.d.ts.map +0 -1
- package/build/lib/retryer.d.ts.map +0 -1
- package/build/lib/subscribable.d.ts.map +0 -1
- package/build/lib/tests/focusManager.test.d.ts.map +0 -1
- package/build/lib/tests/hydration.test.d.ts.map +0 -1
- package/build/lib/tests/infiniteQueryBehavior.test.d.ts.map +0 -1
- package/build/lib/tests/infiniteQueryObserver.test.d.ts.map +0 -1
- package/build/lib/tests/mutationCache.test.d.ts.map +0 -1
- package/build/lib/tests/mutationObserver.test.d.ts.map +0 -1
- package/build/lib/tests/mutations.test.d.ts.map +0 -1
- package/build/lib/tests/notifyManager.test.d.ts.map +0 -1
- package/build/lib/tests/onlineManager.test.d.ts.map +0 -1
- package/build/lib/tests/queriesObserver.test.d.ts.map +0 -1
- package/build/lib/tests/query.test.d.ts.map +0 -1
- package/build/lib/tests/queryCache.test.d.ts.map +0 -1
- package/build/lib/tests/queryClient.test.d.ts.map +0 -1
- package/build/lib/tests/queryObserver.test.d.ts.map +0 -1
- package/build/lib/tests/utils.d.ts.map +0 -1
- package/build/lib/tests/utils.test.d.ts.map +0 -1
- package/build/lib/types.d.ts.map +0 -1
- package/build/lib/utils.d.ts.map +0 -1
package/build/lib/index.d.ts
CHANGED
|
@@ -17,4 +17,5 @@ export * from './types';
|
|
|
17
17
|
export type { Query, QueryState } from './query';
|
|
18
18
|
export type { Mutation, MutationState } from './mutation';
|
|
19
19
|
export type { DehydrateOptions, DehydratedState, HydrateOptions, } from './hydration';
|
|
20
|
+
export type { QueriesObserverOptions } from './queriesObserver';
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -61,7 +61,7 @@ class MutationObserver extends Subscribable {
|
|
|
61
61
|
(_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo.setOptions(this.options);
|
|
62
62
|
}
|
|
63
63
|
onUnsubscribe() {
|
|
64
|
-
if (!this.
|
|
64
|
+
if (!this.hasListeners()) {
|
|
65
65
|
var _classPrivateFieldLoo2;
|
|
66
66
|
(_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo2.removeObserver(this);
|
|
67
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutationObserver.esm.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.listeners.length) {\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","constructor","client","options","undefined","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","listeners","length","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","hasListeners","onSuccess","data","context","onSettled","onError","error","forEach","listener"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutationObserver.esm.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","constructor","client","options","undefined","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","onSuccess","data","context","onSettled","onError","error","listeners","forEach","listener"],"mappings":"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"}
|
|
@@ -63,7 +63,7 @@ class MutationObserver extends subscribable.Subscribable {
|
|
|
63
63
|
(_classPrivateFieldLoo = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo.setOptions(this.options);
|
|
64
64
|
}
|
|
65
65
|
onUnsubscribe() {
|
|
66
|
-
if (!this.
|
|
66
|
+
if (!this.hasListeners()) {
|
|
67
67
|
var _classPrivateFieldLoo2;
|
|
68
68
|
(_classPrivateFieldLoo2 = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _currentMutation)[_currentMutation]) == null ? void 0 : _classPrivateFieldLoo2.removeObserver(this);
|
|
69
69
|
}
|
|
@@ -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.listeners.length) {\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":["_classPrivateFieldLooseKey","MutationObserver","Subscribable","constructor","client","options","undefined","_classPrivateFieldLooseBase","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","listeners","length","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","hasListeners","onSuccess","data","context","onSettled","onError","error","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":["_classPrivateFieldLooseKey","MutationObserver","Subscribable","constructor","client","options","undefined","_classPrivateFieldLooseBase","setOptions","bindMethods","mutate","bind","reset","prevOptions","defaultMutationOptions","shallowEqualObjects","getMutationCache","notify","type","mutation","observer","onUnsubscribe","hasListeners","removeObserver","onMutationUpdate","action","getCurrentResult","variables","build","addObserver","execute","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","onSuccess","data","context","onSettled","onError","error","listeners","forEach","listener"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutationObserver.mjs","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.
|
|
1
|
+
{"version":3,"file":"mutationObserver.mjs","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","state","getDefaultState","isPending","status","isSuccess","isError","isIdle","notifyManager","batch","onSuccess","data","context","onSettled","onError","error","listeners","forEach","listener"],"mappings":"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"}
|
|
@@ -4,17 +4,24 @@ import type { NotifyOptions } from './queryObserver';
|
|
|
4
4
|
import { QueryObserver } from './queryObserver';
|
|
5
5
|
import { Subscribable } from './subscribable';
|
|
6
6
|
declare type QueriesObserverListener = (result: QueryObserverResult[]) => void;
|
|
7
|
-
export
|
|
7
|
+
export interface QueriesObserverOptions<TCombinedResult = QueryObserverResult[]> {
|
|
8
|
+
combine?: (result: QueryObserverResult[]) => TCombinedResult;
|
|
9
|
+
}
|
|
10
|
+
export declare class QueriesObserver<TCombinedResult = QueryObserverResult[]> extends Subscribable<QueriesObserverListener> {
|
|
8
11
|
#private;
|
|
9
|
-
constructor(client: QueryClient, queries
|
|
12
|
+
constructor(client: QueryClient, queries: QueryObserverOptions[], options?: QueriesObserverOptions<TCombinedResult>);
|
|
10
13
|
protected onSubscribe(): void;
|
|
11
14
|
protected onUnsubscribe(): void;
|
|
12
15
|
destroy(): void;
|
|
13
|
-
setQueries(queries: QueryObserverOptions[], notifyOptions?: NotifyOptions): void;
|
|
14
|
-
getCurrentResult():
|
|
16
|
+
setQueries(queries: QueryObserverOptions[], options?: QueriesObserverOptions<TCombinedResult>, notifyOptions?: NotifyOptions): void;
|
|
17
|
+
getCurrentResult(): TCombinedResult;
|
|
15
18
|
getQueries(): import("./query").Query<unknown, Error, unknown, import("./types").QueryKey>[];
|
|
16
19
|
getObservers(): QueryObserver<unknown, Error, unknown, unknown, import("./types").QueryKey>[];
|
|
17
|
-
getOptimisticResult(queries: QueryObserverOptions[]):
|
|
20
|
+
getOptimisticResult(queries: QueryObserverOptions[]): [
|
|
21
|
+
rawResult: QueryObserverResult[],
|
|
22
|
+
combineResult: (r?: QueryObserverResult[]) => TCombinedResult,
|
|
23
|
+
trackResult: () => QueryObserverResult[]
|
|
24
|
+
];
|
|
18
25
|
}
|
|
19
26
|
export {};
|
|
20
27
|
//# sourceMappingURL=queriesObserver.d.ts.map
|
|
@@ -2,6 +2,7 @@ import { classPrivateFieldLooseBase as _classPrivateFieldLooseBase, classPrivate
|
|
|
2
2
|
import { notifyManager } from './notifyManager.esm.js';
|
|
3
3
|
import { QueryObserver } from './queryObserver.esm.js';
|
|
4
4
|
import { Subscribable } from './subscribable.esm.js';
|
|
5
|
+
import { replaceEqualDeep } from './utils.esm.js';
|
|
5
6
|
|
|
6
7
|
function difference(array1, array2) {
|
|
7
8
|
return array1.filter(x => array2.indexOf(x) === -1);
|
|
@@ -15,11 +16,15 @@ var _client = /*#__PURE__*/_classPrivateFieldLooseKey("client");
|
|
|
15
16
|
var _result = /*#__PURE__*/_classPrivateFieldLooseKey("result");
|
|
16
17
|
var _queries = /*#__PURE__*/_classPrivateFieldLooseKey("queries");
|
|
17
18
|
var _observers = /*#__PURE__*/_classPrivateFieldLooseKey("observers");
|
|
19
|
+
var _options = /*#__PURE__*/_classPrivateFieldLooseKey("options");
|
|
20
|
+
var _combinedResult = /*#__PURE__*/_classPrivateFieldLooseKey("combinedResult");
|
|
21
|
+
var _setResult = /*#__PURE__*/_classPrivateFieldLooseKey("setResult");
|
|
22
|
+
var _combineResult = /*#__PURE__*/_classPrivateFieldLooseKey("combineResult");
|
|
18
23
|
var _findMatchingObservers = /*#__PURE__*/_classPrivateFieldLooseKey("findMatchingObservers");
|
|
19
24
|
var _onUpdate = /*#__PURE__*/_classPrivateFieldLooseKey("onUpdate");
|
|
20
25
|
var _notify = /*#__PURE__*/_classPrivateFieldLooseKey("notify");
|
|
21
26
|
class QueriesObserver extends Subscribable {
|
|
22
|
-
constructor(client, _queries2) {
|
|
27
|
+
constructor(client, _queries2, _options2) {
|
|
23
28
|
super();
|
|
24
29
|
Object.defineProperty(this, _notify, {
|
|
25
30
|
value: _notify2
|
|
@@ -30,6 +35,12 @@ class QueriesObserver extends Subscribable {
|
|
|
30
35
|
Object.defineProperty(this, _findMatchingObservers, {
|
|
31
36
|
value: _findMatchingObservers2
|
|
32
37
|
});
|
|
38
|
+
Object.defineProperty(this, _combineResult, {
|
|
39
|
+
value: _combineResult2
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(this, _setResult, {
|
|
42
|
+
value: _setResult2
|
|
43
|
+
});
|
|
33
44
|
Object.defineProperty(this, _client, {
|
|
34
45
|
writable: true,
|
|
35
46
|
value: void 0
|
|
@@ -46,16 +57,22 @@ class QueriesObserver extends Subscribable {
|
|
|
46
57
|
writable: true,
|
|
47
58
|
value: void 0
|
|
48
59
|
});
|
|
60
|
+
Object.defineProperty(this, _options, {
|
|
61
|
+
writable: true,
|
|
62
|
+
value: void 0
|
|
63
|
+
});
|
|
64
|
+
Object.defineProperty(this, _combinedResult, {
|
|
65
|
+
writable: true,
|
|
66
|
+
value: void 0
|
|
67
|
+
});
|
|
49
68
|
_classPrivateFieldLooseBase(this, _client)[_client] = client;
|
|
50
69
|
_classPrivateFieldLooseBase(this, _queries)[_queries] = [];
|
|
51
|
-
_classPrivateFieldLooseBase(this, _result)[_result] = [];
|
|
52
70
|
_classPrivateFieldLooseBase(this, _observers)[_observers] = [];
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
71
|
+
_classPrivateFieldLooseBase(this, _setResult)[_setResult]([]);
|
|
72
|
+
this.setQueries(_queries2, _options2);
|
|
56
73
|
}
|
|
57
74
|
onSubscribe() {
|
|
58
|
-
if (this.listeners.
|
|
75
|
+
if (this.listeners.size === 1) {
|
|
59
76
|
_classPrivateFieldLooseBase(this, _observers)[_observers].forEach(observer => {
|
|
60
77
|
observer.subscribe(result => {
|
|
61
78
|
_classPrivateFieldLooseBase(this, _onUpdate)[_onUpdate](observer, result);
|
|
@@ -64,18 +81,19 @@ class QueriesObserver extends Subscribable {
|
|
|
64
81
|
}
|
|
65
82
|
}
|
|
66
83
|
onUnsubscribe() {
|
|
67
|
-
if (!this.listeners.
|
|
84
|
+
if (!this.listeners.size) {
|
|
68
85
|
this.destroy();
|
|
69
86
|
}
|
|
70
87
|
}
|
|
71
88
|
destroy() {
|
|
72
|
-
this.listeners =
|
|
89
|
+
this.listeners = new Set();
|
|
73
90
|
_classPrivateFieldLooseBase(this, _observers)[_observers].forEach(observer => {
|
|
74
91
|
observer.destroy();
|
|
75
92
|
});
|
|
76
93
|
}
|
|
77
|
-
setQueries(queries, notifyOptions) {
|
|
94
|
+
setQueries(queries, options, notifyOptions) {
|
|
78
95
|
_classPrivateFieldLooseBase(this, _queries)[_queries] = queries;
|
|
96
|
+
_classPrivateFieldLooseBase(this, _options)[_options] = options;
|
|
79
97
|
notifyManager.batch(() => {
|
|
80
98
|
const prevObservers = _classPrivateFieldLooseBase(this, _observers)[_observers];
|
|
81
99
|
const newObserverMatches = _classPrivateFieldLooseBase(this, _findMatchingObservers)[_findMatchingObservers](_classPrivateFieldLooseBase(this, _queries)[_queries]);
|
|
@@ -89,7 +107,7 @@ class QueriesObserver extends Subscribable {
|
|
|
89
107
|
return;
|
|
90
108
|
}
|
|
91
109
|
_classPrivateFieldLooseBase(this, _observers)[_observers] = newObservers;
|
|
92
|
-
_classPrivateFieldLooseBase(this,
|
|
110
|
+
_classPrivateFieldLooseBase(this, _setResult)[_setResult](newResult);
|
|
93
111
|
if (!this.hasListeners()) {
|
|
94
112
|
return;
|
|
95
113
|
}
|
|
@@ -105,7 +123,7 @@ class QueriesObserver extends Subscribable {
|
|
|
105
123
|
});
|
|
106
124
|
}
|
|
107
125
|
getCurrentResult() {
|
|
108
|
-
return _classPrivateFieldLooseBase(this,
|
|
126
|
+
return _classPrivateFieldLooseBase(this, _combinedResult)[_combinedResult];
|
|
109
127
|
}
|
|
110
128
|
getQueries() {
|
|
111
129
|
return _classPrivateFieldLooseBase(this, _observers)[_observers].map(observer => observer.getCurrentQuery());
|
|
@@ -114,8 +132,29 @@ class QueriesObserver extends Subscribable {
|
|
|
114
132
|
return _classPrivateFieldLooseBase(this, _observers)[_observers];
|
|
115
133
|
}
|
|
116
134
|
getOptimisticResult(queries) {
|
|
117
|
-
|
|
135
|
+
const matches = _classPrivateFieldLooseBase(this, _findMatchingObservers)[_findMatchingObservers](queries);
|
|
136
|
+
const result = matches.map(match => match.observer.getOptimisticResult(match.defaultedQueryOptions));
|
|
137
|
+
return [result, r => {
|
|
138
|
+
return _classPrivateFieldLooseBase(this, _combineResult)[_combineResult](r != null ? r : result);
|
|
139
|
+
}, () => {
|
|
140
|
+
return matches.map((match, index) => {
|
|
141
|
+
const observerResult = result[index];
|
|
142
|
+
return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult) : observerResult;
|
|
143
|
+
});
|
|
144
|
+
}];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function _setResult2(value) {
|
|
148
|
+
_classPrivateFieldLooseBase(this, _result)[_result] = value;
|
|
149
|
+
_classPrivateFieldLooseBase(this, _combinedResult)[_combinedResult] = _classPrivateFieldLooseBase(this, _combineResult)[_combineResult](value);
|
|
150
|
+
}
|
|
151
|
+
function _combineResult2(input) {
|
|
152
|
+
var _classPrivateFieldLoo;
|
|
153
|
+
const combine = (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _options)[_options]) == null ? void 0 : _classPrivateFieldLoo.combine;
|
|
154
|
+
if (combine) {
|
|
155
|
+
return replaceEqualDeep(_classPrivateFieldLooseBase(this, _combinedResult)[_combinedResult], combine(input));
|
|
118
156
|
}
|
|
157
|
+
return input;
|
|
119
158
|
}
|
|
120
159
|
function _findMatchingObservers2(queries) {
|
|
121
160
|
const prevObservers = _classPrivateFieldLooseBase(this, _observers)[_observers];
|
|
@@ -150,7 +189,7 @@ function _findMatchingObservers2(queries) {
|
|
|
150
189
|
function _onUpdate2(observer, result) {
|
|
151
190
|
const index = _classPrivateFieldLooseBase(this, _observers)[_observers].indexOf(observer);
|
|
152
191
|
if (index !== -1) {
|
|
153
|
-
_classPrivateFieldLooseBase(this,
|
|
192
|
+
_classPrivateFieldLooseBase(this, _setResult)[_setResult](replaceAt(_classPrivateFieldLooseBase(this, _result)[_result], index, result));
|
|
154
193
|
_classPrivateFieldLooseBase(this, _notify)[_notify]();
|
|
155
194
|
}
|
|
156
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queriesObserver.esm.js","sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\n\nfunction difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nfunction replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport class QueriesObserver extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result: QueryObserverResult[]\n #queries: QueryObserverOptions[]\n #observers: QueryObserver[]\n\n constructor(client: QueryClient, queries?: QueryObserverOptions[]) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#result = []\n this.#observers = []\n\n if (queries) {\n this.setQueries(queries)\n }\n }\n\n protected onSubscribe(): void {\n if (this.listeners.length === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.length) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = []\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#result = newResult\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): QueryObserverResult[] {\n return this.#result\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(queries: QueryObserverOptions[]): QueryObserverResult[] {\n return this.#findMatchingObservers(queries).map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n }\n\n #findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.#observers\n const prevObserversMap = new Map(\n prevObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const defaultedQueryOptions = queries.map((options) =>\n this.#client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = new Set(\n matchingObservers.map((match) => match.defaultedQueryOptions.queryHash),\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const currentObserver = this.#observers.find(\n (o) => o.options.queryHash === defaultedOptions.queryHash,\n )\n return (\n currentObserver ?? new QueryObserver(this.#client, defaultedOptions)\n )\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result)\n this.#notify()\n }\n }\n\n #notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"names":["difference","array1","array2","filter","x","indexOf","replaceAt","array","index","value","copy","slice","QueriesObserver","Subscribable","constructor","client","queries","setQueries","onSubscribe","listeners","length","forEach","observer","subscribe","result","onUnsubscribe","destroy","notifyOptions","notifyManager","batch","prevObservers","newObserverMatches","match","setOptions","defaultedQueryOptions","newObservers","map","newResult","getCurrentResult","hasIndexChange","some","hasListeners","getQueries","getCurrentQuery","getObservers","getOptimisticResult","prevObserversMap","Map","options","queryHash","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","get","matchedQueryHashes","Set","unmatchedQueries","has","getObserver","currentObserver","find","o","QueryObserver","newOrReusedObservers","sortMatchesByOrderOfQueries","a","b","concat","sort","listener"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queriesObserver.esm.js","sources":["../../src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport type {\n QueryObserverOptions,\n QueryObserverResult,\n DefaultedQueryObserverOptions,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep } from './utils'\n\nfunction difference<T>(array1: T[], array2: T[]): T[] {\n return array1.filter((x) => array2.indexOf(x) === -1)\n}\n\nfunction replaceAt<T>(array: T[], index: number, value: T): T[] {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: QueryObserverResult[]) => void\n\nexport interface QueriesObserverOptions<\n TCombinedResult = QueryObserverResult[],\n> {\n combine?: (result: QueryObserverResult[]) => TCombinedResult\n}\n\nexport class QueriesObserver<\n TCombinedResult = QueryObserverResult[],\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: QueryObserverResult[]\n #queries: QueryObserverOptions[]\n #observers: QueryObserver[]\n #options?: QueriesObserverOptions<TCombinedResult>\n #combinedResult!: TCombinedResult\n\n constructor(\n client: QueryClient,\n queries: QueryObserverOptions[],\n options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#observers = []\n\n this.#setResult([])\n this.setQueries(queries, options)\n }\n\n #setResult(value: QueryObserverResult[]) {\n this.#result = value\n this.#combinedResult = this.#combineResult(value)\n }\n\n protected onSubscribe(): void {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n }\n }\n\n protected onUnsubscribe(): void {\n if (!this.listeners.size) {\n this.destroy()\n }\n }\n\n destroy(): void {\n this.listeners = new Set()\n this.#observers.forEach((observer) => {\n observer.destroy()\n })\n }\n\n setQueries(\n queries: QueryObserverOptions[],\n options?: QueriesObserverOptions<TCombinedResult>,\n notifyOptions?: NotifyOptions,\n ): void {\n this.#queries = queries\n this.#options = options\n\n notifyManager.batch(() => {\n const prevObservers = this.#observers\n\n const newObserverMatches = this.#findMatchingObservers(this.#queries)\n\n // set options for the new observers to notify of changes\n newObserverMatches.forEach((match) =>\n match.observer.setOptions(match.defaultedQueryOptions, notifyOptions),\n )\n\n const newObservers = newObserverMatches.map((match) => match.observer)\n const newResult = newObservers.map((observer) =>\n observer.getCurrentResult(),\n )\n\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index],\n )\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return\n }\n\n this.#observers = newObservers\n this.#setResult(newResult)\n\n if (!this.hasListeners()) {\n return\n }\n\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy()\n })\n\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result)\n })\n })\n\n this.#notify()\n })\n }\n\n getCurrentResult(): TCombinedResult {\n return this.#combinedResult\n }\n\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery())\n }\n\n getObservers() {\n return this.#observers\n }\n\n getOptimisticResult(\n queries: QueryObserverOptions[],\n ): [\n rawResult: QueryObserverResult[],\n combineResult: (r?: QueryObserverResult[]) => TCombinedResult,\n trackResult: () => QueryObserverResult[],\n ] {\n const matches = this.#findMatchingObservers(queries)\n const result = matches.map((match) =>\n match.observer.getOptimisticResult(match.defaultedQueryOptions),\n )\n\n return [\n result,\n (r?: QueryObserverResult[]) => {\n return this.#combineResult(r ?? result)\n },\n () => {\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult)\n : observerResult\n })\n },\n ]\n }\n\n #combineResult(input: QueryObserverResult[]): TCombinedResult {\n const combine = this.#options?.combine\n if (combine) {\n return replaceEqualDeep(this.#combinedResult, combine(input))\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: QueryObserverOptions[],\n ): QueryObserverMatch[] {\n const prevObservers = this.#observers\n const prevObserversMap = new Map(\n prevObservers.map((observer) => [observer.options.queryHash, observer]),\n )\n\n const defaultedQueryOptions = queries.map((options) =>\n this.#client.defaultQueryOptions(options),\n )\n\n const matchingObservers: QueryObserverMatch[] =\n defaultedQueryOptions.flatMap((defaultedOptions) => {\n const match = prevObserversMap.get(defaultedOptions.queryHash)\n if (match != null) {\n return [{ defaultedQueryOptions: defaultedOptions, observer: match }]\n }\n return []\n })\n\n const matchedQueryHashes = new Set(\n matchingObservers.map((match) => match.defaultedQueryOptions.queryHash),\n )\n const unmatchedQueries = defaultedQueryOptions.filter(\n (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash),\n )\n\n const getObserver = (options: QueryObserverOptions): QueryObserver => {\n const defaultedOptions = this.#client.defaultQueryOptions(options)\n const currentObserver = this.#observers.find(\n (o) => o.options.queryHash === defaultedOptions.queryHash,\n )\n return (\n currentObserver ?? new QueryObserver(this.#client, defaultedOptions)\n )\n }\n\n const newOrReusedObservers: QueryObserverMatch[] = unmatchedQueries.map(\n (options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\n }\n },\n )\n\n const sortMatchesByOrderOfQueries = (\n a: QueryObserverMatch,\n b: QueryObserverMatch,\n ): number =>\n defaultedQueryOptions.indexOf(a.defaultedQueryOptions) -\n defaultedQueryOptions.indexOf(b.defaultedQueryOptions)\n\n return matchingObservers\n .concat(newOrReusedObservers)\n .sort(sortMatchesByOrderOfQueries)\n }\n\n #onUpdate(observer: QueryObserver, result: QueryObserverResult): void {\n const index = this.#observers.indexOf(observer)\n if (index !== -1) {\n this.#setResult(replaceAt(this.#result, index, result))\n this.#notify()\n }\n }\n\n #notify(): void {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result)\n })\n })\n }\n}\n\ntype QueryObserverMatch = {\n defaultedQueryOptions: DefaultedQueryObserverOptions\n observer: QueryObserver\n}\n"],"names":["difference","array1","array2","filter","x","indexOf","replaceAt","array","index","value","copy","slice","QueriesObserver","Subscribable","constructor","client","queries","options","setQueries","onSubscribe","listeners","size","forEach","observer","subscribe","result","onUnsubscribe","destroy","Set","notifyOptions","notifyManager","batch","prevObservers","newObserverMatches","match","setOptions","defaultedQueryOptions","newObservers","map","newResult","getCurrentResult","hasIndexChange","some","length","hasListeners","getQueries","getCurrentQuery","getObservers","getOptimisticResult","matches","r","observerResult","notifyOnChangeProps","trackResult","input","combine","replaceEqualDeep","prevObserversMap","Map","queryHash","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","get","matchedQueryHashes","unmatchedQueries","has","getObserver","currentObserver","find","o","QueryObserver","newOrReusedObservers","sortMatchesByOrderOfQueries","a","b","concat","sort","listener"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js
|
|
|
4
4
|
var notifyManager = require('./notifyManager.js');
|
|
5
5
|
var queryObserver = require('./queryObserver.js');
|
|
6
6
|
var subscribable = require('./subscribable.js');
|
|
7
|
+
var utils = require('./utils.js');
|
|
7
8
|
|
|
8
9
|
function difference(array1, array2) {
|
|
9
10
|
return array1.filter(x => array2.indexOf(x) === -1);
|
|
@@ -17,11 +18,15 @@ var _client = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("
|
|
|
17
18
|
var _result = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("result");
|
|
18
19
|
var _queries = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("queries");
|
|
19
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");
|
|
20
25
|
var _findMatchingObservers = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("findMatchingObservers");
|
|
21
26
|
var _onUpdate = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("onUpdate");
|
|
22
27
|
var _notify = /*#__PURE__*/_rollupPluginBabelHelpers.classPrivateFieldLooseKey("notify");
|
|
23
28
|
class QueriesObserver extends subscribable.Subscribable {
|
|
24
|
-
constructor(client, _queries2) {
|
|
29
|
+
constructor(client, _queries2, _options2) {
|
|
25
30
|
super();
|
|
26
31
|
Object.defineProperty(this, _notify, {
|
|
27
32
|
value: _notify2
|
|
@@ -32,6 +37,12 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
32
37
|
Object.defineProperty(this, _findMatchingObservers, {
|
|
33
38
|
value: _findMatchingObservers2
|
|
34
39
|
});
|
|
40
|
+
Object.defineProperty(this, _combineResult, {
|
|
41
|
+
value: _combineResult2
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(this, _setResult, {
|
|
44
|
+
value: _setResult2
|
|
45
|
+
});
|
|
35
46
|
Object.defineProperty(this, _client, {
|
|
36
47
|
writable: true,
|
|
37
48
|
value: void 0
|
|
@@ -48,16 +59,22 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
48
59
|
writable: true,
|
|
49
60
|
value: void 0
|
|
50
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
|
+
});
|
|
51
70
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _client)[_client] = client;
|
|
52
71
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _queries)[_queries] = [];
|
|
53
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _result)[_result] = [];
|
|
54
72
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers] = [];
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
73
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _setResult)[_setResult]([]);
|
|
74
|
+
this.setQueries(_queries2, _options2);
|
|
58
75
|
}
|
|
59
76
|
onSubscribe() {
|
|
60
|
-
if (this.listeners.
|
|
77
|
+
if (this.listeners.size === 1) {
|
|
61
78
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].forEach(observer => {
|
|
62
79
|
observer.subscribe(result => {
|
|
63
80
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _onUpdate)[_onUpdate](observer, result);
|
|
@@ -66,18 +83,19 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
66
83
|
}
|
|
67
84
|
}
|
|
68
85
|
onUnsubscribe() {
|
|
69
|
-
if (!this.listeners.
|
|
86
|
+
if (!this.listeners.size) {
|
|
70
87
|
this.destroy();
|
|
71
88
|
}
|
|
72
89
|
}
|
|
73
90
|
destroy() {
|
|
74
|
-
this.listeners =
|
|
91
|
+
this.listeners = new Set();
|
|
75
92
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].forEach(observer => {
|
|
76
93
|
observer.destroy();
|
|
77
94
|
});
|
|
78
95
|
}
|
|
79
|
-
setQueries(queries, notifyOptions) {
|
|
96
|
+
setQueries(queries, options, notifyOptions) {
|
|
80
97
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _queries)[_queries] = queries;
|
|
98
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _options)[_options] = options;
|
|
81
99
|
notifyManager.notifyManager.batch(() => {
|
|
82
100
|
const prevObservers = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers];
|
|
83
101
|
const newObserverMatches = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _findMatchingObservers)[_findMatchingObservers](_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _queries)[_queries]);
|
|
@@ -91,7 +109,7 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
91
109
|
return;
|
|
92
110
|
}
|
|
93
111
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers] = newObservers;
|
|
94
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this,
|
|
112
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _setResult)[_setResult](newResult);
|
|
95
113
|
if (!this.hasListeners()) {
|
|
96
114
|
return;
|
|
97
115
|
}
|
|
@@ -107,7 +125,7 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
107
125
|
});
|
|
108
126
|
}
|
|
109
127
|
getCurrentResult() {
|
|
110
|
-
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this,
|
|
128
|
+
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _combinedResult)[_combinedResult];
|
|
111
129
|
}
|
|
112
130
|
getQueries() {
|
|
113
131
|
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].map(observer => observer.getCurrentQuery());
|
|
@@ -116,8 +134,29 @@ class QueriesObserver extends subscribable.Subscribable {
|
|
|
116
134
|
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers];
|
|
117
135
|
}
|
|
118
136
|
getOptimisticResult(queries) {
|
|
119
|
-
|
|
137
|
+
const matches = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _findMatchingObservers)[_findMatchingObservers](queries);
|
|
138
|
+
const result = matches.map(match => match.observer.getOptimisticResult(match.defaultedQueryOptions));
|
|
139
|
+
return [result, r => {
|
|
140
|
+
return _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _combineResult)[_combineResult](r != null ? r : result);
|
|
141
|
+
}, () => {
|
|
142
|
+
return matches.map((match, index) => {
|
|
143
|
+
const observerResult = result[index];
|
|
144
|
+
return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult) : observerResult;
|
|
145
|
+
});
|
|
146
|
+
}];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function _setResult2(value) {
|
|
150
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _result)[_result] = value;
|
|
151
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _combinedResult)[_combinedResult] = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _combineResult)[_combineResult](value);
|
|
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));
|
|
120
158
|
}
|
|
159
|
+
return input;
|
|
121
160
|
}
|
|
122
161
|
function _findMatchingObservers2(queries) {
|
|
123
162
|
const prevObservers = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers];
|
|
@@ -152,7 +191,7 @@ function _findMatchingObservers2(queries) {
|
|
|
152
191
|
function _onUpdate2(observer, result) {
|
|
153
192
|
const index = _rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _observers)[_observers].indexOf(observer);
|
|
154
193
|
if (index !== -1) {
|
|
155
|
-
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this,
|
|
194
|
+
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _setResult)[_setResult](replaceAt(_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _result)[_result], index, result));
|
|
156
195
|
_rollupPluginBabelHelpers.classPrivateFieldLooseBase(this, _notify)[_notify]();
|
|
157
196
|
}
|
|
158
197
|
}
|