tinybase 5.0.0-beta.27 → 5.0.0-beta.28
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/@types/_internal/ui-react/with-schemas/index.d.cts +274 -0
- package/@types/_internal/ui-react/with-schemas/index.d.ts +274 -0
- package/@types/checkpoints/index.d.cts +30 -1
- package/@types/checkpoints/index.d.ts +30 -1
- package/@types/checkpoints/with-schemas/index.d.cts +30 -1
- package/@types/checkpoints/with-schemas/index.d.ts +30 -1
- package/@types/common/index.d.cts +9 -0
- package/@types/common/index.d.ts +9 -0
- package/@types/common/with-schemas/index.d.cts +9 -0
- package/@types/common/with-schemas/index.d.ts +9 -0
- package/@types/index.d.cts +1 -0
- package/@types/index.d.ts +1 -0
- package/@types/indexes/index.d.cts +32 -1
- package/@types/indexes/index.d.ts +32 -1
- package/@types/indexes/with-schemas/index.d.cts +32 -1
- package/@types/indexes/with-schemas/index.d.ts +32 -1
- package/@types/mergeable-store/index.d.cts +0 -2
- package/@types/mergeable-store/index.d.ts +0 -2
- package/@types/mergeable-store/with-schemas/index.d.cts +2 -2
- package/@types/mergeable-store/with-schemas/index.d.ts +2 -2
- package/@types/metrics/index.d.cts +30 -4
- package/@types/metrics/index.d.ts +30 -4
- package/@types/metrics/with-schemas/index.d.cts +30 -4
- package/@types/metrics/with-schemas/index.d.ts +30 -4
- package/@types/persisters/index.d.cts +87 -25
- package/@types/persisters/index.d.ts +87 -25
- package/@types/persisters/persister-automerge/index.d.cts +4 -4
- package/@types/persisters/persister-automerge/index.d.ts +4 -4
- package/@types/persisters/persister-automerge/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-automerge/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-browser/index.d.cts +7 -4
- package/@types/persisters/persister-browser/index.d.ts +7 -4
- package/@types/persisters/persister-browser/with-schemas/index.d.cts +7 -4
- package/@types/persisters/persister-browser/with-schemas/index.d.ts +7 -4
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +4 -4
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -4
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-electric-sql/index.d.cts +4 -4
- package/@types/persisters/persister-electric-sql/index.d.ts +4 -4
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-expo-sqlite/index.d.cts +4 -4
- package/@types/persisters/persister-expo-sqlite/index.d.ts +4 -4
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-file/index.d.cts +6 -4
- package/@types/persisters/persister-file/index.d.ts +6 -4
- package/@types/persisters/persister-file/with-schemas/index.d.cts +6 -4
- package/@types/persisters/persister-file/with-schemas/index.d.ts +6 -4
- package/@types/persisters/persister-indexed-db/index.d.cts +5 -4
- package/@types/persisters/persister-indexed-db/index.d.ts +5 -4
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.cts +5 -4
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +5 -4
- package/@types/persisters/persister-libsql/index.d.cts +5 -4
- package/@types/persisters/persister-libsql/index.d.ts +5 -4
- package/@types/persisters/persister-libsql/with-schemas/index.d.cts +5 -4
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +5 -4
- package/@types/persisters/persister-partykit-client/index.d.cts +12 -6
- package/@types/persisters/persister-partykit-client/index.d.ts +12 -6
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.cts +12 -6
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +12 -6
- package/@types/persisters/persister-partykit-server/index.d.cts +11 -3
- package/@types/persisters/persister-partykit-server/index.d.ts +11 -3
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.cts +11 -3
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +11 -3
- package/@types/persisters/persister-powersync/index.d.cts +5 -4
- package/@types/persisters/persister-powersync/index.d.ts +5 -4
- package/@types/persisters/persister-powersync/with-schemas/index.d.cts +5 -4
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +5 -4
- package/@types/persisters/persister-remote/index.d.cts +6 -4
- package/@types/persisters/persister-remote/index.d.ts +6 -4
- package/@types/persisters/persister-remote/with-schemas/index.d.cts +6 -4
- package/@types/persisters/persister-remote/with-schemas/index.d.ts +6 -4
- package/@types/persisters/persister-sqlite-wasm/index.d.cts +4 -4
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +4 -4
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-sqlite3/index.d.cts +4 -4
- package/@types/persisters/persister-sqlite3/index.d.ts +4 -4
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-yjs/index.d.cts +4 -4
- package/@types/persisters/persister-yjs/index.d.ts +4 -4
- package/@types/persisters/persister-yjs/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-yjs/with-schemas/index.d.ts +4 -4
- package/@types/persisters/with-schemas/index.d.cts +87 -25
- package/@types/persisters/with-schemas/index.d.ts +87 -25
- package/@types/queries/index.d.cts +64 -4
- package/@types/queries/index.d.ts +64 -4
- package/@types/queries/with-schemas/index.d.cts +64 -4
- package/@types/queries/with-schemas/index.d.ts +64 -4
- package/@types/relationships/index.d.cts +34 -1
- package/@types/relationships/index.d.ts +34 -1
- package/@types/relationships/with-schemas/index.d.cts +34 -1
- package/@types/relationships/with-schemas/index.d.ts +34 -1
- package/@types/store/index.d.cts +125 -0
- package/@types/store/index.d.ts +125 -0
- package/@types/store/with-schemas/index.d.cts +125 -0
- package/@types/store/with-schemas/index.d.ts +125 -0
- package/@types/synchronizers/index.d.cts +32 -10
- package/@types/synchronizers/index.d.ts +32 -10
- package/@types/synchronizers/synchronizer-broadcast-channel/index.d.cts +114 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/index.d.ts +114 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts +128 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +128 -0
- package/@types/synchronizers/synchronizer-local/index.d.cts +16 -17
- package/@types/synchronizers/synchronizer-local/index.d.ts +16 -17
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +16 -17
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +16 -17
- package/@types/synchronizers/synchronizer-ws-client/index.d.cts +66 -6
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +66 -6
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +77 -6
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +77 -6
- package/@types/synchronizers/synchronizer-ws-server/index.d.cts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +486 -7
- package/@types/synchronizers/with-schemas/index.d.cts +29 -11
- package/@types/synchronizers/with-schemas/index.d.ts +29 -11
- package/@types/tools/index.d.cts +22 -0
- package/@types/tools/index.d.ts +22 -0
- package/@types/tools/with-schemas/index.d.cts +22 -0
- package/@types/tools/with-schemas/index.d.ts +22 -0
- package/@types/ui-react/index.d.cts +375 -1
- package/@types/ui-react/index.d.ts +375 -1
- package/@types/ui-react/with-schemas/index.d.cts +100 -1
- package/@types/ui-react/with-schemas/index.d.ts +100 -1
- package/@types/ui-react-dom/index.d.cts +112 -0
- package/@types/ui-react-dom/index.d.ts +112 -0
- package/@types/ui-react-dom/with-schemas/index.d.cts +112 -0
- package/@types/ui-react-dom/with-schemas/index.d.ts +112 -0
- package/@types/ui-react-inspector/index.d.cts +6 -2
- package/@types/ui-react-inspector/index.d.ts +6 -2
- package/@types/ui-react-inspector/with-schemas/index.d.cts +118 -2
- package/@types/ui-react-inspector/with-schemas/index.d.ts +118 -2
- package/@types/with-schemas/index.d.cts +1 -0
- package/@types/with-schemas/index.d.ts +1 -0
- package/cjs/es6/index.cjs +2 -2
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/synchronizers/index.cjs +2 -2
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +628 -0
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +628 -0
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +4 -4
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +4 -4
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +15 -21
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +15 -21
- package/cjs/es6/synchronizers/with-schemas/index.cjs +2 -2
- package/cjs/es6/with-schemas/index.cjs +2 -2
- package/cjs/index.cjs +2 -2
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
- package/cjs/synchronizers/index.cjs +2 -2
- package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +500 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +500 -0
- package/cjs/synchronizers/synchronizer-local/index.cjs +4 -4
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +4 -4
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +15 -21
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +15 -21
- package/cjs/synchronizers/with-schemas/index.cjs +2 -2
- package/cjs/with-schemas/index.cjs +2 -2
- package/es6/index.js +2 -2
- package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/es6/synchronizers/index.js +2 -2
- package/es6/synchronizers/synchronizer-broadcast-channel/index.js +626 -0
- package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +626 -0
- package/es6/synchronizers/synchronizer-local/index.js +4 -4
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
- package/es6/synchronizers/synchronizer-ws-client/index.js +15 -21
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
- package/es6/synchronizers/with-schemas/index.js +2 -2
- package/es6/with-schemas/index.js +2 -2
- package/index.js +2 -2
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/package.json +105 -1
- package/readme.md +9 -9
- package/releases.md +4 -4
- package/synchronizers/index.js +2 -2
- package/synchronizers/synchronizer-broadcast-channel/index.js +498 -0
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +498 -0
- package/synchronizers/synchronizer-local/index.js +4 -4
- package/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
- package/synchronizers/synchronizer-ws-client/index.js +15 -21
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
- package/synchronizers/with-schemas/index.js +2 -2
- package/umd/es6/index.js +2 -2
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/umd/es6/synchronizers/index.js +2 -2
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +654 -0
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +654 -0
- package/umd/es6/synchronizers/synchronizer-local/index.js +4 -4
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +15 -21
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
- package/umd/es6/synchronizers/with-schemas/index.js +2 -2
- package/umd/es6/with-schemas/index.js +2 -2
- package/umd/index.js +2 -2
- package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/umd/synchronizers/index.js +2 -2
- package/umd/synchronizers/synchronizer-broadcast-channel/index.js +516 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +516 -0
- package/umd/synchronizers/synchronizer-local/index.js +4 -4
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
- package/umd/synchronizers/synchronizer-ws-client/index.js +15 -21
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
- package/umd/synchronizers/with-schemas/index.js +2 -2
- package/umd/with-schemas/index.js +2 -2
- package/with-schemas/index.js +2 -2
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* listeners for when they change.
|
|
9
9
|
* @packageDocumentation
|
|
10
10
|
* @module metrics
|
|
11
|
+
* @since v1.0.0
|
|
11
12
|
*/
|
|
12
13
|
|
|
13
14
|
import type {GetCell, Store} from '../store/index.d.ts';
|
|
@@ -17,6 +18,7 @@ import type {Id, IdOrNull, Ids} from '../common/index.d.ts';
|
|
|
17
18
|
* The Metric type is simply an alias, but represents a number formed by
|
|
18
19
|
* aggregating multiple other numbers together.
|
|
19
20
|
* @category Metric
|
|
21
|
+
* @since v1.0.0
|
|
20
22
|
*/
|
|
21
23
|
export type Metric = number;
|
|
22
24
|
|
|
@@ -30,6 +32,7 @@ export type Metric = number;
|
|
|
30
32
|
* @param metricId The Id of the Metric that the callback can operate on.
|
|
31
33
|
* @param metric The value of the Metric.
|
|
32
34
|
* @category Callback
|
|
35
|
+
* @since v1.0.0
|
|
33
36
|
*/
|
|
34
37
|
export type MetricCallback = (metricId: Id, metric?: Metric) => void;
|
|
35
38
|
|
|
@@ -45,6 +48,7 @@ export type MetricCallback = (metricId: Id, metric?: Metric) => void;
|
|
|
45
48
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
46
49
|
* @returns The value of the Metric.
|
|
47
50
|
* @category Aggregators
|
|
51
|
+
* @since v1.0.0
|
|
48
52
|
*/
|
|
49
53
|
export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
50
54
|
|
|
@@ -61,7 +65,7 @@ export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
|
61
65
|
* being added, return `undefined` and the Metric will be completely
|
|
62
66
|
* recalculated.
|
|
63
67
|
*
|
|
64
|
-
*
|
|
68
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
65
69
|
* implementation of an MetricAggregateAdd function that can reduce the
|
|
66
70
|
* complexity cost of growing the input data set. See the setMetricDefinition
|
|
67
71
|
* method for more examples.
|
|
@@ -70,6 +74,7 @@ export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
|
70
74
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
71
75
|
* @returns The new value of the Metric.
|
|
72
76
|
* @category Aggregators
|
|
77
|
+
* @since v1.0.0
|
|
73
78
|
*/
|
|
74
79
|
export type MetricAggregateAdd = (
|
|
75
80
|
metric: Metric,
|
|
@@ -93,7 +98,7 @@ export type MetricAggregateAdd = (
|
|
|
93
98
|
* values, and the previous minimum is being removed. The whole of the rest of
|
|
94
99
|
* the list will need to be re-scanned to find a new minimum.
|
|
95
100
|
*
|
|
96
|
-
*
|
|
101
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
97
102
|
* implementation of an MetricAggregateRemove function that can reduce the
|
|
98
103
|
* complexity cost of shrinking the input data set. See the setMetricDefinition
|
|
99
104
|
* method for more examples.
|
|
@@ -102,6 +107,7 @@ export type MetricAggregateAdd = (
|
|
|
102
107
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
103
108
|
* @returns The new value of the Metric.
|
|
104
109
|
* @category Aggregators
|
|
110
|
+
* @since v1.0.0
|
|
105
111
|
*/
|
|
106
112
|
export type MetricAggregateRemove = (
|
|
107
113
|
metric: Metric,
|
|
@@ -122,7 +128,7 @@ export type MetricAggregateRemove = (
|
|
|
122
128
|
* If it is not possible to shortcut the aggregation based on just one value
|
|
123
129
|
* changing, return `undefined` and the Metric will be completely recalculated.
|
|
124
130
|
*
|
|
125
|
-
*
|
|
131
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
126
132
|
* implementation of an MetricAggregateReplace function that can reduce the
|
|
127
133
|
* complexity cost of changing the input data set in place. See the
|
|
128
134
|
* setMetricDefinition method for more examples.
|
|
@@ -132,6 +138,7 @@ export type MetricAggregateRemove = (
|
|
|
132
138
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
133
139
|
* @returns The new value of the Metric.
|
|
134
140
|
* @category Aggregators
|
|
141
|
+
* @since v1.0.0
|
|
135
142
|
*/
|
|
136
143
|
export type MetricAggregateReplace = (
|
|
137
144
|
metric: Metric,
|
|
@@ -150,6 +157,7 @@ export type MetricAggregateReplace = (
|
|
|
150
157
|
* When called, a MetricIdsListener is given a reference to the Metrics object.
|
|
151
158
|
* @param metrics A reference to the Metrics object that changed.
|
|
152
159
|
* @category Listener
|
|
160
|
+
* @since v1.0.0
|
|
153
161
|
*/
|
|
154
162
|
export type MetricIdsListener = (metrics: Metrics) => void;
|
|
155
163
|
|
|
@@ -171,6 +179,7 @@ export type MetricIdsListener = (metrics: Metrics) => void;
|
|
|
171
179
|
* @param newMetric The new value of the Metric that changed.
|
|
172
180
|
* @param oldMetric The old value of the Metric that changed.
|
|
173
181
|
* @category Listener
|
|
182
|
+
* @since v1.0.0
|
|
174
183
|
*/
|
|
175
184
|
export type MetricListener = (
|
|
176
185
|
metrics: Metrics,
|
|
@@ -185,10 +194,13 @@ export type MetricListener = (
|
|
|
185
194
|
*
|
|
186
195
|
* A MetricsListenerStats object is returned from the getListenerStats method.
|
|
187
196
|
* @category Development
|
|
197
|
+
* @since v1.0.0
|
|
188
198
|
*/
|
|
189
199
|
export type MetricsListenerStats = {
|
|
190
200
|
/**
|
|
191
201
|
* The number of MetricListener functions registered with the Metrics object.
|
|
202
|
+
* @category Stat
|
|
203
|
+
* @since v1.0.0
|
|
192
204
|
*/
|
|
193
205
|
metric: number;
|
|
194
206
|
};
|
|
@@ -243,11 +255,12 @@ export type MetricsListenerStats = {
|
|
|
243
255
|
* metrics.delListener(listenerId);
|
|
244
256
|
* metrics.destroy();
|
|
245
257
|
* ```
|
|
246
|
-
* @see Metrics
|
|
258
|
+
* @see Using Metrics guides
|
|
247
259
|
* @see Rolling Dice demos
|
|
248
260
|
* @see Country demo
|
|
249
261
|
* @see Todo App demos
|
|
250
262
|
* @category Metrics
|
|
263
|
+
* @since v1.0.0
|
|
251
264
|
*/
|
|
252
265
|
export interface Metrics {
|
|
253
266
|
//
|
|
@@ -424,6 +437,7 @@ export interface Metrics {
|
|
|
424
437
|
* // -> 2.5
|
|
425
438
|
* ```
|
|
426
439
|
* @category Configuration
|
|
440
|
+
* @since v1.0.0
|
|
427
441
|
*/
|
|
428
442
|
setMetricDefinition(
|
|
429
443
|
metricId: Id,
|
|
@@ -462,6 +476,7 @@ export interface Metrics {
|
|
|
462
476
|
* // -> []
|
|
463
477
|
* ```
|
|
464
478
|
* @category Configuration
|
|
479
|
+
* @since v1.0.0
|
|
465
480
|
*/
|
|
466
481
|
delMetricDefinition(metricId: Id): Metrics;
|
|
467
482
|
|
|
@@ -483,6 +498,7 @@ export interface Metrics {
|
|
|
483
498
|
* // -> 1
|
|
484
499
|
* ```
|
|
485
500
|
* @category Getter
|
|
501
|
+
* @since v1.0.0
|
|
486
502
|
*/
|
|
487
503
|
getStore(): Store;
|
|
488
504
|
|
|
@@ -505,6 +521,7 @@ export interface Metrics {
|
|
|
505
521
|
* // -> ['speciesCount', 'petsCount']
|
|
506
522
|
* ```
|
|
507
523
|
* @category Getter
|
|
524
|
+
* @since v1.0.0
|
|
508
525
|
*/
|
|
509
526
|
getMetricIds(): Ids;
|
|
510
527
|
|
|
@@ -538,6 +555,7 @@ export interface Metrics {
|
|
|
538
555
|
* // -> ['lowestPrice', 1]
|
|
539
556
|
* ```
|
|
540
557
|
* @category Iterator
|
|
558
|
+
* @since v1.0.0
|
|
541
559
|
*/
|
|
542
560
|
forEachMetric(metricCallback: MetricCallback): void;
|
|
543
561
|
|
|
@@ -565,6 +583,7 @@ export interface Metrics {
|
|
|
565
583
|
* // -> true
|
|
566
584
|
* ```
|
|
567
585
|
* @category Getter
|
|
586
|
+
* @since v1.0.0
|
|
568
587
|
*/
|
|
569
588
|
hasMetric(metricId: Id): boolean;
|
|
570
589
|
|
|
@@ -591,6 +610,7 @@ export interface Metrics {
|
|
|
591
610
|
* // -> undefined
|
|
592
611
|
* ```
|
|
593
612
|
* @category Getter
|
|
613
|
+
* @since v1.0.0
|
|
594
614
|
*/
|
|
595
615
|
getTableId(metricId: Id): Id | undefined;
|
|
596
616
|
|
|
@@ -625,6 +645,7 @@ export interface Metrics {
|
|
|
625
645
|
* // -> undefined
|
|
626
646
|
* ```
|
|
627
647
|
* @category Getter
|
|
648
|
+
* @since v1.0.0
|
|
628
649
|
*/
|
|
629
650
|
getMetric(metricId: Id): Metric | undefined;
|
|
630
651
|
|
|
@@ -748,6 +769,7 @@ export interface Metrics {
|
|
|
748
769
|
* metrics.delListener(listenerId);
|
|
749
770
|
* ```
|
|
750
771
|
* @category Listener
|
|
772
|
+
* @since v1.0.0
|
|
751
773
|
*/
|
|
752
774
|
addMetricListener(metricId: IdOrNull, listener: MetricListener): Id;
|
|
753
775
|
|
|
@@ -789,6 +811,7 @@ export interface Metrics {
|
|
|
789
811
|
* // The listener is not called.
|
|
790
812
|
* ```
|
|
791
813
|
* @category Listener
|
|
814
|
+
* @since v1.0.0
|
|
792
815
|
*/
|
|
793
816
|
delListener(listenerId: Id): Metrics;
|
|
794
817
|
|
|
@@ -823,6 +846,7 @@ export interface Metrics {
|
|
|
823
846
|
* // -> 0
|
|
824
847
|
* ```
|
|
825
848
|
* @category Lifecycle
|
|
849
|
+
* @since v1.0.0
|
|
826
850
|
*/
|
|
827
851
|
destroy(): void;
|
|
828
852
|
|
|
@@ -849,6 +873,7 @@ export interface Metrics {
|
|
|
849
873
|
* // -> {metric: 1}
|
|
850
874
|
* ```
|
|
851
875
|
* @category Development
|
|
876
|
+
* @since v1.0.0
|
|
852
877
|
*/
|
|
853
878
|
getListenerStats(): MetricsListenerStats;
|
|
854
879
|
//
|
|
@@ -888,5 +913,6 @@ export interface Metrics {
|
|
|
888
913
|
* // -> true
|
|
889
914
|
* ```
|
|
890
915
|
* @category Creation
|
|
916
|
+
* @since v1.0.0
|
|
891
917
|
*/
|
|
892
918
|
export function createMetrics(store: Store): Metrics;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* listeners for when they change.
|
|
9
9
|
* @packageDocumentation
|
|
10
10
|
* @module metrics
|
|
11
|
+
* @since v1.0.0
|
|
11
12
|
*/
|
|
12
13
|
|
|
13
14
|
import type {
|
|
@@ -25,6 +26,7 @@ import type {Id, IdOrNull, Ids} from '../../common/with-schemas/index.d.cts';
|
|
|
25
26
|
* The Metric type is simply an alias, but represents a number formed by
|
|
26
27
|
* aggregating multiple other numbers together.
|
|
27
28
|
* @category Metric
|
|
29
|
+
* @since v1.0.0
|
|
28
30
|
*/
|
|
29
31
|
export type Metric = number;
|
|
30
32
|
|
|
@@ -38,6 +40,7 @@ export type Metric = number;
|
|
|
38
40
|
* @param metricId The Id of the Metric that the callback can operate on.
|
|
39
41
|
* @param metric The value of the Metric.
|
|
40
42
|
* @category Callback
|
|
43
|
+
* @since v1.0.0
|
|
41
44
|
*/
|
|
42
45
|
export type MetricCallback = (metricId: Id, metric?: Metric) => void;
|
|
43
46
|
|
|
@@ -53,6 +56,7 @@ export type MetricCallback = (metricId: Id, metric?: Metric) => void;
|
|
|
53
56
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
54
57
|
* @returns The value of the Metric.
|
|
55
58
|
* @category Aggregators
|
|
59
|
+
* @since v1.0.0
|
|
56
60
|
*/
|
|
57
61
|
export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
58
62
|
|
|
@@ -69,7 +73,7 @@ export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
|
69
73
|
* being added, return `undefined` and the Metric will be completely
|
|
70
74
|
* recalculated.
|
|
71
75
|
*
|
|
72
|
-
*
|
|
76
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
73
77
|
* implementation of an MetricAggregateAdd function that can reduce the
|
|
74
78
|
* complexity cost of growing the input data set. See the setMetricDefinition
|
|
75
79
|
* method for more examples.
|
|
@@ -78,6 +82,7 @@ export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
|
78
82
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
79
83
|
* @returns The new value of the Metric.
|
|
80
84
|
* @category Aggregators
|
|
85
|
+
* @since v1.0.0
|
|
81
86
|
*/
|
|
82
87
|
export type MetricAggregateAdd = (
|
|
83
88
|
metric: Metric,
|
|
@@ -101,7 +106,7 @@ export type MetricAggregateAdd = (
|
|
|
101
106
|
* values, and the previous minimum is being removed. The whole of the rest of
|
|
102
107
|
* the list will need to be re-scanned to find a new minimum.
|
|
103
108
|
*
|
|
104
|
-
*
|
|
109
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
105
110
|
* implementation of an MetricAggregateRemove function that can reduce the
|
|
106
111
|
* complexity cost of shrinking the input data set. See the setMetricDefinition
|
|
107
112
|
* method for more examples.
|
|
@@ -110,6 +115,7 @@ export type MetricAggregateAdd = (
|
|
|
110
115
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
111
116
|
* @returns The new value of the Metric.
|
|
112
117
|
* @category Aggregators
|
|
118
|
+
* @since v1.0.0
|
|
113
119
|
*/
|
|
114
120
|
export type MetricAggregateRemove = (
|
|
115
121
|
metric: Metric,
|
|
@@ -130,7 +136,7 @@ export type MetricAggregateRemove = (
|
|
|
130
136
|
* If it is not possible to shortcut the aggregation based on just one value
|
|
131
137
|
* changing, return `undefined` and the Metric will be completely recalculated.
|
|
132
138
|
*
|
|
133
|
-
*
|
|
139
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
134
140
|
* implementation of an MetricAggregateReplace function that can reduce the
|
|
135
141
|
* complexity cost of changing the input data set in place. See the
|
|
136
142
|
* setMetricDefinition method for more examples.
|
|
@@ -140,6 +146,7 @@ export type MetricAggregateRemove = (
|
|
|
140
146
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
141
147
|
* @returns The new value of the Metric.
|
|
142
148
|
* @category Aggregators
|
|
149
|
+
* @since v1.0.0
|
|
143
150
|
*/
|
|
144
151
|
export type MetricAggregateReplace = (
|
|
145
152
|
metric: Metric,
|
|
@@ -164,6 +171,7 @@ export type MetricAggregateReplace = (
|
|
|
164
171
|
* When called, a MetricIdsListener is given a reference to the Metrics object.
|
|
165
172
|
* @param metrics A reference to the Metrics object that changed.
|
|
166
173
|
* @category Listener
|
|
174
|
+
* @since v1.0.0
|
|
167
175
|
*/
|
|
168
176
|
export type MetricIdsListener<Schemas extends OptionalSchemas> = (
|
|
169
177
|
metrics: Metrics<Schemas>,
|
|
@@ -198,6 +206,7 @@ export type MetricIdsListener<Schemas extends OptionalSchemas> = (
|
|
|
198
206
|
* @param newMetric The new value of the Metric that changed.
|
|
199
207
|
* @param oldMetric The old value of the Metric that changed.
|
|
200
208
|
* @category Listener
|
|
209
|
+
* @since v1.0.0
|
|
201
210
|
*/
|
|
202
211
|
export type MetricListener<Schemas extends OptionalSchemas> = (
|
|
203
212
|
metrics: Metrics<Schemas>,
|
|
@@ -212,10 +221,13 @@ export type MetricListener<Schemas extends OptionalSchemas> = (
|
|
|
212
221
|
*
|
|
213
222
|
* A MetricsListenerStats object is returned from the getListenerStats method.
|
|
214
223
|
* @category Development
|
|
224
|
+
* @since v1.0.0
|
|
215
225
|
*/
|
|
216
226
|
export type MetricsListenerStats = {
|
|
217
227
|
/**
|
|
218
228
|
* The number of MetricListener functions registered with the Metrics object.
|
|
229
|
+
* @category Stat
|
|
230
|
+
* @since v1.0.0
|
|
219
231
|
*/
|
|
220
232
|
metric: number;
|
|
221
233
|
};
|
|
@@ -270,11 +282,12 @@ export type MetricsListenerStats = {
|
|
|
270
282
|
* metrics.delListener(listenerId);
|
|
271
283
|
* metrics.destroy();
|
|
272
284
|
* ```
|
|
273
|
-
* @see Metrics
|
|
285
|
+
* @see Using Metrics guides
|
|
274
286
|
* @see Rolling Dice demos
|
|
275
287
|
* @see Country demo
|
|
276
288
|
* @see Todo App demos
|
|
277
289
|
* @category Metrics
|
|
290
|
+
* @since v1.0.0
|
|
278
291
|
*/
|
|
279
292
|
export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
280
293
|
/**
|
|
@@ -464,6 +477,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
464
477
|
* // -> 2.5
|
|
465
478
|
* ```
|
|
466
479
|
* @category Configuration
|
|
480
|
+
* @since v1.0.0
|
|
467
481
|
*/
|
|
468
482
|
setMetricDefinition<TableId extends TableIdFromSchema<Schemas[0]>>(
|
|
469
483
|
metricId: Id,
|
|
@@ -510,6 +524,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
510
524
|
* // -> []
|
|
511
525
|
* ```
|
|
512
526
|
* @category Configuration
|
|
527
|
+
* @since v1.0.0
|
|
513
528
|
*/
|
|
514
529
|
delMetricDefinition(metricId: Id): Metrics<Schemas>;
|
|
515
530
|
|
|
@@ -537,6 +552,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
537
552
|
* // -> 1
|
|
538
553
|
* ```
|
|
539
554
|
* @category Getter
|
|
555
|
+
* @since v1.0.0
|
|
540
556
|
*/
|
|
541
557
|
getStore(): Store<Schemas>;
|
|
542
558
|
|
|
@@ -559,6 +575,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
559
575
|
* // -> ['speciesCount', 'petsCount']
|
|
560
576
|
* ```
|
|
561
577
|
* @category Getter
|
|
578
|
+
* @since v1.0.0
|
|
562
579
|
*/
|
|
563
580
|
getMetricIds(): Ids;
|
|
564
581
|
|
|
@@ -592,6 +609,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
592
609
|
* // -> ['lowestPrice', 1]
|
|
593
610
|
* ```
|
|
594
611
|
* @category Iterator
|
|
612
|
+
* @since v1.0.0
|
|
595
613
|
*/
|
|
596
614
|
forEachMetric(metricCallback: MetricCallback): void;
|
|
597
615
|
|
|
@@ -619,6 +637,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
619
637
|
* // -> true
|
|
620
638
|
* ```
|
|
621
639
|
* @category Getter
|
|
640
|
+
* @since v1.0.0
|
|
622
641
|
*/
|
|
623
642
|
hasMetric(metricId: Id): boolean;
|
|
624
643
|
|
|
@@ -651,6 +670,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
651
670
|
* // -> undefined
|
|
652
671
|
* ```
|
|
653
672
|
* @category Getter
|
|
673
|
+
* @since v1.0.0
|
|
654
674
|
*/
|
|
655
675
|
getTableId<TableId extends TableIdFromSchema<Schemas[0]>>(
|
|
656
676
|
metricId: Id,
|
|
@@ -687,6 +707,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
687
707
|
* // -> undefined
|
|
688
708
|
* ```
|
|
689
709
|
* @category Getter
|
|
710
|
+
* @since v1.0.0
|
|
690
711
|
*/
|
|
691
712
|
getMetric(metricId: Id): Metric | undefined;
|
|
692
713
|
|
|
@@ -822,6 +843,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
822
843
|
* metrics.delListener(listenerId);
|
|
823
844
|
* ```
|
|
824
845
|
* @category Listener
|
|
846
|
+
* @since v1.0.0
|
|
825
847
|
*/
|
|
826
848
|
addMetricListener(metricId: IdOrNull, listener: MetricListener<Schemas>): Id;
|
|
827
849
|
|
|
@@ -869,6 +891,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
869
891
|
* // The listener is not called.
|
|
870
892
|
* ```
|
|
871
893
|
* @category Listener
|
|
894
|
+
* @since v1.0.0
|
|
872
895
|
*/
|
|
873
896
|
delListener(listenerId: Id): Metrics<Schemas>;
|
|
874
897
|
|
|
@@ -903,6 +926,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
903
926
|
* // -> 0
|
|
904
927
|
* ```
|
|
905
928
|
* @category Lifecycle
|
|
929
|
+
* @since v1.0.0
|
|
906
930
|
*/
|
|
907
931
|
destroy(): void;
|
|
908
932
|
|
|
@@ -929,6 +953,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
929
953
|
* // -> {metric: 1}
|
|
930
954
|
* ```
|
|
931
955
|
* @category Development
|
|
956
|
+
* @since v1.0.0
|
|
932
957
|
*/
|
|
933
958
|
getListenerStats(): MetricsListenerStats;
|
|
934
959
|
}
|
|
@@ -973,6 +998,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
973
998
|
* // -> true
|
|
974
999
|
* ```
|
|
975
1000
|
* @category Creation
|
|
1001
|
+
* @since v1.0.0
|
|
976
1002
|
*/
|
|
977
1003
|
export function createMetrics<Schemas extends OptionalSchemas>(
|
|
978
1004
|
store: Store<Schemas>,
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* listeners for when they change.
|
|
9
9
|
* @packageDocumentation
|
|
10
10
|
* @module metrics
|
|
11
|
+
* @since v1.0.0
|
|
11
12
|
*/
|
|
12
13
|
|
|
13
14
|
import type {
|
|
@@ -25,6 +26,7 @@ import type {Id, IdOrNull, Ids} from '../../common/with-schemas/index.d.ts';
|
|
|
25
26
|
* The Metric type is simply an alias, but represents a number formed by
|
|
26
27
|
* aggregating multiple other numbers together.
|
|
27
28
|
* @category Metric
|
|
29
|
+
* @since v1.0.0
|
|
28
30
|
*/
|
|
29
31
|
export type Metric = number;
|
|
30
32
|
|
|
@@ -38,6 +40,7 @@ export type Metric = number;
|
|
|
38
40
|
* @param metricId The Id of the Metric that the callback can operate on.
|
|
39
41
|
* @param metric The value of the Metric.
|
|
40
42
|
* @category Callback
|
|
43
|
+
* @since v1.0.0
|
|
41
44
|
*/
|
|
42
45
|
export type MetricCallback = (metricId: Id, metric?: Metric) => void;
|
|
43
46
|
|
|
@@ -53,6 +56,7 @@ export type MetricCallback = (metricId: Id, metric?: Metric) => void;
|
|
|
53
56
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
54
57
|
* @returns The value of the Metric.
|
|
55
58
|
* @category Aggregators
|
|
59
|
+
* @since v1.0.0
|
|
56
60
|
*/
|
|
57
61
|
export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
58
62
|
|
|
@@ -69,7 +73,7 @@ export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
|
69
73
|
* being added, return `undefined` and the Metric will be completely
|
|
70
74
|
* recalculated.
|
|
71
75
|
*
|
|
72
|
-
*
|
|
76
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
73
77
|
* implementation of an MetricAggregateAdd function that can reduce the
|
|
74
78
|
* complexity cost of growing the input data set. See the setMetricDefinition
|
|
75
79
|
* method for more examples.
|
|
@@ -78,6 +82,7 @@ export type MetricAggregate = (numbers: number[], length: number) => Metric;
|
|
|
78
82
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
79
83
|
* @returns The new value of the Metric.
|
|
80
84
|
* @category Aggregators
|
|
85
|
+
* @since v1.0.0
|
|
81
86
|
*/
|
|
82
87
|
export type MetricAggregateAdd = (
|
|
83
88
|
metric: Metric,
|
|
@@ -101,7 +106,7 @@ export type MetricAggregateAdd = (
|
|
|
101
106
|
* values, and the previous minimum is being removed. The whole of the rest of
|
|
102
107
|
* the list will need to be re-scanned to find a new minimum.
|
|
103
108
|
*
|
|
104
|
-
*
|
|
109
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
105
110
|
* implementation of an MetricAggregateRemove function that can reduce the
|
|
106
111
|
* complexity cost of shrinking the input data set. See the setMetricDefinition
|
|
107
112
|
* method for more examples.
|
|
@@ -110,6 +115,7 @@ export type MetricAggregateAdd = (
|
|
|
110
115
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
111
116
|
* @returns The new value of the Metric.
|
|
112
117
|
* @category Aggregators
|
|
118
|
+
* @since v1.0.0
|
|
113
119
|
*/
|
|
114
120
|
export type MetricAggregateRemove = (
|
|
115
121
|
metric: Metric,
|
|
@@ -130,7 +136,7 @@ export type MetricAggregateRemove = (
|
|
|
130
136
|
* If it is not possible to shortcut the aggregation based on just one value
|
|
131
137
|
* changing, return `undefined` and the Metric will be completely recalculated.
|
|
132
138
|
*
|
|
133
|
-
*
|
|
139
|
+
* When possible, if you are providing a custom MetricAggregate, seek an
|
|
134
140
|
* implementation of an MetricAggregateReplace function that can reduce the
|
|
135
141
|
* complexity cost of changing the input data set in place. See the
|
|
136
142
|
* setMetricDefinition method for more examples.
|
|
@@ -140,6 +146,7 @@ export type MetricAggregateRemove = (
|
|
|
140
146
|
* @param length The length of the array of numbers in the Metric's aggregation.
|
|
141
147
|
* @returns The new value of the Metric.
|
|
142
148
|
* @category Aggregators
|
|
149
|
+
* @since v1.0.0
|
|
143
150
|
*/
|
|
144
151
|
export type MetricAggregateReplace = (
|
|
145
152
|
metric: Metric,
|
|
@@ -164,6 +171,7 @@ export type MetricAggregateReplace = (
|
|
|
164
171
|
* When called, a MetricIdsListener is given a reference to the Metrics object.
|
|
165
172
|
* @param metrics A reference to the Metrics object that changed.
|
|
166
173
|
* @category Listener
|
|
174
|
+
* @since v1.0.0
|
|
167
175
|
*/
|
|
168
176
|
export type MetricIdsListener<Schemas extends OptionalSchemas> = (
|
|
169
177
|
metrics: Metrics<Schemas>,
|
|
@@ -198,6 +206,7 @@ export type MetricIdsListener<Schemas extends OptionalSchemas> = (
|
|
|
198
206
|
* @param newMetric The new value of the Metric that changed.
|
|
199
207
|
* @param oldMetric The old value of the Metric that changed.
|
|
200
208
|
* @category Listener
|
|
209
|
+
* @since v1.0.0
|
|
201
210
|
*/
|
|
202
211
|
export type MetricListener<Schemas extends OptionalSchemas> = (
|
|
203
212
|
metrics: Metrics<Schemas>,
|
|
@@ -212,10 +221,13 @@ export type MetricListener<Schemas extends OptionalSchemas> = (
|
|
|
212
221
|
*
|
|
213
222
|
* A MetricsListenerStats object is returned from the getListenerStats method.
|
|
214
223
|
* @category Development
|
|
224
|
+
* @since v1.0.0
|
|
215
225
|
*/
|
|
216
226
|
export type MetricsListenerStats = {
|
|
217
227
|
/**
|
|
218
228
|
* The number of MetricListener functions registered with the Metrics object.
|
|
229
|
+
* @category Stat
|
|
230
|
+
* @since v1.0.0
|
|
219
231
|
*/
|
|
220
232
|
metric: number;
|
|
221
233
|
};
|
|
@@ -270,11 +282,12 @@ export type MetricsListenerStats = {
|
|
|
270
282
|
* metrics.delListener(listenerId);
|
|
271
283
|
* metrics.destroy();
|
|
272
284
|
* ```
|
|
273
|
-
* @see Metrics
|
|
285
|
+
* @see Using Metrics guides
|
|
274
286
|
* @see Rolling Dice demos
|
|
275
287
|
* @see Country demo
|
|
276
288
|
* @see Todo App demos
|
|
277
289
|
* @category Metrics
|
|
290
|
+
* @since v1.0.0
|
|
278
291
|
*/
|
|
279
292
|
export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
280
293
|
/**
|
|
@@ -464,6 +477,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
464
477
|
* // -> 2.5
|
|
465
478
|
* ```
|
|
466
479
|
* @category Configuration
|
|
480
|
+
* @since v1.0.0
|
|
467
481
|
*/
|
|
468
482
|
setMetricDefinition<TableId extends TableIdFromSchema<Schemas[0]>>(
|
|
469
483
|
metricId: Id,
|
|
@@ -510,6 +524,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
510
524
|
* // -> []
|
|
511
525
|
* ```
|
|
512
526
|
* @category Configuration
|
|
527
|
+
* @since v1.0.0
|
|
513
528
|
*/
|
|
514
529
|
delMetricDefinition(metricId: Id): Metrics<Schemas>;
|
|
515
530
|
|
|
@@ -537,6 +552,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
537
552
|
* // -> 1
|
|
538
553
|
* ```
|
|
539
554
|
* @category Getter
|
|
555
|
+
* @since v1.0.0
|
|
540
556
|
*/
|
|
541
557
|
getStore(): Store<Schemas>;
|
|
542
558
|
|
|
@@ -559,6 +575,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
559
575
|
* // -> ['speciesCount', 'petsCount']
|
|
560
576
|
* ```
|
|
561
577
|
* @category Getter
|
|
578
|
+
* @since v1.0.0
|
|
562
579
|
*/
|
|
563
580
|
getMetricIds(): Ids;
|
|
564
581
|
|
|
@@ -592,6 +609,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
592
609
|
* // -> ['lowestPrice', 1]
|
|
593
610
|
* ```
|
|
594
611
|
* @category Iterator
|
|
612
|
+
* @since v1.0.0
|
|
595
613
|
*/
|
|
596
614
|
forEachMetric(metricCallback: MetricCallback): void;
|
|
597
615
|
|
|
@@ -619,6 +637,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
619
637
|
* // -> true
|
|
620
638
|
* ```
|
|
621
639
|
* @category Getter
|
|
640
|
+
* @since v1.0.0
|
|
622
641
|
*/
|
|
623
642
|
hasMetric(metricId: Id): boolean;
|
|
624
643
|
|
|
@@ -651,6 +670,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
651
670
|
* // -> undefined
|
|
652
671
|
* ```
|
|
653
672
|
* @category Getter
|
|
673
|
+
* @since v1.0.0
|
|
654
674
|
*/
|
|
655
675
|
getTableId<TableId extends TableIdFromSchema<Schemas[0]>>(
|
|
656
676
|
metricId: Id,
|
|
@@ -687,6 +707,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
687
707
|
* // -> undefined
|
|
688
708
|
* ```
|
|
689
709
|
* @category Getter
|
|
710
|
+
* @since v1.0.0
|
|
690
711
|
*/
|
|
691
712
|
getMetric(metricId: Id): Metric | undefined;
|
|
692
713
|
|
|
@@ -822,6 +843,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
822
843
|
* metrics.delListener(listenerId);
|
|
823
844
|
* ```
|
|
824
845
|
* @category Listener
|
|
846
|
+
* @since v1.0.0
|
|
825
847
|
*/
|
|
826
848
|
addMetricListener(metricId: IdOrNull, listener: MetricListener<Schemas>): Id;
|
|
827
849
|
|
|
@@ -869,6 +891,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
869
891
|
* // The listener is not called.
|
|
870
892
|
* ```
|
|
871
893
|
* @category Listener
|
|
894
|
+
* @since v1.0.0
|
|
872
895
|
*/
|
|
873
896
|
delListener(listenerId: Id): Metrics<Schemas>;
|
|
874
897
|
|
|
@@ -903,6 +926,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
903
926
|
* // -> 0
|
|
904
927
|
* ```
|
|
905
928
|
* @category Lifecycle
|
|
929
|
+
* @since v1.0.0
|
|
906
930
|
*/
|
|
907
931
|
destroy(): void;
|
|
908
932
|
|
|
@@ -929,6 +953,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
929
953
|
* // -> {metric: 1}
|
|
930
954
|
* ```
|
|
931
955
|
* @category Development
|
|
956
|
+
* @since v1.0.0
|
|
932
957
|
*/
|
|
933
958
|
getListenerStats(): MetricsListenerStats;
|
|
934
959
|
}
|
|
@@ -973,6 +998,7 @@ export interface Metrics<in out Schemas extends OptionalSchemas> {
|
|
|
973
998
|
* // -> true
|
|
974
999
|
* ```
|
|
975
1000
|
* @category Creation
|
|
1001
|
+
* @since v1.0.0
|
|
976
1002
|
*/
|
|
977
1003
|
export function createMetrics<Schemas extends OptionalSchemas>(
|
|
978
1004
|
store: Store<Schemas>,
|