venue-js 1.0.0-2 → 1.0.0-3
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/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +24 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -655,6 +655,7 @@ interface VenueDataClient {
|
|
|
655
655
|
projectId: string;
|
|
656
656
|
queryClient: QueryClient;
|
|
657
657
|
registerObserver: (featureType: FeatureType, refetchInterval: number) => QueryObserver;
|
|
658
|
+
destroyObserver: (featureType: FeatureType) => void;
|
|
658
659
|
destroyObservers: () => void;
|
|
659
660
|
createFilterByTypeQueryOptions: <T extends FeatureType = FeatureType>(featureType: T, params: FilterParams, options: FeatureQueryOptions) => EnsureQueryDataOptions<FeatureResponseMap[T][] | FeaturePopulatedResponseMap[T][]>;
|
|
660
661
|
createFindByIdQueryOptions: <T extends FeatureType = FeatureType>(featureType: T, id: string, params: FindParams, options: FeatureQueryOptions) => EnsureQueryDataOptions<FeatureResponseMap[T] | FeaturePopulatedResponseMap[T]>;
|
package/dist/index.d.ts
CHANGED
|
@@ -655,6 +655,7 @@ interface VenueDataClient {
|
|
|
655
655
|
projectId: string;
|
|
656
656
|
queryClient: QueryClient;
|
|
657
657
|
registerObserver: (featureType: FeatureType, refetchInterval: number) => QueryObserver;
|
|
658
|
+
destroyObserver: (featureType: FeatureType) => void;
|
|
658
659
|
destroyObservers: () => void;
|
|
659
660
|
createFilterByTypeQueryOptions: <T extends FeatureType = FeatureType>(featureType: T, params: FilterParams, options: FeatureQueryOptions) => EnsureQueryDataOptions<FeatureResponseMap[T][] | FeaturePopulatedResponseMap[T][]>;
|
|
660
661
|
createFindByIdQueryOptions: <T extends FeatureType = FeatureType>(featureType: T, id: string, params: FindParams, options: FeatureQueryOptions) => EnsureQueryDataOptions<FeatureResponseMap[T] | FeaturePopulatedResponseMap[T]>;
|
package/dist/index.js
CHANGED
|
@@ -481,23 +481,33 @@ var getDataClient = (options) => {
|
|
|
481
481
|
};
|
|
482
482
|
const populator = createPopulator({ internalFindById, internalFilterByType });
|
|
483
483
|
const registerObserver = (featureType, refetchInterval) => {
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
const
|
|
487
|
-
|
|
488
|
-
...options2,
|
|
489
|
-
refetchInterval
|
|
490
|
-
});
|
|
491
|
-
observers.set(featureType, observer);
|
|
492
|
-
} else {
|
|
493
|
-
console.warn(
|
|
494
|
-
`An observer for featureType ${featureType} already exists, fail to register new one`
|
|
495
|
-
);
|
|
484
|
+
if (observers.has(featureType)) {
|
|
485
|
+
console.warn(`Observer for ${featureType} already exists`);
|
|
486
|
+
const record = observers.get(featureType);
|
|
487
|
+
return record.observer;
|
|
496
488
|
}
|
|
489
|
+
const options2 = createDeliveryApiQueryOptions(featureType);
|
|
490
|
+
const observer = new import_query_core.QueryObserver(queryClient, {
|
|
491
|
+
...options2,
|
|
492
|
+
refetchInterval
|
|
493
|
+
});
|
|
494
|
+
const unsubscribe = observer.subscribe(() => {
|
|
495
|
+
console.log(`[venue-js] Listening to ${featureType} changes (interval = ${refetchInterval}ms)`);
|
|
496
|
+
});
|
|
497
|
+
observers.set(featureType, { observer, unsubscribe });
|
|
497
498
|
return observer;
|
|
498
499
|
};
|
|
500
|
+
const destroyObserver = (featureType) => {
|
|
501
|
+
const record = observers.get(featureType);
|
|
502
|
+
if (!record) return;
|
|
503
|
+
record.unsubscribe();
|
|
504
|
+
observers.delete(featureType);
|
|
505
|
+
};
|
|
499
506
|
const destroyObservers = () => {
|
|
500
|
-
observers.forEach((
|
|
507
|
+
observers.forEach(({ observer, unsubscribe }) => {
|
|
508
|
+
unsubscribe();
|
|
509
|
+
observer.destroy();
|
|
510
|
+
});
|
|
501
511
|
observers.clear();
|
|
502
512
|
};
|
|
503
513
|
const createFilterByTypeQueryOptions = (featureType, params = {}, options2 = {}) => ({
|
|
@@ -537,6 +547,7 @@ var getDataClient = (options) => {
|
|
|
537
547
|
projectId,
|
|
538
548
|
queryClient,
|
|
539
549
|
registerObserver,
|
|
550
|
+
destroyObserver,
|
|
540
551
|
destroyObservers,
|
|
541
552
|
createFilterByTypeQueryOptions,
|
|
542
553
|
createFindByIdQueryOptions,
|