Skip to content

Commit 43e08ea

Browse files
committed
version
1 parent c134692 commit 43e08ea

File tree

8 files changed

+201
-141
lines changed

8 files changed

+201
-141
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@orbitdb/nested-db",
3-
"version": "1.2.2",
3+
"version": "1.2.3",
44
"description": "Nested key-value database type for orbit-db.",
55
"author": "Julien Jean Malard-Adam",
66
"keywords": [

src/nested.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,8 @@ export const NestedApi = ({ database }: { database: InternalDatabase }) => {
163163
if (k === joinedKey || isSubkey(k, joinedKey))
164164
relevantKeyValues.push({ key: k, value });
165165
}
166-
let nested: PossiblyNestedValueMap | undefined = toNested(relevantKeyValues);
166+
let nested: PossiblyNestedValueMap | undefined =
167+
toNested(relevantKeyValues);
167168
for (const k of splitKey(joinedKey)) {
168169
try {
169170
nested = (nested as NestedValueMap).get(k);

src/types.ts

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@ export type RecursivePartial<T> = {
77
export type NestedKey = string | string[];
88
export type PossiblyNestedValueMap = DagCborEncodable | NestedValueMap;
99
export type PossiblyNestedValueObject = DagCborEncodable | NestedValueObject;
10-
export type PossiblyNestedValue = DagCborEncodable | NestedValueMap | NestedValueObject;
10+
export type PossiblyNestedValue =
11+
| DagCborEncodable
12+
| NestedValueMap
13+
| NestedValueObject;
1114

1215
export type NestedValue = NestedValueMap | NestedValueObject;
13-
export type NestedValueMap = TypedMap<{[key: string]: PossiblyNestedValueMap}>;
16+
export type NestedValueMap = TypedMap<{
17+
[key: string]: PossiblyNestedValueMap;
18+
}>;
1419
export type NestedValueObject = {
1520
[key: string]: DagCborEncodable | NestedValueObject;
1621
};
1722

18-
export type NestedMapToObject<T> = T extends NestedObjectToMap<infer R> ? R : never;
23+
export type NestedMapToObject<T> =
24+
T extends NestedObjectToMap<infer R> ? R : never;
1925

2026
export type NestedObjectToMap<T extends NestedValueObject> = TypedMap<{
2127
[K in keyof T]: T[K] extends NestedValueObject
@@ -27,12 +33,28 @@ type StringKey<T> = Extract<keyof T, string>;
2733

2834
export type TypedMap<
2935
T extends { [key: string]: unknown } = { [key: string]: unknown },
30-
> = Omit<Map<StringKey<T>, T[keyof T]>, "delete" | "get" | "has" | "set" | "entries" | "keys" | "values" | typeof Symbol.iterator> & {
36+
> = Omit<
37+
Map<StringKey<T>, T[keyof T]>,
38+
| "delete"
39+
| "get"
40+
| "has"
41+
| "set"
42+
| "entries"
43+
| "keys"
44+
| "values"
45+
| typeof Symbol.iterator
46+
> & {
3147
delete: (key: StringKey<T>) => boolean;
3248
get: <K extends StringKey<T>>(key: K) => T[K] | undefined;
3349
has: (key: StringKey<T>) => boolean;
3450
set: <K extends StringKey<T>>(key: K, value: T[K]) => void;
35-
forEach(callbackfn: <K extends StringKey<T>>(value: T[K], key: K, map: Map<keyof T, T[keyof T]>) => void): void;
51+
forEach(
52+
callbackfn: <K extends StringKey<T>>(
53+
value: T[K],
54+
key: K,
55+
map: Map<keyof T, T[keyof T]>,
56+
) => void,
57+
): void;
3658
entries(): IterableIterator<[StringKey<T>, T[keyof T]]>;
3759
keys(): IterableIterator<StringKey<T>>;
3860
values(): IterableIterator<T[keyof T]>;

src/utils.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,20 @@ export const isSisterKey = (key1: NestedKey, key2: NestedKey): boolean => {
4949
return true;
5050
};
5151

52-
const isNestedValueObject = (x: PossiblyNestedValue): x is NestedValueObject => {
53-
return typeof x === "object" && !Array.isArray(x) && x !== null && !(x instanceof Map);
52+
const isNestedValueObject = (
53+
x: PossiblyNestedValue,
54+
): x is NestedValueObject => {
55+
return (
56+
typeof x === "object" &&
57+
!Array.isArray(x) &&
58+
x !== null &&
59+
!(x instanceof Map)
60+
);
5461
};
5562

5663
const isNestedValueMap = (x: PossiblyNestedValue): x is NestedValueMap => {
5764
return x instanceof Map;
58-
}
65+
};
5966

6067
export const flatten = (
6168
x: NestedValueMap | NestedValueObject,
@@ -75,7 +82,7 @@ export const flatten = (
7582
flattened.push({ key: rootKey.join("/"), value: x });
7683
}
7784
};
78-
85+
7986
// @ts-expect-error TODO
8087
recursiveFlatten(xAsMap, []);
8188
return flattened;
@@ -99,10 +106,7 @@ export const toNested = (
99106
const finalKeyComponent = keyComponents.pop();
100107
if (finalKeyComponent) {
101108
const finalValue = isNestedValueObject(value) ? toMap(value) : value;
102-
root.set(
103-
finalKeyComponent,
104-
finalValue as PossiblyNestedValueMap,
105-
);
109+
root.set(finalKeyComponent, finalValue as PossiblyNestedValueMap);
106110
}
107111
}
108112
return nested;

src/version.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
// Generated by genversion.
2-
export const version = "1.2.2";
2+
export const version = "1.2.3";

test/nested.spec.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ describe("Nested Database", () => {
303303
await db.move("key1", -1);
304304

305305
const actual = await db.all();
306-
306+
307307
const ref = new Map();
308308
ref.set("key1", "value1");
309309
ref.set("key2", "value2");
@@ -352,14 +352,13 @@ describe("Nested Database", () => {
352352
await db.put("key2", "value2a");
353353

354354
const actual = await db.all();
355-
355+
356356
const ref = new Map();
357357
ref.set("key2", "value2a");
358358
ref.set("key0", "value0");
359359
ref.set("key1", "value1");
360360

361361
expectNestedMapEqual(actual, ref);
362-
363362
});
364363

365364
it("move a value twice", async () => {
@@ -385,19 +384,19 @@ describe("Nested Database", () => {
385384

386385
const refBefore = new Map();
387386
refBefore.set("a", new Map());
388-
refBefore.get("a").set("b", 1)
389-
refBefore.get("a").set("c", 2)
387+
refBefore.get("a").set("b", 1);
388+
refBefore.get("a").set("c", 2);
390389

391390
const actual = await db.all();
392391
expectNestedMapEqual(actual, refBefore);
393392

394-
await db.move("a/b", 1)
393+
await db.move("a/b", 1);
395394

396395
const actualAfterMove = await db.all();
397396
const refAfter = new Map();
398397
refAfter.set("a", new Map());
399-
refAfter.get("a").set("c", 2)
400-
refAfter.get("a").set("b", 1)
398+
refAfter.get("a").set("c", 2);
399+
refAfter.get("a").set("b", 1);
401400
expectNestedMapEqual(actualAfterMove, refAfter);
402401
});
403402

@@ -406,7 +405,7 @@ describe("Nested Database", () => {
406405
await db.put("a/c/d", 2);
407406
await db.put("a/c/e", 3);
408407

409-
await db.move("a/c", 0)
408+
await db.move("a/c", 0);
410409

411410
const actual = await db.all();
412411

0 commit comments

Comments
 (0)