@arcote.tech/arc-react 0.0.27 → 0.0.29
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.js +32 -6
- package/dist/reactModel.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -67,8 +67,32 @@ class IDBReadTransaction {
|
|
|
67
67
|
async findByIndex(store, index, data) {
|
|
68
68
|
return new Promise((resolve) => {
|
|
69
69
|
const idbIndex = this.transaction.objectStore(store).index(index);
|
|
70
|
-
const
|
|
71
|
-
|
|
70
|
+
const keyPath = idbIndex.keyPath;
|
|
71
|
+
let keyRange;
|
|
72
|
+
const getKey = (obj) => {
|
|
73
|
+
if (!obj)
|
|
74
|
+
return;
|
|
75
|
+
const key = keyPath.map((key2) => obj[key2]);
|
|
76
|
+
if (key.some((value) => value === undefined))
|
|
77
|
+
return;
|
|
78
|
+
return key;
|
|
79
|
+
};
|
|
80
|
+
const simpleKey = getKey(data);
|
|
81
|
+
if (!simpleKey) {
|
|
82
|
+
const lower = "$gt" in data ? getKey(data.$gt) : getKey(data.$gte);
|
|
83
|
+
const upper = "$lt" in data ? getKey(data.$lt) : getKey(data.$lte);
|
|
84
|
+
const lowerOpen = "$gt" in data;
|
|
85
|
+
const upperOpen = "$lt" in data;
|
|
86
|
+
if (lower !== undefined && upper !== undefined) {
|
|
87
|
+
keyRange = IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen);
|
|
88
|
+
} else if (lower !== undefined) {
|
|
89
|
+
keyRange = IDBKeyRange.lowerBound(lower, lowerOpen);
|
|
90
|
+
} else {
|
|
91
|
+
keyRange = IDBKeyRange.upperBound(upper, upperOpen);
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
keyRange = IDBKeyRange.only(simpleKey);
|
|
95
|
+
}
|
|
72
96
|
const result = idbIndex.getAll(keyRange);
|
|
73
97
|
result.onsuccess = (e) => {
|
|
74
98
|
resolve(e.target.result);
|
|
@@ -244,12 +268,14 @@ var reactModel = (arcContext, databaseName) => {
|
|
|
244
268
|
}
|
|
245
269
|
return arcContext.commandsClient(context.client, context.dataStorage, context.catchErrorCallback);
|
|
246
270
|
},
|
|
247
|
-
async function query(queryBuilderFn) {
|
|
271
|
+
async function query(queryBuilderFn, datastorage) {
|
|
272
|
+
if (!datastorage)
|
|
273
|
+
datastorage = modelMasterDataStorage;
|
|
248
274
|
const queryBuilder = arcContext.queryBuilder();
|
|
249
275
|
const query = queryBuilderFn(queryBuilder).toQuery();
|
|
250
|
-
if (!
|
|
276
|
+
if (!datastorage)
|
|
251
277
|
throw new Error("dataStorage not found");
|
|
252
|
-
const result = await query.run(
|
|
278
|
+
const result = await query.run(datastorage);
|
|
253
279
|
return result;
|
|
254
280
|
},
|
|
255
281
|
function useLocalDataStorage() {
|
|
@@ -267,4 +293,4 @@ export {
|
|
|
267
293
|
formResolver
|
|
268
294
|
};
|
|
269
295
|
|
|
270
|
-
//# debugId=
|
|
296
|
+
//# debugId=EB08DA6873B8C68E64756E2164756E21
|
package/dist/reactModel.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ForkedDataStorage, type ArcContextAny, type CommandsClient, type QueryBuilderFunctionResult, type QueryFactoryFunction } from "@arcote.tech/arc";
|
|
1
|
+
import { ForkedDataStorage, type ArcContextAny, type CommandsClient, type DataStorage, type QueryBuilderFunctionResult, type QueryFactoryFunction } from "@arcote.tech/arc";
|
|
2
2
|
export declare const reactModel: <C extends ArcContextAny>(arcContext: C, databaseName: string) => readonly [(props: {
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
client: string;
|
|
@@ -12,5 +12,5 @@ export declare const reactModel: <C extends ArcContextAny>(arcContext: C, databa
|
|
|
12
12
|
catchErrorCallback: (error: any) => void;
|
|
13
13
|
}) => import("react/jsx-dev-runtime").JSX.Element, ({ children }: {
|
|
14
14
|
children: React.ReactNode;
|
|
15
|
-
}) => import("react/jsx-dev-runtime").JSX.Element, <QueryBuilderFn extends QueryFactoryFunction<C>>(queryBuilderFn: QueryBuilderFn, dependencies?: any[]) => [QueryBuilderFunctionResult<QueryBuilderFn>, boolean], () => CommandsClient<C["commands"]>, <QueryBuilderFn extends QueryFactoryFunction<C>>(queryBuilderFn: QueryBuilderFn) => Promise<QueryBuilderFunctionResult<QueryBuilderFn>>, () => ForkedDataStorage | null];
|
|
15
|
+
}) => import("react/jsx-dev-runtime").JSX.Element, <QueryBuilderFn extends QueryFactoryFunction<C>>(queryBuilderFn: QueryBuilderFn, dependencies?: any[]) => [QueryBuilderFunctionResult<QueryBuilderFn>, boolean], () => CommandsClient<C["commands"]>, <QueryBuilderFn extends QueryFactoryFunction<C>>(queryBuilderFn: QueryBuilderFn, datastorage?: DataStorage | null) => Promise<QueryBuilderFunctionResult<QueryBuilderFn>>, () => ForkedDataStorage | null];
|
|
16
16
|
//# sourceMappingURL=reactModel.d.ts.map
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "0.0.
|
|
7
|
+
"version": "0.0.29",
|
|
8
8
|
"private": false,
|
|
9
9
|
"author": "Przemysław Krasiński [arcote.tech]",
|
|
10
10
|
"description": "React client for the Arc framework, providing utilities for querying data and executing commands, enhancing the development of reactive and efficient user interfaces.",
|