PHP 7.4.33
Preview: queriesObserver.js Size: 5.69 KB
/var/www/gtechmarathon2026.bitkit.dk/httpdocs/node_modules/@tanstack/query-core/build/modern/queriesObserver.js
// src/queriesObserver.ts
import { notifyManager } from "./notifyManager.js";
import { QueryObserver } from "./queryObserver.js";
import { Subscribable } from "./subscribable.js";
import { replaceEqualDeep } from "./utils.js";
function difference(array1, array2) {
  const excludeSet = new Set(array2);
  return array1.filter((x) => !excludeSet.has(x));
}
function replaceAt(array, index, value) {
  const copy = array.slice(0);
  copy[index] = value;
  return copy;
}
var QueriesObserver = class extends Subscribable {
  #client;
  #result;
  #queries;
  #options;
  #observers;
  #combinedResult;
  #lastCombine;
  #lastResult;
  #observerMatches = [];
  constructor(client, queries, options) {
    super();
    this.#client = client;
    this.#options = options;
    this.#queries = [];
    this.#observers = [];
    this.#result = [];
    this.setQueries(queries);
  }
  onSubscribe() {
    if (this.listeners.size === 1) {
      this.#observers.forEach((observer) => {
        observer.subscribe((result) => {
          this.#onUpdate(observer, result);
        });
      });
    }
  }
  onUnsubscribe() {
    if (!this.listeners.size) {
      this.destroy();
    }
  }
  destroy() {
    this.listeners = /* @__PURE__ */ new Set();
    this.#observers.forEach((observer) => {
      observer.destroy();
    });
  }
  setQueries(queries, options) {
    this.#queries = queries;
    this.#options = options;
    if (process.env.NODE_ENV !== "production") {
      const queryHashes = queries.map(
        (query) => this.#client.defaultQueryOptions(query).queryHash
      );
      if (new Set(queryHashes).size !== queryHashes.length) {
        console.warn(
          "[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior."
        );
      }
    }
    notifyManager.batch(() => {
      const prevObservers = this.#observers;
      const newObserverMatches = this.#findMatchingObservers(this.#queries);
      this.#observerMatches = newObserverMatches;
      newObserverMatches.forEach(
        (match) => match.observer.setOptions(match.defaultedQueryOptions)
      );
      const newObservers = newObserverMatches.map((match) => match.observer);
      const newResult = newObservers.map(
        (observer) => observer.getCurrentResult()
      );
      const hasIndexChange = newObservers.some(
        (observer, index) => observer !== prevObservers[index]
      );
      if (prevObservers.length === newObservers.length && !hasIndexChange) {
        return;
      }
      this.#observers = newObservers;
      this.#result = newResult;
      if (!this.hasListeners()) {
        return;
      }
      difference(prevObservers, newObservers).forEach((observer) => {
        observer.destroy();
      });
      difference(newObservers, prevObservers).forEach((observer) => {
        observer.subscribe((result) => {
          this.#onUpdate(observer, result);
        });
      });
      this.#notify();
    });
  }
  getCurrentResult() {
    return this.#result;
  }
  getQueries() {
    return this.#observers.map((observer) => observer.getCurrentQuery());
  }
  getObservers() {
    return this.#observers;
  }
  getOptimisticResult(queries, combine) {
    const matches = this.#findMatchingObservers(queries);
    const result = matches.map(
      (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)
    );
    return [
      result,
      (r) => {
        return this.#combineResult(r ?? result, combine);
      },
      () => {
        return this.#trackResult(result, matches);
      }
    ];
  }
  #trackResult(result, matches) {
    return matches.map((match, index) => {
      const observerResult = result[index];
      return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {
        matches.forEach((m) => {
          m.observer.trackProp(accessedProp);
        });
      }) : observerResult;
    });
  }
  #combineResult(input, combine) {
    if (combine) {
      if (!this.#combinedResult || this.#result !== this.#lastResult || combine !== this.#lastCombine) {
        this.#lastCombine = combine;
        this.#lastResult = this.#result;
        this.#combinedResult = replaceEqualDeep(
          this.#combinedResult,
          combine(input)
        );
      }
      return this.#combinedResult;
    }
    return input;
  }
  #findMatchingObservers(queries) {
    const prevObserversMap = new Map(
      this.#observers.map((observer) => [observer.options.queryHash, observer])
    );
    const observers = [];
    queries.forEach((options) => {
      const defaultedOptions = this.#client.defaultQueryOptions(options);
      const match = prevObserversMap.get(defaultedOptions.queryHash);
      if (match) {
        observers.push({
          defaultedQueryOptions: defaultedOptions,
          observer: match
        });
      } else {
        observers.push({
          defaultedQueryOptions: defaultedOptions,
          observer: new QueryObserver(this.#client, defaultedOptions)
        });
      }
    });
    return observers;
  }
  #onUpdate(observer, result) {
    const index = this.#observers.indexOf(observer);
    if (index !== -1) {
      this.#result = replaceAt(this.#result, index, result);
      this.#notify();
    }
  }
  #notify() {
    if (this.hasListeners()) {
      const previousResult = this.#combinedResult;
      const newTracked = this.#trackResult(this.#result, this.#observerMatches);
      const newResult = this.#combineResult(newTracked, this.#options?.combine);
      if (previousResult !== newResult) {
        notifyManager.batch(() => {
          this.listeners.forEach((listener) => {
            listener(this.#result);
          });
        });
      }
    }
  }
};
export {
  QueriesObserver
};
//# sourceMappingURL=queriesObserver.js.map

Directory Contents

Dirs: 0 × Files: 134
Name Size Perms Modified Actions
2.65 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.35 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
563 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
562 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.56 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.31 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
70.04 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
70.04 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
6.44 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
11.47 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
265 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
262 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
5.26 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
11.42 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
4.33 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.10 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.67 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.67 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.68 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.11 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
5.33 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
8.04 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
744 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
741 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
4.18 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
8.00 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.39 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
6.28 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.31 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.31 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.21 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
6.27 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
7.19 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
13.51 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
170 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
167 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
6.09 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
13.48 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
4.66 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
9.78 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
149 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
146 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.48 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
9.75 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
4.30 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
7.07 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
121 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
118 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.16 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
7.05 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.04 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.70 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.15 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.15 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.93 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.65 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.54 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.93 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
522 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
521 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.45 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.89 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
6.83 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
11.77 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.55 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.55 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
5.69 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
11.75 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
12.71 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
27.12 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
282 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
279 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
11.55 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
27.16 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.53 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
7.75 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
161 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
158 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.36 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
7.73 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
10.82 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
23.29 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
116 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
113 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
9.33 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
23.33 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
17.24 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
33.24 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
118 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
115 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
15.74 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
33.28 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.69 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.46 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
299 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
299 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
686 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.42 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
4.79 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
8.18 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
235 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
232 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.56 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
8.14 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.28 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.72 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.54 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.53 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.22 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.68 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.52 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.07 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
294 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
294 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
522 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.03 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.02 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.77 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.79 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.79 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
961 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
3.72 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
1.32 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
40.32 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.61 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
2.60 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
255 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
40.26 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
8.54 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
16.51 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
674 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
671 B lrw-r--r-- 2025-07-14 06:33:17
Edit Download
6.71 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
16.35 KB lrw-r--r-- 2025-07-14 06:33:17
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).