tinybase 7.1.0-beta.3 → 7.1.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/@types/schematizers/schematizer-arktype/index.d.ts +114 -0
- package/@types/schematizers/schematizer-arktype/with-schemas/index.d.ts +8 -0
- package/@types/schematizers/schematizer-effect/index.d.ts +118 -0
- package/@types/schematizers/schematizer-effect/with-schemas/index.d.ts +8 -0
- package/@types/schematizers/schematizer-yup/index.d.ts +112 -0
- package/@types/schematizers/schematizer-yup/with-schemas/index.d.ts +7 -0
- package/checkpoints/index.js +2 -2
- package/checkpoints/with-schemas/index.js +2 -2
- package/index.js +6 -4
- package/indexes/index.js +2 -2
- package/indexes/with-schemas/index.js +2 -2
- package/mergeable-store/index.js +2 -2
- package/mergeable-store/with-schemas/index.js +2 -2
- package/metrics/index.js +6 -4
- package/metrics/with-schemas/index.js +6 -4
- package/min/checkpoints/index.js +1 -1
- package/min/checkpoints/index.js.gz +0 -0
- package/min/checkpoints/with-schemas/index.js +1 -1
- package/min/checkpoints/with-schemas/index.js.gz +0 -0
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/indexes/index.js +1 -1
- package/min/indexes/index.js.gz +0 -0
- package/min/indexes/with-schemas/index.js +1 -1
- package/min/indexes/with-schemas/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/metrics/index.js +1 -1
- package/min/metrics/index.js.gz +0 -0
- package/min/metrics/with-schemas/index.js +1 -1
- package/min/metrics/with-schemas/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/relationships/index.js +1 -1
- package/min/relationships/index.js.gz +0 -0
- package/min/relationships/with-schemas/index.js +1 -1
- package/min/relationships/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-arktype/index.js +1 -0
- package/min/schematizers/schematizer-arktype/index.js.gz +0 -0
- package/min/schematizers/schematizer-arktype/with-schemas/index.js +1 -0
- package/min/schematizers/schematizer-arktype/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-effect/index.js +1 -0
- package/min/schematizers/schematizer-effect/index.js.gz +0 -0
- package/min/schematizers/schematizer-effect/with-schemas/index.js +1 -0
- package/min/schematizers/schematizer-effect/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-typebox/index.js +1 -1
- package/min/schematizers/schematizer-typebox/index.js.gz +0 -0
- package/min/schematizers/schematizer-typebox/with-schemas/index.js +1 -1
- package/min/schematizers/schematizer-typebox/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-valibot/index.js +1 -1
- package/min/schematizers/schematizer-valibot/index.js.gz +0 -0
- package/min/schematizers/schematizer-valibot/with-schemas/index.js +1 -1
- package/min/schematizers/schematizer-valibot/with-schemas/index.js.gz +0 -0
- package/min/schematizers/schematizer-yup/index.js +1 -0
- package/min/schematizers/schematizer-yup/index.js.gz +0 -0
- package/min/schematizers/schematizer-yup/with-schemas/index.js +1 -0
- package/min/schematizers/schematizer-yup/with-schemas/index.js.gz +0 -0
- package/min/store/index.js +1 -1
- package/min/store/index.js.gz +0 -0
- package/min/store/with-schemas/index.js +1 -1
- package/min/store/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/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/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-dom/index.js +1 -1
- package/min/ui-react-dom/index.js.gz +0 -0
- package/min/ui-react-dom/with-schemas/index.js +1 -1
- package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +19 -16
- package/omni/with-schemas/index.js +19 -16
- package/package.json +118 -2
- package/persisters/index.js +6 -4
- package/persisters/persister-automerge/index.js +2 -2
- package/persisters/persister-automerge/with-schemas/index.js +2 -2
- package/persisters/persister-browser/index.js +3 -3
- package/persisters/persister-browser/with-schemas/index.js +3 -3
- package/persisters/persister-cr-sqlite-wasm/index.js +6 -4
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +6 -4
- package/persisters/persister-durable-object-sql-storage/index.js +6 -4
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +6 -4
- package/persisters/persister-durable-object-storage/index.js +3 -3
- package/persisters/persister-durable-object-storage/with-schemas/index.js +3 -3
- package/persisters/persister-electric-sql/index.js +6 -4
- package/persisters/persister-electric-sql/with-schemas/index.js +6 -4
- package/persisters/persister-expo-sqlite/index.js +6 -4
- package/persisters/persister-expo-sqlite/with-schemas/index.js +6 -4
- package/persisters/persister-file/index.js +3 -3
- package/persisters/persister-file/with-schemas/index.js +3 -3
- package/persisters/persister-indexed-db/index.js +2 -2
- package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
- package/persisters/persister-libsql/index.js +6 -4
- package/persisters/persister-libsql/with-schemas/index.js +6 -4
- package/persisters/persister-partykit-client/index.js +2 -2
- package/persisters/persister-partykit-client/with-schemas/index.js +2 -2
- package/persisters/persister-pglite/index.js +3 -3
- package/persisters/persister-pglite/with-schemas/index.js +3 -3
- package/persisters/persister-postgres/index.js +3 -3
- package/persisters/persister-postgres/with-schemas/index.js +3 -3
- package/persisters/persister-powersync/index.js +6 -4
- package/persisters/persister-powersync/with-schemas/index.js +6 -4
- package/persisters/persister-react-native-mmkv/index.js +4 -4
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -4
- package/persisters/persister-react-native-sqlite/index.js +6 -4
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +6 -4
- package/persisters/persister-remote/index.js +2 -2
- package/persisters/persister-remote/with-schemas/index.js +2 -2
- package/persisters/persister-sqlite-bun/index.js +6 -4
- package/persisters/persister-sqlite-bun/with-schemas/index.js +6 -4
- package/persisters/persister-sqlite-wasm/index.js +6 -4
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +6 -4
- package/persisters/persister-sqlite3/index.js +6 -4
- package/persisters/persister-sqlite3/with-schemas/index.js +6 -4
- package/persisters/persister-yjs/index.js +2 -2
- package/persisters/persister-yjs/with-schemas/index.js +2 -2
- package/persisters/with-schemas/index.js +6 -4
- package/queries/index.js +1 -1
- package/queries/with-schemas/index.js +1 -1
- package/readme.md +3 -3
- package/relationships/index.js +2 -2
- package/relationships/with-schemas/index.js +2 -2
- package/releases.md +1 -1
- package/schematizers/schematizer-arktype/index.js +163 -0
- package/schematizers/schematizer-arktype/with-schemas/index.js +163 -0
- package/schematizers/schematizer-effect/index.js +137 -0
- package/schematizers/schematizer-effect/with-schemas/index.js +137 -0
- package/schematizers/schematizer-typebox/index.js +3 -2
- package/schematizers/schematizer-typebox/with-schemas/index.js +3 -2
- package/schematizers/schematizer-valibot/index.js +4 -4
- package/schematizers/schematizer-valibot/with-schemas/index.js +4 -4
- package/schematizers/schematizer-yup/index.js +100 -0
- package/schematizers/schematizer-yup/with-schemas/index.js +100 -0
- package/schematizers/schematizer-zod/index.js +2 -2
- package/schematizers/schematizer-zod/with-schemas/index.js +2 -2
- package/store/index.js +2 -2
- package/store/with-schemas/index.js +2 -2
- package/synchronizers/index.js +2 -2
- package/synchronizers/synchronizer-broadcast-channel/index.js +2 -2
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +2 -2
- package/synchronizers/synchronizer-local/index.js +2 -2
- package/synchronizers/synchronizer-local/with-schemas/index.js +2 -2
- package/synchronizers/synchronizer-ws-client/index.js +3 -3
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +3 -3
- package/synchronizers/synchronizer-ws-server/index.js +3 -3
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +3 -3
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +3 -3
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +3 -3
- package/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
- package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
- package/synchronizers/with-schemas/index.js +2 -2
- package/ui-react-dom/index.js +11 -8
- package/ui-react-dom/with-schemas/index.js +11 -8
- package/ui-react-inspector/index.js +14 -11
- package/ui-react-inspector/with-schemas/index.js +14 -11
- package/with-schemas/index.js +6 -4
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
const getTypeOf = (thing) => typeof thing;
|
|
2
|
+
const EMPTY_STRING = '';
|
|
3
|
+
const STRING = getTypeOf(EMPTY_STRING);
|
|
4
|
+
const BOOLEAN = getTypeOf(true);
|
|
5
|
+
const NUMBER = getTypeOf(0);
|
|
6
|
+
const TYPE = 'type';
|
|
7
|
+
const DEFAULT = 'default';
|
|
8
|
+
const ALLOW_NULL = 'allowNull';
|
|
9
|
+
const NULLABLE = 'nullable';
|
|
10
|
+
|
|
11
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
12
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
13
|
+
const isNullish = (thing) => thing == null;
|
|
14
|
+
const isUndefined = (thing) => thing === void 0;
|
|
15
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
16
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
17
|
+
const size = (arrayOrString) => arrayOrString.length;
|
|
18
|
+
|
|
19
|
+
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
20
|
+
|
|
21
|
+
const object = Object;
|
|
22
|
+
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
23
|
+
const objEntries = object.entries;
|
|
24
|
+
const isObject = (obj) =>
|
|
25
|
+
!isNullish(obj) &&
|
|
26
|
+
ifNotNullish(
|
|
27
|
+
getPrototypeOf(obj),
|
|
28
|
+
(objPrototype) =>
|
|
29
|
+
objPrototype == object.prototype ||
|
|
30
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
31
|
+
|
|
32
|
+
/* istanbul ignore next */
|
|
33
|
+
() => true,
|
|
34
|
+
);
|
|
35
|
+
const objIds = object.keys;
|
|
36
|
+
const objFreeze = object.freeze;
|
|
37
|
+
const objNew = (entries = []) => object.fromEntries(entries);
|
|
38
|
+
const objForEach = (obj, cb) =>
|
|
39
|
+
arrayForEach(objEntries(obj), ([id, value]) => cb(value, id));
|
|
40
|
+
const objSize = (obj) => size(objIds(obj));
|
|
41
|
+
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
42
|
+
|
|
43
|
+
const createCustomSchematizer = (unwrapSchema, getProperties) => {
|
|
44
|
+
const toCellOrValueSchema = (schema) => {
|
|
45
|
+
const [unwrapped, defaultValue, allowNull] = unwrapSchema(schema);
|
|
46
|
+
const type = unwrapped?.type;
|
|
47
|
+
if (type !== STRING && type !== NUMBER && type !== BOOLEAN) {
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
const cellOrValueSchema = {[TYPE]: type};
|
|
51
|
+
ifNotUndefined(defaultValue, (defaultValue2) => {
|
|
52
|
+
cellOrValueSchema[DEFAULT] = defaultValue2;
|
|
53
|
+
});
|
|
54
|
+
if (allowNull) {
|
|
55
|
+
cellOrValueSchema[ALLOW_NULL] = true;
|
|
56
|
+
}
|
|
57
|
+
return cellOrValueSchema;
|
|
58
|
+
};
|
|
59
|
+
const toTablesSchema = (schemas) => {
|
|
60
|
+
const tablesSchema = objNew();
|
|
61
|
+
objForEach(schemas, (schema, tableId) => {
|
|
62
|
+
const tableSchema = objNew();
|
|
63
|
+
ifNotUndefined(getProperties(schema), (properties) =>
|
|
64
|
+
objForEach(properties, (cellSchema, cellId) =>
|
|
65
|
+
ifNotUndefined(toCellOrValueSchema(cellSchema), (cellSchema2) => {
|
|
66
|
+
tableSchema[cellId] = cellSchema2;
|
|
67
|
+
}),
|
|
68
|
+
),
|
|
69
|
+
);
|
|
70
|
+
if (!objIsEmpty(tableSchema)) {
|
|
71
|
+
tablesSchema[tableId] = tableSchema;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return tablesSchema;
|
|
75
|
+
};
|
|
76
|
+
const toValuesSchema = (schemas) => {
|
|
77
|
+
const valuesSchema = objNew();
|
|
78
|
+
objForEach(schemas, (schema, valueId) =>
|
|
79
|
+
ifNotUndefined(toCellOrValueSchema(schema), (valueSchema) => {
|
|
80
|
+
valuesSchema[valueId] = valueSchema;
|
|
81
|
+
}),
|
|
82
|
+
);
|
|
83
|
+
return valuesSchema;
|
|
84
|
+
};
|
|
85
|
+
return objFreeze({
|
|
86
|
+
toTablesSchema,
|
|
87
|
+
toValuesSchema,
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const unwrapSchema = (schema, defaultValue, allowNull) => [
|
|
92
|
+
{[TYPE]: schema?.type},
|
|
93
|
+
defaultValue ?? schema?.spec?.[DEFAULT],
|
|
94
|
+
allowNull || schema?.spec?.[NULLABLE] || false,
|
|
95
|
+
];
|
|
96
|
+
const getProperties = (schema) => schema?.fields;
|
|
97
|
+
const createYupSchematizer = () =>
|
|
98
|
+
createCustomSchematizer(unwrapSchema, getProperties);
|
|
99
|
+
|
|
100
|
+
export {createYupSchematizer};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
const getTypeOf = (thing) => typeof thing;
|
|
2
|
+
const EMPTY_STRING = '';
|
|
3
|
+
const STRING = getTypeOf(EMPTY_STRING);
|
|
4
|
+
const BOOLEAN = getTypeOf(true);
|
|
5
|
+
const NUMBER = getTypeOf(0);
|
|
6
|
+
const TYPE = 'type';
|
|
7
|
+
const DEFAULT = 'default';
|
|
8
|
+
const ALLOW_NULL = 'allowNull';
|
|
9
|
+
const NULLABLE = 'nullable';
|
|
10
|
+
|
|
11
|
+
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
12
|
+
predicate(value) ? otherwise?.() : then(value);
|
|
13
|
+
const isNullish = (thing) => thing == null;
|
|
14
|
+
const isUndefined = (thing) => thing === void 0;
|
|
15
|
+
const ifNotNullish = getIfNotFunction(isNullish);
|
|
16
|
+
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
17
|
+
const size = (arrayOrString) => arrayOrString.length;
|
|
18
|
+
|
|
19
|
+
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
20
|
+
|
|
21
|
+
const object = Object;
|
|
22
|
+
const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
|
|
23
|
+
const objEntries = object.entries;
|
|
24
|
+
const isObject = (obj) =>
|
|
25
|
+
!isNullish(obj) &&
|
|
26
|
+
ifNotNullish(
|
|
27
|
+
getPrototypeOf(obj),
|
|
28
|
+
(objPrototype) =>
|
|
29
|
+
objPrototype == object.prototype ||
|
|
30
|
+
isNullish(getPrototypeOf(objPrototype)),
|
|
31
|
+
|
|
32
|
+
/* istanbul ignore next */
|
|
33
|
+
() => true,
|
|
34
|
+
);
|
|
35
|
+
const objIds = object.keys;
|
|
36
|
+
const objFreeze = object.freeze;
|
|
37
|
+
const objNew = (entries = []) => object.fromEntries(entries);
|
|
38
|
+
const objForEach = (obj, cb) =>
|
|
39
|
+
arrayForEach(objEntries(obj), ([id, value]) => cb(value, id));
|
|
40
|
+
const objSize = (obj) => size(objIds(obj));
|
|
41
|
+
const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
42
|
+
|
|
43
|
+
const createCustomSchematizer = (unwrapSchema, getProperties) => {
|
|
44
|
+
const toCellOrValueSchema = (schema) => {
|
|
45
|
+
const [unwrapped, defaultValue, allowNull] = unwrapSchema(schema);
|
|
46
|
+
const type = unwrapped?.type;
|
|
47
|
+
if (type !== STRING && type !== NUMBER && type !== BOOLEAN) {
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
const cellOrValueSchema = {[TYPE]: type};
|
|
51
|
+
ifNotUndefined(defaultValue, (defaultValue2) => {
|
|
52
|
+
cellOrValueSchema[DEFAULT] = defaultValue2;
|
|
53
|
+
});
|
|
54
|
+
if (allowNull) {
|
|
55
|
+
cellOrValueSchema[ALLOW_NULL] = true;
|
|
56
|
+
}
|
|
57
|
+
return cellOrValueSchema;
|
|
58
|
+
};
|
|
59
|
+
const toTablesSchema = (schemas) => {
|
|
60
|
+
const tablesSchema = objNew();
|
|
61
|
+
objForEach(schemas, (schema, tableId) => {
|
|
62
|
+
const tableSchema = objNew();
|
|
63
|
+
ifNotUndefined(getProperties(schema), (properties) =>
|
|
64
|
+
objForEach(properties, (cellSchema, cellId) =>
|
|
65
|
+
ifNotUndefined(toCellOrValueSchema(cellSchema), (cellSchema2) => {
|
|
66
|
+
tableSchema[cellId] = cellSchema2;
|
|
67
|
+
}),
|
|
68
|
+
),
|
|
69
|
+
);
|
|
70
|
+
if (!objIsEmpty(tableSchema)) {
|
|
71
|
+
tablesSchema[tableId] = tableSchema;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return tablesSchema;
|
|
75
|
+
};
|
|
76
|
+
const toValuesSchema = (schemas) => {
|
|
77
|
+
const valuesSchema = objNew();
|
|
78
|
+
objForEach(schemas, (schema, valueId) =>
|
|
79
|
+
ifNotUndefined(toCellOrValueSchema(schema), (valueSchema) => {
|
|
80
|
+
valuesSchema[valueId] = valueSchema;
|
|
81
|
+
}),
|
|
82
|
+
);
|
|
83
|
+
return valuesSchema;
|
|
84
|
+
};
|
|
85
|
+
return objFreeze({
|
|
86
|
+
toTablesSchema,
|
|
87
|
+
toValuesSchema,
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const unwrapSchema = (schema, defaultValue, allowNull) => [
|
|
92
|
+
{[TYPE]: schema?.type},
|
|
93
|
+
defaultValue ?? schema?.spec?.[DEFAULT],
|
|
94
|
+
allowNull || schema?.spec?.[NULLABLE] || false,
|
|
95
|
+
];
|
|
96
|
+
const getProperties = (schema) => schema?.fields;
|
|
97
|
+
const createYupSchematizer = () =>
|
|
98
|
+
createCustomSchematizer(unwrapSchema, getProperties);
|
|
99
|
+
|
|
100
|
+
export {createYupSchematizer};
|
|
@@ -6,6 +6,8 @@ const NUMBER = getTypeOf(0);
|
|
|
6
6
|
const TYPE = 'type';
|
|
7
7
|
const DEFAULT = 'default';
|
|
8
8
|
const ALLOW_NULL = 'allowNull';
|
|
9
|
+
const NULLABLE = 'nullable';
|
|
10
|
+
const OPTIONAL = 'optional';
|
|
9
11
|
|
|
10
12
|
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
11
13
|
predicate(value) ? otherwise?.() : then(value);
|
|
@@ -87,8 +89,6 @@ const createCustomSchematizer = (unwrapSchema, getProperties) => {
|
|
|
87
89
|
});
|
|
88
90
|
};
|
|
89
91
|
|
|
90
|
-
const OPTIONAL = 'optional';
|
|
91
|
-
const NULLABLE = 'nullable';
|
|
92
92
|
const unwrapSchema = (schema, defaultValue, allowNull) => {
|
|
93
93
|
const type = schema?.def?.type;
|
|
94
94
|
return type === OPTIONAL
|
|
@@ -6,6 +6,8 @@ const NUMBER = getTypeOf(0);
|
|
|
6
6
|
const TYPE = 'type';
|
|
7
7
|
const DEFAULT = 'default';
|
|
8
8
|
const ALLOW_NULL = 'allowNull';
|
|
9
|
+
const NULLABLE = 'nullable';
|
|
10
|
+
const OPTIONAL = 'optional';
|
|
9
11
|
|
|
10
12
|
const getIfNotFunction = (predicate) => (value, then, otherwise) =>
|
|
11
13
|
predicate(value) ? otherwise?.() : then(value);
|
|
@@ -87,8 +89,6 @@ const createCustomSchematizer = (unwrapSchema, getProperties) => {
|
|
|
87
89
|
});
|
|
88
90
|
};
|
|
89
91
|
|
|
90
|
-
const OPTIONAL = 'optional';
|
|
91
|
-
const NULLABLE = 'nullable';
|
|
92
92
|
const unwrapSchema = (schema, defaultValue, allowNull) => {
|
|
93
93
|
const type = schema?.def?.type;
|
|
94
94
|
return type === OPTIONAL
|
package/store/index.js
CHANGED
|
@@ -148,7 +148,7 @@ const mapForEach = (map, cb) =>
|
|
|
148
148
|
const mapMap = (coll, cb) =>
|
|
149
149
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
150
150
|
const mapSet = (map, key, value) =>
|
|
151
|
-
value
|
|
151
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
152
152
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
153
153
|
if (!collHas(map, key)) {
|
|
154
154
|
mapSet(map, key, getDefaultValue());
|
|
@@ -254,7 +254,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
254
254
|
const deep = (node, p) =>
|
|
255
255
|
p == size(path)
|
|
256
256
|
? arrayPush(leaves, node)
|
|
257
|
-
: path[p]
|
|
257
|
+
: isNull(path[p])
|
|
258
258
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
259
259
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
260
260
|
deep(deepIdSet, 0);
|
|
@@ -148,7 +148,7 @@ const mapForEach = (map, cb) =>
|
|
|
148
148
|
const mapMap = (coll, cb) =>
|
|
149
149
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
150
150
|
const mapSet = (map, key, value) =>
|
|
151
|
-
value
|
|
151
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
152
152
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
153
153
|
if (!collHas(map, key)) {
|
|
154
154
|
mapSet(map, key, getDefaultValue());
|
|
@@ -254,7 +254,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
254
254
|
const deep = (node, p) =>
|
|
255
255
|
p == size(path)
|
|
256
256
|
? arrayPush(leaves, node)
|
|
257
|
-
: path[p]
|
|
257
|
+
: isNull(path[p])
|
|
258
258
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
259
259
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
260
260
|
deep(deepIdSet, 0);
|
package/synchronizers/index.js
CHANGED
|
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
78
78
|
const mapNew = (entries) => new Map(entries);
|
|
79
79
|
const mapGet = (map, key) => map?.get(key);
|
|
80
80
|
const mapSet = (map, key, value) =>
|
|
81
|
-
value
|
|
81
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
82
82
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
83
83
|
if (!collHas(map, key)) {
|
|
84
84
|
mapSet(map, key, getDefaultValue());
|
|
@@ -158,7 +158,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
158
158
|
const deep = (node, p) =>
|
|
159
159
|
p == size(path)
|
|
160
160
|
? arrayPush(leaves, node)
|
|
161
|
-
: path[p]
|
|
161
|
+
: isNull(path[p])
|
|
162
162
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
163
163
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
164
164
|
deep(deepIdSet, 0);
|
|
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
78
78
|
const mapNew = (entries) => new Map(entries);
|
|
79
79
|
const mapGet = (map, key) => map?.get(key);
|
|
80
80
|
const mapSet = (map, key, value) =>
|
|
81
|
-
value
|
|
81
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
82
82
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
83
83
|
if (!collHas(map, key)) {
|
|
84
84
|
mapSet(map, key, getDefaultValue());
|
|
@@ -158,7 +158,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
158
158
|
const deep = (node, p) =>
|
|
159
159
|
p == size(path)
|
|
160
160
|
? arrayPush(leaves, node)
|
|
161
|
-
: path[p]
|
|
161
|
+
: isNull(path[p])
|
|
162
162
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
163
163
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
164
164
|
deep(deepIdSet, 0);
|
|
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
78
78
|
const mapNew = (entries) => new Map(entries);
|
|
79
79
|
const mapGet = (map, key) => map?.get(key);
|
|
80
80
|
const mapSet = (map, key, value) =>
|
|
81
|
-
value
|
|
81
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
82
82
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
83
83
|
if (!collHas(map, key)) {
|
|
84
84
|
mapSet(map, key, getDefaultValue());
|
|
@@ -158,7 +158,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
158
158
|
const deep = (node, p) =>
|
|
159
159
|
p == size(path)
|
|
160
160
|
? arrayPush(leaves, node)
|
|
161
|
-
: path[p]
|
|
161
|
+
: isNull(path[p])
|
|
162
162
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
163
163
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
164
164
|
deep(deepIdSet, 0);
|
|
@@ -80,7 +80,7 @@ const mapGet = (map, key) => map?.get(key);
|
|
|
80
80
|
const mapForEach = (map, cb) =>
|
|
81
81
|
collForEach(map, (value, key) => cb(key, value));
|
|
82
82
|
const mapSet = (map, key, value) =>
|
|
83
|
-
value
|
|
83
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
84
84
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
85
85
|
if (!collHas(map, key)) {
|
|
86
86
|
mapSet(map, key, getDefaultValue());
|
|
@@ -160,7 +160,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
160
160
|
const deep = (node, p) =>
|
|
161
161
|
p == size(path)
|
|
162
162
|
? arrayPush(leaves, node)
|
|
163
|
-
: path[p]
|
|
163
|
+
: isNull(path[p])
|
|
164
164
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
165
165
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
166
166
|
deep(deepIdSet, 0);
|
|
@@ -80,7 +80,7 @@ const mapGet = (map, key) => map?.get(key);
|
|
|
80
80
|
const mapForEach = (map, cb) =>
|
|
81
81
|
collForEach(map, (value, key) => cb(key, value));
|
|
82
82
|
const mapSet = (map, key, value) =>
|
|
83
|
-
value
|
|
83
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
84
84
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
85
85
|
if (!collHas(map, key)) {
|
|
86
86
|
mapSet(map, key, getDefaultValue());
|
|
@@ -160,7 +160,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
160
160
|
const deep = (node, p) =>
|
|
161
161
|
p == size(path)
|
|
162
162
|
? arrayPush(leaves, node)
|
|
163
|
-
: path[p]
|
|
163
|
+
: isNull(path[p])
|
|
164
164
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
165
165
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
166
166
|
deep(deepIdSet, 0);
|
|
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
78
78
|
const jsonString = JSON.stringify;
|
|
79
79
|
const jsonParse = JSON.parse;
|
|
80
80
|
const jsonStringWithUndefined = (obj) =>
|
|
81
|
-
jsonString(obj, (_key, value) => (value
|
|
81
|
+
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
82
82
|
const jsonParseWithUndefined = (str) =>
|
|
83
83
|
jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
|
|
84
84
|
|
|
@@ -107,7 +107,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
107
107
|
const mapNew = (entries) => new Map(entries);
|
|
108
108
|
const mapGet = (map, key) => map?.get(key);
|
|
109
109
|
const mapSet = (map, key, value) =>
|
|
110
|
-
value
|
|
110
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
111
111
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
112
112
|
if (!collHas(map, key)) {
|
|
113
113
|
mapSet(map, key, getDefaultValue());
|
|
@@ -187,7 +187,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
187
187
|
const deep = (node, p) =>
|
|
188
188
|
p == size(path)
|
|
189
189
|
? arrayPush(leaves, node)
|
|
190
|
-
: path[p]
|
|
190
|
+
: isNull(path[p])
|
|
191
191
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
192
192
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
193
193
|
deep(deepIdSet, 0);
|
|
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
78
78
|
const jsonString = JSON.stringify;
|
|
79
79
|
const jsonParse = JSON.parse;
|
|
80
80
|
const jsonStringWithUndefined = (obj) =>
|
|
81
|
-
jsonString(obj, (_key, value) => (value
|
|
81
|
+
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
82
82
|
const jsonParseWithUndefined = (str) =>
|
|
83
83
|
jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
|
|
84
84
|
|
|
@@ -107,7 +107,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
107
107
|
const mapNew = (entries) => new Map(entries);
|
|
108
108
|
const mapGet = (map, key) => map?.get(key);
|
|
109
109
|
const mapSet = (map, key, value) =>
|
|
110
|
-
value
|
|
110
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
111
111
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
112
112
|
if (!collHas(map, key)) {
|
|
113
113
|
mapSet(map, key, getDefaultValue());
|
|
@@ -187,7 +187,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
187
187
|
const deep = (node, p) =>
|
|
188
188
|
p == size(path)
|
|
189
189
|
? arrayPush(leaves, node)
|
|
190
|
-
: path[p]
|
|
190
|
+
: isNull(path[p])
|
|
191
191
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
192
192
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
193
193
|
deep(deepIdSet, 0);
|
|
@@ -96,7 +96,7 @@ const mapForEach = (map, cb) =>
|
|
|
96
96
|
const mapMap = (coll, cb) =>
|
|
97
97
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
98
98
|
const mapSet = (map, key, value) =>
|
|
99
|
-
value
|
|
99
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
100
100
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
101
101
|
if (!collHas(map, key)) {
|
|
102
102
|
mapSet(map, key, getDefaultValue());
|
|
@@ -154,7 +154,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
154
154
|
const deep = (node, p) =>
|
|
155
155
|
p == size(path)
|
|
156
156
|
? arrayPush(leaves, node)
|
|
157
|
-
: path[p]
|
|
157
|
+
: isNull(path[p])
|
|
158
158
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
159
159
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
160
160
|
deep(deepIdSet, 0);
|
|
@@ -224,7 +224,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
224
224
|
const jsonString = JSON.stringify;
|
|
225
225
|
const jsonParse = JSON.parse;
|
|
226
226
|
const jsonStringWithUndefined = (obj) =>
|
|
227
|
-
jsonString(obj, (_key, value) => (value
|
|
227
|
+
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
228
228
|
const jsonParseWithUndefined = (str) =>
|
|
229
229
|
jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
|
|
230
230
|
|
|
@@ -96,7 +96,7 @@ const mapForEach = (map, cb) =>
|
|
|
96
96
|
const mapMap = (coll, cb) =>
|
|
97
97
|
arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
|
|
98
98
|
const mapSet = (map, key, value) =>
|
|
99
|
-
value
|
|
99
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
100
100
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
101
101
|
if (!collHas(map, key)) {
|
|
102
102
|
mapSet(map, key, getDefaultValue());
|
|
@@ -154,7 +154,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
154
154
|
const deep = (node, p) =>
|
|
155
155
|
p == size(path)
|
|
156
156
|
? arrayPush(leaves, node)
|
|
157
|
-
: path[p]
|
|
157
|
+
: isNull(path[p])
|
|
158
158
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
159
159
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
160
160
|
deep(deepIdSet, 0);
|
|
@@ -224,7 +224,7 @@ const getListenerFunctions = (getThing) => {
|
|
|
224
224
|
const jsonString = JSON.stringify;
|
|
225
225
|
const jsonParse = JSON.parse;
|
|
226
226
|
const jsonStringWithUndefined = (obj) =>
|
|
227
|
-
jsonString(obj, (_key, value) => (value
|
|
227
|
+
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
228
228
|
const jsonParseWithUndefined = (str) =>
|
|
229
229
|
jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
|
|
230
230
|
|
|
@@ -80,7 +80,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
80
80
|
const jsonString = JSON.stringify;
|
|
81
81
|
const jsonParse = JSON.parse;
|
|
82
82
|
const jsonStringWithUndefined = (obj) =>
|
|
83
|
-
jsonString(obj, (_key, value) => (value
|
|
83
|
+
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
84
84
|
const jsonParseWithUndefined = (str) =>
|
|
85
85
|
jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
|
|
86
86
|
|
|
@@ -109,7 +109,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
109
109
|
const mapNew = (entries) => new Map(entries);
|
|
110
110
|
const mapGet = (map, key) => map?.get(key);
|
|
111
111
|
const mapSet = (map, key, value) =>
|
|
112
|
-
value
|
|
112
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
113
113
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
114
114
|
if (!collHas(map, key)) {
|
|
115
115
|
mapSet(map, key, getDefaultValue());
|
|
@@ -189,7 +189,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
189
189
|
const deep = (node, p) =>
|
|
190
190
|
p == size(path)
|
|
191
191
|
? arrayPush(leaves, node)
|
|
192
|
-
: path[p]
|
|
192
|
+
: isNull(path[p])
|
|
193
193
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
194
194
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
195
195
|
deep(deepIdSet, 0);
|
|
@@ -80,7 +80,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
80
80
|
const jsonString = JSON.stringify;
|
|
81
81
|
const jsonParse = JSON.parse;
|
|
82
82
|
const jsonStringWithUndefined = (obj) =>
|
|
83
|
-
jsonString(obj, (_key, value) => (value
|
|
83
|
+
jsonString(obj, (_key, value) => (isUndefined(value) ? UNDEFINED : value));
|
|
84
84
|
const jsonParseWithUndefined = (str) =>
|
|
85
85
|
jsonParse(str, (_key, value) => (value === UNDEFINED ? void 0 : value));
|
|
86
86
|
|
|
@@ -109,7 +109,7 @@ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
|
|
|
109
109
|
const mapNew = (entries) => new Map(entries);
|
|
110
110
|
const mapGet = (map, key) => map?.get(key);
|
|
111
111
|
const mapSet = (map, key, value) =>
|
|
112
|
-
value
|
|
112
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
113
113
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
114
114
|
if (!collHas(map, key)) {
|
|
115
115
|
mapSet(map, key, getDefaultValue());
|
|
@@ -189,7 +189,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
189
189
|
const deep = (node, p) =>
|
|
190
190
|
p == size(path)
|
|
191
191
|
? arrayPush(leaves, node)
|
|
192
|
-
: path[p]
|
|
192
|
+
: isNull(path[p])
|
|
193
193
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
194
194
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
195
195
|
deep(deepIdSet, 0);
|
|
@@ -24,7 +24,7 @@ const mapGet = (map, key) => map?.get(key);
|
|
|
24
24
|
const mapForEach = (map, cb) =>
|
|
25
25
|
collForEach(map, (value, key) => cb(key, value));
|
|
26
26
|
const mapSet = (map, key, value) =>
|
|
27
|
-
value
|
|
27
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
28
28
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
29
29
|
if (!collHas(map, key)) {
|
|
30
30
|
mapSet(map, key, getDefaultValue());
|
|
@@ -24,7 +24,7 @@ const mapGet = (map, key) => map?.get(key);
|
|
|
24
24
|
const mapForEach = (map, cb) =>
|
|
25
25
|
collForEach(map, (value, key) => cb(key, value));
|
|
26
26
|
const mapSet = (map, key, value) =>
|
|
27
|
-
value
|
|
27
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
28
28
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
29
29
|
if (!collHas(map, key)) {
|
|
30
30
|
mapSet(map, key, getDefaultValue());
|
|
@@ -78,7 +78,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
|
|
|
78
78
|
const mapNew = (entries) => new Map(entries);
|
|
79
79
|
const mapGet = (map, key) => map?.get(key);
|
|
80
80
|
const mapSet = (map, key, value) =>
|
|
81
|
-
value
|
|
81
|
+
isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
|
|
82
82
|
const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
|
|
83
83
|
if (!collHas(map, key)) {
|
|
84
84
|
mapSet(map, key, getDefaultValue());
|
|
@@ -158,7 +158,7 @@ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
|
|
|
158
158
|
const deep = (node, p) =>
|
|
159
159
|
p == size(path)
|
|
160
160
|
? arrayPush(leaves, node)
|
|
161
|
-
: path[p]
|
|
161
|
+
: isNull(path[p])
|
|
162
162
|
? collForEach(node, (node2) => deep(node2, p + 1))
|
|
163
163
|
: arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
|
|
164
164
|
deep(deepIdSet, 0);
|
package/ui-react-dom/index.js
CHANGED
|
@@ -45,6 +45,8 @@ const isFiniteNumber = isFinite;
|
|
|
45
45
|
const isNullish = (thing) => thing == null;
|
|
46
46
|
const isUndefined = (thing) => thing === void 0;
|
|
47
47
|
const isNull = (thing) => thing === null;
|
|
48
|
+
const isTrue = (thing) => thing === true;
|
|
49
|
+
const isFalse = (thing) => thing === false;
|
|
48
50
|
const ifNotNullish = getIfNotFunction(isNullish);
|
|
49
51
|
const ifNotUndefined = getIfNotFunction(isUndefined);
|
|
50
52
|
const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
|
|
@@ -553,7 +555,7 @@ const HtmlTable = ({
|
|
|
553
555
|
{
|
|
554
556
|
children: [
|
|
555
557
|
extraRowCells(extraCellsBefore, rowProps),
|
|
556
|
-
idColumn
|
|
558
|
+
isFalse(idColumn)
|
|
557
559
|
? null
|
|
558
560
|
: /* @__PURE__ */ jsx('th', {title: rowId, children: rowId}),
|
|
559
561
|
objToArray(
|
|
@@ -751,7 +753,7 @@ const RelationshipInHtmlRow = ({
|
|
|
751
753
|
return /* @__PURE__ */ jsxs('tr', {
|
|
752
754
|
children: [
|
|
753
755
|
extraRowCells(extraCellsBefore, rowProps),
|
|
754
|
-
idColumn
|
|
756
|
+
isFalse(idColumn)
|
|
755
757
|
? null
|
|
756
758
|
: /* @__PURE__ */ jsxs(Fragment, {
|
|
757
759
|
children: [
|
|
@@ -834,13 +836,13 @@ const RelationshipInHtmlTable = ({
|
|
|
834
836
|
return /* @__PURE__ */ jsxs('table', {
|
|
835
837
|
className,
|
|
836
838
|
children: [
|
|
837
|
-
headerRow
|
|
839
|
+
isFalse(headerRow)
|
|
838
840
|
? null
|
|
839
841
|
: /* @__PURE__ */ jsx('thead', {
|
|
840
842
|
children: /* @__PURE__ */ jsxs('tr', {
|
|
841
843
|
children: [
|
|
842
844
|
extraHeaders(extraCellsBefore),
|
|
843
|
-
idColumn
|
|
845
|
+
isFalse(idColumn)
|
|
844
846
|
? null
|
|
845
847
|
: /* @__PURE__ */ jsxs(Fragment, {
|
|
846
848
|
children: [
|
|
@@ -910,14 +912,15 @@ const useSortingAndPagination = (
|
|
|
910
912
|
(offset2) => setStateAndChange([currentCellId, currentDescending, offset2]),
|
|
911
913
|
[setStateAndChange, currentCellId, currentDescending],
|
|
912
914
|
);
|
|
913
|
-
const PaginatorComponent =
|
|
914
|
-
|
|
915
|
+
const PaginatorComponent = isTrue(paginator)
|
|
916
|
+
? SortedTablePaginator
|
|
917
|
+
: paginator;
|
|
915
918
|
return [
|
|
916
919
|
[currentCellId, currentDescending, currentOffset],
|
|
917
920
|
handleSort,
|
|
918
921
|
useMemo(
|
|
919
922
|
() =>
|
|
920
|
-
paginator
|
|
923
|
+
isFalse(paginator)
|
|
921
924
|
? null
|
|
922
925
|
: /* @__PURE__ */ jsx(PaginatorComponent, {
|
|
923
926
|
offset: currentOffset,
|
|
@@ -1207,7 +1210,7 @@ const ValuesInHtmlTable = ({
|
|
|
1207
1210
|
{
|
|
1208
1211
|
children: [
|
|
1209
1212
|
extraValueCells(extraCellsBefore, valueProps),
|
|
1210
|
-
idColumn
|
|
1213
|
+
isFalse(idColumn)
|
|
1211
1214
|
? null
|
|
1212
1215
|
: /* @__PURE__ */ jsx('th', {
|
|
1213
1216
|
title: valueId,
|