shelving 1.76.2 → 1.79.0
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/{api → modules/api}/Resource.d.ts +0 -0
- package/{api → modules/api}/Resource.js +0 -0
- package/{api → modules/api}/index.d.ts +0 -0
- package/{api → modules/api}/index.js +0 -0
- package/{constraint → modules/constraint}/Constraint.d.ts +0 -0
- package/{constraint → modules/constraint}/Constraint.js +0 -0
- package/{constraint → modules/constraint}/Constraints.d.ts +1 -1
- package/{constraint → modules/constraint}/Constraints.js +0 -0
- package/{constraint → modules/constraint}/FilterConstraint.d.ts +6 -6
- package/{constraint → modules/constraint}/FilterConstraint.js +1 -1
- package/{constraint → modules/constraint}/FilterConstraints.d.ts +5 -5
- package/{constraint → modules/constraint}/FilterConstraints.js +0 -0
- package/{constraint → modules/constraint}/QueryConstraints.d.ts +4 -4
- package/{constraint → modules/constraint}/QueryConstraints.js +2 -2
- package/{constraint → modules/constraint}/SortConstraint.d.ts +4 -3
- package/{constraint → modules/constraint}/SortConstraint.js +2 -3
- package/{constraint → modules/constraint}/SortConstraints.d.ts +5 -5
- package/{constraint → modules/constraint}/SortConstraints.js +0 -0
- package/{constraint → modules/constraint}/index.d.ts +0 -0
- package/{constraint → modules/constraint}/index.js +0 -0
- package/{db → modules/db}/Change.d.ts +10 -13
- package/{db → modules/db}/Change.js +2 -2
- package/modules/db/Collection.d.ts +74 -0
- package/{db → modules/db}/Collection.js +47 -7
- package/modules/db/Database.d.ts +76 -0
- package/modules/db/Database.js +95 -0
- package/{db → modules/db}/Item.d.ts +9 -9
- package/{db → modules/db}/Item.js +19 -21
- package/{db → modules/db}/Query.d.ts +6 -6
- package/{db → modules/db}/Query.js +2 -3
- package/{db → modules/db}/index.d.ts +0 -0
- package/{db → modules/db}/index.js +0 -0
- package/{error → modules/error}/AssertionError.d.ts +0 -0
- package/{error → modules/error}/AssertionError.js +0 -0
- package/{error → modules/error}/ConditionError.d.ts +0 -0
- package/{error → modules/error}/ConditionError.js +0 -0
- package/{error → modules/error}/PermissionError.d.ts +0 -0
- package/{error → modules/error}/PermissionError.js +0 -0
- package/{error → modules/error}/RequiredError.d.ts +0 -0
- package/{error → modules/error}/RequiredError.js +0 -0
- package/{error → modules/error}/ThroughError.d.ts +0 -0
- package/{error → modules/error}/ThroughError.js +0 -0
- package/{error → modules/error}/UnsupportedError.d.ts +0 -0
- package/{error → modules/error}/UnsupportedError.js +0 -0
- package/{error → modules/error}/ValidationError.d.ts +0 -0
- package/{error → modules/error}/ValidationError.js +0 -0
- package/{error → modules/error}/index.d.ts +0 -0
- package/{error → modules/error}/index.js +0 -0
- package/{feedback → modules/feedback}/ErrorFeedback.d.ts +0 -0
- package/{feedback → modules/feedback}/ErrorFeedback.js +1 -5
- package/{feedback → modules/feedback}/Feedback.d.ts +0 -0
- package/{feedback → modules/feedback}/Feedback.js +1 -5
- package/{feedback → modules/feedback}/InvalidFeedback.d.ts +0 -0
- package/{feedback → modules/feedback}/InvalidFeedback.js +1 -5
- package/{feedback → modules/feedback}/SuccessFeedback.d.ts +0 -0
- package/{feedback → modules/feedback}/SuccessFeedback.js +1 -5
- package/{feedback → modules/feedback}/WarningFeedback.d.ts +0 -0
- package/{feedback → modules/feedback}/WarningFeedback.js +1 -5
- package/{feedback → modules/feedback}/hydrations.d.ts +0 -0
- package/{feedback → modules/feedback}/hydrations.js +0 -0
- package/{feedback → modules/feedback}/index.d.ts +0 -0
- package/{feedback → modules/feedback}/index.js +0 -0
- package/{firestore → modules/firestore}/client/FirestoreClientProvider.d.ts +3 -3
- package/{firestore → modules/firestore}/client/FirestoreClientProvider.js +4 -4
- package/{firestore → modules/firestore}/client/index.d.ts +0 -0
- package/{firestore → modules/firestore}/client/index.js +0 -0
- package/{firestore → modules/firestore}/lite/FirestoreLiteProvider.d.ts +3 -3
- package/{firestore → modules/firestore}/lite/FirestoreLiteProvider.js +4 -4
- package/{firestore → modules/firestore}/lite/index.d.ts +0 -0
- package/{firestore → modules/firestore}/lite/index.js +0 -0
- package/{firestore → modules/firestore}/server/FirestoreServerProvider.d.ts +3 -3
- package/{firestore → modules/firestore}/server/FirestoreServerProvider.js +4 -4
- package/{firestore → modules/firestore}/server/index.d.ts +0 -0
- package/{firestore → modules/firestore}/server/index.js +0 -0
- package/{index.d.ts → modules/index.d.ts} +0 -0
- package/{index.js → modules/index.js} +0 -0
- package/{markup → modules/markup}/index.d.ts +0 -0
- package/{markup → modules/markup}/index.js +0 -0
- package/{markup → modules/markup}/options.d.ts +0 -0
- package/{markup → modules/markup}/options.js +0 -0
- package/{markup → modules/markup}/regexp.d.ts +0 -0
- package/{markup → modules/markup}/regexp.js +0 -0
- package/{markup → modules/markup}/render.d.ts +0 -0
- package/{markup → modules/markup}/render.js +0 -0
- package/{markup → modules/markup}/rules.d.ts +0 -0
- package/{markup → modules/markup}/rules.js +0 -0
- package/{observe → modules/observe}/AbstractObserver.d.ts +0 -0
- package/{observe → modules/observe}/AbstractObserver.js +0 -0
- package/{observe → modules/observe}/AsyncObserver.d.ts +0 -0
- package/{observe → modules/observe}/AsyncObserver.js +0 -0
- package/{observe → modules/observe}/LastSubject.d.ts +0 -0
- package/{observe → modules/observe}/LastSubject.js +0 -0
- package/{observe → modules/observe}/MatchObserver.d.ts +0 -0
- package/{observe → modules/observe}/MatchObserver.js +0 -0
- package/{observe → modules/observe}/MatchableObserver.d.ts +0 -0
- package/{observe → modules/observe}/MatchableObserver.js +0 -0
- package/{observe → modules/observe}/Observable.d.ts +0 -0
- package/{observe → modules/observe}/Observable.js +0 -0
- package/{observe → modules/observe}/Observer.d.ts +0 -0
- package/{observe → modules/observe}/Observer.js +0 -0
- package/{observe → modules/observe}/OnceObserver.d.ts +0 -0
- package/{observe → modules/observe}/OnceObserver.js +0 -0
- package/{observe → modules/observe}/Subject.d.ts +0 -0
- package/{observe → modules/observe}/Subject.js +0 -0
- package/{observe → modules/observe}/ThroughObserver.d.ts +0 -0
- package/{observe → modules/observe}/ThroughObserver.js +0 -0
- package/{observe → modules/observe}/TransformObserver.d.ts +0 -0
- package/{observe → modules/observe}/TransformObserver.js +0 -0
- package/{observe → modules/observe}/TransformableObserver.d.ts +0 -0
- package/{observe → modules/observe}/TransformableObserver.js +0 -0
- package/{observe → modules/observe}/index.d.ts +0 -0
- package/{observe → modules/observe}/index.js +0 -0
- package/{observe → modules/observe}/util.d.ts +0 -0
- package/{observe → modules/observe}/util.js +0 -0
- package/{provider → modules/provider}/BatchProvider.d.ts +0 -0
- package/{provider → modules/provider}/BatchProvider.js +0 -0
- package/{provider → modules/provider}/CacheProvider.d.ts +3 -3
- package/{provider → modules/provider}/CacheProvider.js +6 -6
- package/{provider → modules/provider}/DebugProvider.d.ts +5 -5
- package/{provider → modules/provider}/DebugProvider.js +12 -12
- package/{provider → modules/provider}/MemoryProvider.d.ts +5 -5
- package/{provider → modules/provider}/MemoryProvider.js +9 -8
- package/{provider → modules/provider}/Provider.d.ts +7 -7
- package/{provider → modules/provider}/Provider.js +0 -0
- package/{provider → modules/provider}/ThroughProvider.d.ts +5 -5
- package/{provider → modules/provider}/ThroughProvider.js +4 -4
- package/{provider → modules/provider}/ValidationProvider.d.ts +11 -11
- package/{provider → modules/provider}/ValidationProvider.js +29 -28
- package/{provider → modules/provider}/index.d.ts +0 -0
- package/{provider → modules/provider}/index.js +0 -0
- package/{react → modules/react}/index.d.ts +0 -0
- package/{react → modules/react}/index.js +0 -0
- package/{react → modules/react}/useCache.d.ts +0 -0
- package/{react → modules/react}/useCache.js +0 -0
- package/{react → modules/react}/useInstance.d.ts +0 -0
- package/{react → modules/react}/useInstance.js +0 -0
- package/{react → modules/react}/useItem.d.ts +7 -7
- package/{react → modules/react}/useItem.js +0 -0
- package/{react → modules/react}/useLazy.d.ts +0 -0
- package/{react → modules/react}/useLazy.js +0 -0
- package/{react → modules/react}/useQuery.d.ts +10 -10
- package/{react → modules/react}/useQuery.js +0 -0
- package/{react → modules/react}/useReduce.d.ts +0 -0
- package/{react → modules/react}/useReduce.js +0 -0
- package/{react → modules/react}/useSubscribe.d.ts +0 -0
- package/{react → modules/react}/useSubscribe.js +0 -0
- package/{schema → modules/schema}/AllowSchema.d.ts +0 -0
- package/{schema → modules/schema}/AllowSchema.js +0 -0
- package/{schema → modules/schema}/ArraySchema.d.ts +0 -0
- package/{schema → modules/schema}/ArraySchema.js +0 -0
- package/{schema → modules/schema}/BooleanSchema.d.ts +0 -0
- package/{schema → modules/schema}/BooleanSchema.js +0 -0
- package/{schema → modules/schema}/ColorSchema.d.ts +0 -0
- package/{schema → modules/schema}/ColorSchema.js +0 -0
- package/{schema → modules/schema}/DataSchema.d.ts +5 -1
- package/{schema → modules/schema}/DataSchema.js +0 -0
- package/{schema → modules/schema}/DateSchema.d.ts +0 -0
- package/{schema → modules/schema}/DateSchema.js +0 -0
- package/{schema → modules/schema}/EmailSchema.d.ts +0 -0
- package/{schema → modules/schema}/EmailSchema.js +0 -0
- package/{schema → modules/schema}/KeySchema.d.ts +0 -0
- package/{schema → modules/schema}/KeySchema.js +0 -0
- package/{schema → modules/schema}/LinkSchema.d.ts +0 -0
- package/{schema → modules/schema}/LinkSchema.js +0 -0
- package/{schema → modules/schema}/NumberSchema.d.ts +0 -0
- package/{schema → modules/schema}/NumberSchema.js +0 -0
- package/{schema → modules/schema}/ObjectSchema.d.ts +0 -0
- package/{schema → modules/schema}/ObjectSchema.js +0 -0
- package/{schema → modules/schema}/OptionalSchema.d.ts +0 -0
- package/{schema → modules/schema}/OptionalSchema.js +0 -0
- package/{schema → modules/schema}/PhoneSchema.d.ts +0 -0
- package/{schema → modules/schema}/PhoneSchema.js +0 -0
- package/{schema → modules/schema}/RequiredSchema.d.ts +0 -0
- package/{schema → modules/schema}/RequiredSchema.js +0 -0
- package/{schema → modules/schema}/Schema.d.ts +0 -0
- package/{schema → modules/schema}/Schema.js +0 -0
- package/{schema → modules/schema}/SlugSchema.d.ts +0 -0
- package/{schema → modules/schema}/SlugSchema.js +0 -0
- package/{schema → modules/schema}/StringSchema.d.ts +0 -0
- package/{schema → modules/schema}/StringSchema.js +0 -0
- package/{schema → modules/schema}/ThroughSchema.d.ts +0 -0
- package/{schema → modules/schema}/ThroughSchema.js +0 -0
- package/{schema → modules/schema}/index.d.ts +0 -0
- package/{schema → modules/schema}/index.js +0 -0
- package/{state → modules/state}/ArrayState.d.ts +0 -0
- package/{state → modules/state}/ArrayState.js +0 -0
- package/{state → modules/state}/BooleanState.d.ts +0 -0
- package/{state → modules/state}/BooleanState.js +0 -0
- package/{state → modules/state}/DataState.d.ts +3 -3
- package/{state → modules/state}/DataState.js +0 -0
- package/{state → modules/state}/ObjectState.d.ts +0 -0
- package/{state → modules/state}/ObjectState.js +0 -0
- package/{state → modules/state}/SelfClosingState.d.ts +0 -0
- package/{state → modules/state}/SelfClosingState.js +0 -0
- package/{state → modules/state}/State.d.ts +0 -0
- package/{state → modules/state}/State.js +0 -0
- package/{state → modules/state}/index.d.ts +0 -0
- package/{state → modules/state}/index.js +0 -0
- package/{test → modules/test}/basics.d.ts +0 -0
- package/{test → modules/test}/basics.js +0 -0
- package/{test → modules/test}/index.d.ts +0 -0
- package/{test → modules/test}/index.js +0 -0
- package/{test → modules/test}/people.d.ts +0 -0
- package/{test → modules/test}/people.js +0 -0
- package/{test → modules/test}/util.d.ts +0 -0
- package/{test → modules/test}/util.js +0 -0
- package/{update → modules/update}/ArrayUpdate.d.ts +0 -0
- package/{update → modules/update}/ArrayUpdate.js +0 -0
- package/{update → modules/update}/DataUpdate.d.ts +15 -7
- package/{update → modules/update}/DataUpdate.js +28 -21
- package/{update → modules/update}/Delete.d.ts +0 -0
- package/{update → modules/update}/Delete.js +0 -0
- package/{update → modules/update}/Increment.d.ts +0 -0
- package/{update → modules/update}/Increment.js +0 -0
- package/{update → modules/update}/ObjectUpdate.d.ts +0 -0
- package/{update → modules/update}/ObjectUpdate.js +0 -0
- package/{update → modules/update}/Update.d.ts +0 -0
- package/{update → modules/update}/Update.js +0 -0
- package/{update → modules/update}/hydrations.d.ts +0 -0
- package/{update → modules/update}/hydrations.js +0 -0
- package/{update → modules/update}/index.d.ts +0 -0
- package/{update → modules/update}/index.js +0 -0
- package/{util → modules/util}/array.d.ts +0 -0
- package/{util → modules/util}/array.js +0 -0
- package/{util → modules/util}/assert.d.ts +0 -0
- package/{util → modules/util}/assert.js +0 -0
- package/{util → modules/util}/async.d.ts +0 -0
- package/{util → modules/util}/async.js +0 -0
- package/{util → modules/util}/boolean.d.ts +0 -0
- package/{util → modules/util}/boolean.js +0 -0
- package/{util → modules/util}/class.d.ts +0 -0
- package/{util → modules/util}/class.js +0 -0
- package/{util → modules/util}/clone.d.ts +0 -0
- package/{util → modules/util}/clone.js +0 -0
- package/{util → modules/util}/color.d.ts +0 -0
- package/{util → modules/util}/color.js +0 -0
- package/{util → modules/util}/data.d.ts +0 -0
- package/{util → modules/util}/data.js +0 -0
- package/{util → modules/util}/date.d.ts +0 -0
- package/{util → modules/util}/date.js +0 -0
- package/{util → modules/util}/debug.d.ts +0 -0
- package/{util → modules/util}/debug.js +0 -0
- package/{util → modules/util}/diff.d.ts +0 -0
- package/{util → modules/util}/diff.js +0 -0
- package/{util → modules/util}/entry.d.ts +0 -0
- package/{util → modules/util}/entry.js +0 -0
- package/{util → modules/util}/equal.d.ts +0 -0
- package/{util → modules/util}/equal.js +0 -0
- package/{util → modules/util}/error.d.ts +0 -0
- package/{util → modules/util}/error.js +0 -0
- package/{util → modules/util}/filter.d.ts +0 -0
- package/{util → modules/util}/filter.js +0 -0
- package/{util → modules/util}/function.d.ts +0 -0
- package/{util → modules/util}/function.js +0 -0
- package/{util → modules/util}/hydrate.d.ts +0 -0
- package/{util → modules/util}/hydrate.js +0 -0
- package/{util → modules/util}/index.d.ts +0 -0
- package/{util → modules/util}/index.js +0 -0
- package/{util → modules/util}/iterate.d.ts +0 -0
- package/{util → modules/util}/iterate.js +0 -0
- package/{util → modules/util}/jsx.d.ts +0 -0
- package/{util → modules/util}/jsx.js +0 -0
- package/{util → modules/util}/lazy.d.ts +0 -0
- package/{util → modules/util}/lazy.js +0 -0
- package/{util → modules/util}/map.d.ts +0 -0
- package/{util → modules/util}/map.js +0 -0
- package/{util → modules/util}/match.d.ts +0 -0
- package/{util → modules/util}/match.js +0 -0
- package/{util → modules/util}/merge.d.ts +0 -0
- package/{util → modules/util}/merge.js +0 -0
- package/{util → modules/util}/null.d.ts +0 -0
- package/{util → modules/util}/null.js +0 -0
- package/{util → modules/util}/number.d.ts +0 -0
- package/{util → modules/util}/number.js +0 -0
- package/{util → modules/util}/object.d.ts +0 -0
- package/{util → modules/util}/object.js +0 -0
- package/{util → modules/util}/random.d.ts +0 -0
- package/{util → modules/util}/random.js +0 -0
- package/{util → modules/util}/regexp.d.ts +0 -0
- package/{util → modules/util}/regexp.js +0 -0
- package/{util → modules/util}/serialise.d.ts +0 -0
- package/{util → modules/util}/serialise.js +0 -0
- package/{util → modules/util}/set.d.ts +0 -0
- package/{util → modules/util}/set.js +0 -0
- package/{util → modules/util}/sort.d.ts +0 -0
- package/{util → modules/util}/sort.js +0 -0
- package/{util → modules/util}/source.d.ts +0 -0
- package/{util → modules/util}/source.js +0 -0
- package/{util → modules/util}/string.d.ts +0 -0
- package/{util → modules/util}/string.js +0 -0
- package/{util → modules/util}/template.d.ts +0 -0
- package/{util → modules/util}/template.js +0 -0
- package/{util → modules/util}/timeout.d.ts +0 -0
- package/{util → modules/util}/timeout.js +0 -0
- package/{util → modules/util}/transform.d.ts +3 -3
- package/{util → modules/util}/transform.js +0 -0
- package/{util → modules/util}/undefined.d.ts +0 -0
- package/{util → modules/util}/undefined.js +0 -0
- package/{util → modules/util}/units.d.ts +0 -0
- package/{util → modules/util}/units.js +0 -0
- package/{util → modules/util}/url.d.ts +0 -0
- package/{util → modules/util}/url.js +0 -0
- package/{util → modules/util}/validate.d.ts +0 -0
- package/{util → modules/util}/validate.js +0 -0
- package/package.json +8 -8
- package/db/Collection.d.ts +0 -46
- package/db/Database.d.ts +0 -42
- package/db/Database.js +0 -43
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import type { Unsubscribe } from "../observe/Observable.js";
|
|
2
|
-
import { Datas,
|
|
2
|
+
import { Datas, Key } from "../util/data.js";
|
|
3
3
|
import { ItemValue, ItemData, AsyncItem, Item } from "../db/Item.js";
|
|
4
4
|
import { State } from "../state/State.js";
|
|
5
5
|
import { BooleanState } from "../state/BooleanState.js";
|
|
6
6
|
/** Hold the current state of a item. */
|
|
7
|
-
export declare class ItemState<T extends Datas> extends State<ItemValue<
|
|
8
|
-
readonly ref: Item<T> | AsyncItem<T>;
|
|
7
|
+
export declare class ItemState<T extends Datas, K extends Key<T> = Key<T>> extends State<ItemValue<T[K]>> {
|
|
8
|
+
readonly ref: Item<T, K> | AsyncItem<T, K>;
|
|
9
9
|
readonly busy: BooleanState;
|
|
10
10
|
/** Get the data of the item (throws `RequiredError` if item doesn't exist). */
|
|
11
|
-
get data(): ItemData<
|
|
11
|
+
get data(): ItemData<T[K]>;
|
|
12
12
|
/** Does the item exist (i.e. its value isn't `null`)? */
|
|
13
13
|
get exists(): boolean;
|
|
14
|
-
constructor(ref: Item<T> | AsyncItem<T>);
|
|
14
|
+
constructor(ref: Item<T, K> | AsyncItem<T, K>);
|
|
15
15
|
/** Refresh this state from the source provider. */
|
|
16
16
|
readonly refresh: () => void;
|
|
17
17
|
_refresh(): Promise<void>;
|
|
@@ -28,5 +28,5 @@ export declare class ItemState<T extends Datas> extends State<ItemValue<Value<T>
|
|
|
28
28
|
* Use an item in a React component.
|
|
29
29
|
* - Uses the default cache, so will error if not used inside `<Cache>`
|
|
30
30
|
*/
|
|
31
|
-
export declare function useItem<T extends Datas
|
|
32
|
-
export declare function useItem<T extends Datas
|
|
31
|
+
export declare function useItem<T extends Datas, K extends Key<T>>(ref: Item<T, K> | AsyncItem<T, K>): ItemState<T, K>;
|
|
32
|
+
export declare function useItem<T extends Datas, K extends Key<T>>(ref?: Item<T, K> | AsyncItem<T, K>): ItemState<T, K> | undefined;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import type { Unsubscribe } from "../observe/Observable.js";
|
|
2
|
-
import type { Datas,
|
|
2
|
+
import type { Datas, Key } from "../util/data.js";
|
|
3
3
|
import type { ItemArray, ItemValue, ItemData } from "../db/Item.js";
|
|
4
4
|
import { AsyncQuery, Query } from "../db/Query.js";
|
|
5
5
|
import { State } from "../state/State.js";
|
|
6
6
|
import { BooleanState } from "../state/BooleanState.js";
|
|
7
7
|
/** Hold the current state of a query. */
|
|
8
|
-
export declare class QueryState<T extends Datas> extends State<ItemArray<
|
|
9
|
-
readonly ref: Query<T> | AsyncQuery<T>;
|
|
8
|
+
export declare class QueryState<T extends Datas, K extends Key<T> = Key<T>> extends State<ItemArray<T[K]>> {
|
|
9
|
+
readonly ref: Query<T, K> | AsyncQuery<T, K>;
|
|
10
10
|
readonly busy: BooleanState;
|
|
11
11
|
readonly limit: number;
|
|
12
12
|
/** Can more items be loaded after the current result. */
|
|
13
13
|
get hasMore(): boolean;
|
|
14
14
|
private _hasMore;
|
|
15
15
|
/** Get the first document matched by this query or `null` if this query has no items. */
|
|
16
|
-
get firstValue(): ItemValue<
|
|
16
|
+
get firstValue(): ItemValue<T[K]>;
|
|
17
17
|
/** Get the first document matched by this query. */
|
|
18
|
-
get firstData(): ItemData<
|
|
18
|
+
get firstData(): ItemData<T[K]>;
|
|
19
19
|
/** Get the last document matched by this query or `null` if this query has no items. */
|
|
20
|
-
get lastValue(): ItemValue<
|
|
20
|
+
get lastValue(): ItemValue<T[K]>;
|
|
21
21
|
/** Get the last document matched by this query. */
|
|
22
|
-
get lastData(): ItemData<
|
|
22
|
+
get lastData(): ItemData<T[K]>;
|
|
23
23
|
/** Does the document have at least one result. */
|
|
24
24
|
get exists(): boolean;
|
|
25
25
|
/** Get the number of items matching this query. */
|
|
26
26
|
get count(): number;
|
|
27
|
-
constructor(ref: Query<T> | AsyncQuery<T>);
|
|
27
|
+
constructor(ref: Query<T, K> | AsyncQuery<T, K>);
|
|
28
28
|
/** Refresh this state from the source provider. */
|
|
29
29
|
readonly refresh: () => void;
|
|
30
30
|
_refresh(): Promise<void>;
|
|
@@ -47,5 +47,5 @@ export declare class QueryState<T extends Datas> extends State<ItemArray<Value<T
|
|
|
47
47
|
* Use a query in a React component.
|
|
48
48
|
* - Uses the default cache, so will error if not used inside `<Cache>`
|
|
49
49
|
*/
|
|
50
|
-
export declare function useQuery<T extends Datas
|
|
51
|
-
export declare function useQuery<T extends Datas
|
|
50
|
+
export declare function useQuery<T extends Datas, K extends Key<T>>(ref: Query<T, K> | AsyncQuery<T, K>): QueryState<T, K>;
|
|
51
|
+
export declare function useQuery<T extends Datas, K extends Key<T>>(ref?: Query<T, K> | AsyncQuery<T, K>): QueryState<T, K> | undefined;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Data } from "../util/data.js";
|
|
1
|
+
import type { Data, Datas } from "../util/data.js";
|
|
2
2
|
import { Validators } from "../util/validate.js";
|
|
3
3
|
import { OptionalSchema } from "./OptionalSchema.js";
|
|
4
4
|
import { Schema } from "./Schema.js";
|
|
@@ -12,6 +12,10 @@ export declare class DataSchema<T extends Data> extends Schema<T> {
|
|
|
12
12
|
});
|
|
13
13
|
validate(unsafeValue?: unknown): T;
|
|
14
14
|
}
|
|
15
|
+
/** Set of named data schemas. */
|
|
16
|
+
export declare type DataSchemas<T extends Datas> = {
|
|
17
|
+
[K in keyof T]: DataSchema<T[K]>;
|
|
18
|
+
};
|
|
15
19
|
/** Valid data object with specifed properties. */
|
|
16
20
|
export declare const DATA: <T extends Data>(props: Validators<T>) => DataSchema<T>;
|
|
17
21
|
/** Valid data object with specifed properties, or `null` */
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Data, Key, OptionalData } from "../util/data.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Transformers } from "../util/transform.js";
|
|
3
3
|
import { State } from "./State.js";
|
|
4
4
|
/** State that stores a data object and has additional methods to help with that. */
|
|
5
5
|
export declare class DataState<T extends Data> extends State<T> {
|
|
@@ -8,7 +8,7 @@ export declare class DataState<T extends Data> extends State<T> {
|
|
|
8
8
|
/** Set a prop in this object to a new value. */
|
|
9
9
|
set<K extends Key<T>>(key: K, value: T[K]): void;
|
|
10
10
|
/** Update several props in this object. */
|
|
11
|
-
update(updates:
|
|
11
|
+
update(updates: Transformers<T>): void;
|
|
12
12
|
}
|
|
13
13
|
/** State that stores an optional data object and has additional methods to help with that. */
|
|
14
14
|
export declare class OptionalDataState<T extends Data> extends State<OptionalData<T>> {
|
|
@@ -19,7 +19,7 @@ export declare class OptionalDataState<T extends Data> extends State<OptionalDat
|
|
|
19
19
|
/** Set a prop in this object to a new value. */
|
|
20
20
|
set<K extends Key<T>>(key: K, value: T[K]): void;
|
|
21
21
|
/** Update several props in this object. */
|
|
22
|
-
update(updates:
|
|
22
|
+
update(updates: Transformers<T>): void;
|
|
23
23
|
/** Delete this result. */
|
|
24
24
|
delete(): void;
|
|
25
25
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Data, Key, Prop } from "../util/data.js";
|
|
2
2
|
import { Nullish } from "../util/null.js";
|
|
3
3
|
import { Transformable } from "../util/transform.js";
|
|
4
|
-
import { Validator } from "../util/validate.js";
|
|
4
|
+
import { Validator, Validators } from "../util/validate.js";
|
|
5
5
|
import { Update } from "./Update.js";
|
|
6
6
|
/**
|
|
7
7
|
* Set of named transforms for the props of a data object.
|
|
@@ -10,19 +10,27 @@ import { Update } from "./Update.js";
|
|
|
10
10
|
* - If a prop contains a transform, the existing value is transformed.
|
|
11
11
|
* - This is a subset of `Dispatchers`
|
|
12
12
|
*/
|
|
13
|
-
export declare type
|
|
13
|
+
export declare type Updates<T extends Data = Data> = {
|
|
14
14
|
readonly [K in keyof T]?: T[K] | Update<T[K]>;
|
|
15
15
|
};
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Validate a set of updates against a set of validators.
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateUpdates<T extends Data>(unsafeUpdates: Updates<T>, validators: Validators<T>): {
|
|
20
|
+
[k: string]: import("../util/data.js").Value<Updates<T>>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Update that can be applied to a data object to update its props.
|
|
24
|
+
*/
|
|
25
|
+
export declare class DataUpdate<T extends Data = Data> extends Update<T> implements Iterable<Prop<Updates<T>>>, Transformable<T, T> {
|
|
18
26
|
/** Return a data update with a specific prop marked for update. */
|
|
19
27
|
static with<X extends Data, K extends Key<X>>(key: Nullish<K>, value: X[K] | Update<X[K]>): DataUpdate<X>;
|
|
20
|
-
readonly updates:
|
|
21
|
-
constructor(props:
|
|
28
|
+
readonly updates: Updates<T>;
|
|
29
|
+
constructor(props: Updates<T>);
|
|
22
30
|
transform(data: T): T;
|
|
23
31
|
validate(validator: Validator<T>): this;
|
|
24
32
|
/** Return a data update with a specific prop marked for update. */
|
|
25
33
|
with<K extends Key<T>>(key: Nullish<K>, value: T[K] | Update<T[K]>): this;
|
|
26
34
|
/** Iterate over the transforms in this object. */
|
|
27
|
-
[Symbol.iterator](): Iterator<Prop<
|
|
35
|
+
[Symbol.iterator](): Iterator<Prop<Updates<T>>, void>;
|
|
28
36
|
}
|
|
@@ -6,7 +6,33 @@ import { isNullish } from "../util/null.js";
|
|
|
6
6
|
import { transformData } from "../util/transform.js";
|
|
7
7
|
import { validate } from "../util/validate.js";
|
|
8
8
|
import { Update } from "./Update.js";
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Validate a set of updates against a set of validators.
|
|
11
|
+
*/
|
|
12
|
+
export function validateUpdates(unsafeUpdates, validators) {
|
|
13
|
+
return Object.fromEntries(_validateUpdates(unsafeUpdates, validators));
|
|
14
|
+
}
|
|
15
|
+
function* _validateUpdates(unsafeUpdates, validators) {
|
|
16
|
+
const feedbacks = new Map();
|
|
17
|
+
for (const [key, validator] of getProps(validators)) {
|
|
18
|
+
const unsafeUpdate = unsafeUpdates[key];
|
|
19
|
+
if (unsafeUpdate !== undefined) {
|
|
20
|
+
try {
|
|
21
|
+
yield [key, unsafeUpdate instanceof Update ? unsafeUpdate.validate(validator) : validate(unsafeUpdate, validator)];
|
|
22
|
+
}
|
|
23
|
+
catch (thrown) {
|
|
24
|
+
if (!isFeedback(thrown))
|
|
25
|
+
throw thrown;
|
|
26
|
+
feedbacks.set(key, thrown);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (feedbacks.size)
|
|
31
|
+
throw new InvalidFeedback("Invalid updates", feedbacks);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Update that can be applied to a data object to update its props.
|
|
35
|
+
*/
|
|
10
36
|
export class DataUpdate extends Update {
|
|
11
37
|
constructor(props) {
|
|
12
38
|
super();
|
|
@@ -25,7 +51,7 @@ export class DataUpdate extends Update {
|
|
|
25
51
|
return {
|
|
26
52
|
__proto__: Object.getPrototypeOf(this),
|
|
27
53
|
...this,
|
|
28
|
-
updates:
|
|
54
|
+
updates: validateUpdates(this.updates, validator.props),
|
|
29
55
|
};
|
|
30
56
|
}
|
|
31
57
|
/** Return a data update with a specific prop marked for update. */
|
|
@@ -43,22 +69,3 @@ export class DataUpdate extends Update {
|
|
|
43
69
|
return Object.entries(this.updates).values();
|
|
44
70
|
}
|
|
45
71
|
}
|
|
46
|
-
/** Validate a set of transforms against a set of validators. */
|
|
47
|
-
function* _validateUpdates(unsafeUpdates, validators) {
|
|
48
|
-
const feedbacks = new Map();
|
|
49
|
-
for (const [key, validator] of getProps(validators)) {
|
|
50
|
-
const unsafeUpdate = unsafeUpdates[key];
|
|
51
|
-
if (unsafeUpdate !== undefined) {
|
|
52
|
-
try {
|
|
53
|
-
yield [key, unsafeUpdate instanceof Update ? unsafeUpdate.validate(validator) : validate(unsafeUpdate, validator)];
|
|
54
|
-
}
|
|
55
|
-
catch (thrown) {
|
|
56
|
-
if (!isFeedback(thrown))
|
|
57
|
-
throw thrown;
|
|
58
|
-
feedbacks.set(key, thrown);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (feedbacks.size)
|
|
63
|
-
throw new InvalidFeedback("Invalid updates", feedbacks);
|
|
64
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|