1 line
20 KiB
JSON
1 line
20 KiB
JSON
{"ast":null,"code":"// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep } from \"./utils.js\";\nfunction difference(array1, array2) {\n return array1.filter(x => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n constructor(client, queries, _options) {\n super();\n this.#client = client;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\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 onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */new Set();\n this.#observers.forEach(observer => {\n observer.destroy();\n });\n }\n setQueries(queries, _options, notifyOptions) {\n this.#queries = queries;\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(match => match.observer.setOptions(match.defaultedQueryOptions, notifyOptions));\n const newObservers = newObserverMatches.map(match => match.observer);\n const newResult = newObservers.map(observer => observer.getCurrentResult());\n const hasIndexChange = newObservers.some((observer, index) => observer !== prevObservers[index]);\n if (prevObservers.length === newObservers.length && !hasIndexChange) {\n return;\n }\n this.#observers = newObservers;\n this.#result = newResult;\n if (!this.hasListeners()) {\n return;\n }\n difference(prevObservers, newObservers).forEach(observer => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach(observer => {\n observer.subscribe(result => {\n this.#onUpdate(observer, result);\n });\n });\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map(observer => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(match => match.observer.getOptimisticResult(match.defaultedQueryOptions));\n return [result, r => {\n return this.#combineResult(r ?? result, combine);\n }, () => {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, accessedProp => {\n matches.forEach(m => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }];\n }\n #combineResult(input, combine) {\n if (combine) {\n if (!this.#combinedResult || this.#result !== this.#lastResult || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n this.#combinedResult = replaceEqualDeep(this.#combinedResult, combine(input));\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObservers = this.#observers;\n const prevObserversMap = new Map(prevObservers.map(observer => [observer.options.queryHash, observer]));\n const defaultedQueryOptions = queries.map(options => this.#client.defaultQueryOptions(options));\n const matchingObservers = defaultedQueryOptions.flatMap(defaultedOptions => {\n const match = prevObserversMap.get(defaultedOptions.queryHash);\n if (match != null) {\n return [{\n defaultedQueryOptions: defaultedOptions,\n observer: match\n }];\n }\n return [];\n });\n const matchedQueryHashes = new Set(matchingObservers.map(match => match.defaultedQueryOptions.queryHash));\n const unmatchedQueries = defaultedQueryOptions.filter(defaultedOptions => !matchedQueryHashes.has(defaultedOptions.queryHash));\n const getObserver = options => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const currentObserver = this.#observers.find(o => o.options.queryHash === defaultedOptions.queryHash);\n return currentObserver ?? new QueryObserver(this.#client, defaultedOptions);\n };\n const newOrReusedObservers = unmatchedQueries.map(options => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options)\n };\n });\n const sortMatchesByOrderOfQueries = (a, b) => defaultedQueryOptions.indexOf(a.defaultedQueryOptions) - defaultedQueryOptions.indexOf(b.defaultedQueryOptions);\n return matchingObservers.concat(newOrReusedObservers).sort(sortMatchesByOrderOfQueries);\n }\n #onUpdate(observer, result) {\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 #notify() {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(this.#result);\n });\n });\n }\n};\nexport { QueriesObserver };","map":{"version":3,"names":["notifyManager","QueryObserver","Subscribable","replaceEqualDeep","difference","array1","array2","filter","x","includes","replaceAt","array","index","value","copy","slice","QueriesObserver","client","result","queries","observers","combinedResult","lastCombine","lastResult","constructor","_options","setQueries","onSubscribe","listeners","size","forEach","observer","subscribe","onUpdate","onUnsubscribe","destroy","Set","notifyOptions","batch","prevObservers","newObserverMatches","findMatchingObservers","match","setOptions","defaultedQueryOptions","newObservers","map","newResult","getCurrentResult","hasIndexChange","some","length","hasListeners","notify","getQueries","getCurrentQuery","getObservers","getOptimisticResult","combine","matches","r","combineResult","observerResult","notifyOnChangeProps","trackResult","accessedProp","m","trackProp","#combineResult","input","#findMatchingObservers","prevObserversMap","Map","options","queryHash","defaultQueryOptions","matchingObservers","flatMap","defaultedOptions","get","matchedQueryHashes","unmatchedQueries","has","getObserver","currentObserver","find","o","newOrReusedObservers","sortMatchesByOrderOfQueries","a","b","indexOf","concat","sort","#onUpdate","#notify","listener"],"sources":["/Users/shoofle/Projects/the-forest/client/node_modules/@tanstack/query-core/src/queriesObserver.ts"],"sourcesContent":["import { notifyManager } from './notifyManager'\nimport { QueryObserver } from './queryObserver'\nimport { Subscribable } from './subscribable'\nimport { replaceEqualDeep } from './utils'\nimport type {\n DefaultedQueryObserverOptions,\n QueryObserverOptions,\n QueryObserverResult,\n} from './types'\nimport type { QueryClient } from './queryClient'\nimport type { NotifyOptions } from './queryObserver'\n\nfunction difference<T>(array1: Array<T>, array2: Array<T>): Array<T> {\n return array1.filter((x) => !array2.includes(x))\n}\n\nfunction replaceAt<T>(array: Array<T>, index: number, value: T): Array<T> {\n const copy = array.slice(0)\n copy[index] = value\n return copy\n}\n\ntype QueriesObserverListener = (result: Array<QueryObserverResult>) => void\n\ntype CombineFn<TCombinedResult> = (\n result: Array<QueryObserverResult>,\n) => TCombinedResult\n\nexport interface QueriesObserverOptions<\n TCombinedResult = Array<QueryObserverResult>,\n> {\n combine?: CombineFn<TCombinedResult>\n}\n\nexport class QueriesObserver<\n TCombinedResult = Array<QueryObserverResult>,\n> extends Subscribable<QueriesObserverListener> {\n #client: QueryClient\n #result!: Array<QueryObserverResult>\n #queries: Array<QueryObserverOptions>\n #observers: Array<QueryObserver>\n #combinedResult?: TCombinedResult\n #lastCombine?: CombineFn<TCombinedResult>\n #lastResult?: Array<QueryObserverResult>\n\n constructor(\n client: QueryClient,\n queries: Array<QueryObserverOptions<any, any, any, any, any>>,\n _options?: QueriesObserverOptions<TCombinedResult>,\n ) {\n super()\n\n this.#client = client\n this.#queries = []\n this.#observers = []\n this.#result = []\n\n this.setQueries(queries)\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: Array<QueryObserverOptions>,\n _options?: QueriesObserverOptions<TCombinedResult>,\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\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(): Array<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(\n queries: Array<QueryObserverOptions>,\n combine: CombineFn<TCombinedResult> | undefined,\n ): [\n rawResult: Array<QueryObserverResult>,\n combineResult: (r?: Array<QueryObserverResult>) => TCombinedResult,\n trackResult: () => Array<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?: Array<QueryObserverResult>) => {\n return this.#combineResult(r ?? result, combine)\n },\n () => {\n return matches.map((match, index) => {\n const observerResult = result[index]!\n return !match.defaultedQueryOptions.notifyOnChangeProps\n ? match.observer.trackResult(observerResult, (accessedProp) => {\n // track property on all observers to ensure proper (synchronized) tracking (#7000)\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp)\n })\n })\n : observerResult\n })\n },\n ]\n }\n\n #combineResult(\n input: Array<QueryObserverResult>,\n combine: CombineFn<TCombinedResult> | undefined,\n ): TCombinedResult {\n if (combine) {\n if (\n !this.#combinedResult ||\n this.#result !== this.#lastResult ||\n combine !== this.#lastCombine\n ) {\n this.#lastCombine = combine\n this.#lastResult = this.#result\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input),\n )\n }\n\n return this.#combinedResult\n }\n return input as any\n }\n\n #findMatchingObservers(\n queries: Array<QueryObserverOptions>,\n ): Array<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: Array<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: Array<QueryObserverMatch> =\n unmatchedQueries.map((options) => {\n return {\n defaultedQueryOptions: options,\n observer: getObserver(options),\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"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |