Skip to content

Commit 6d478b8

Browse files
committed
refactor(json-crdt): 💡 move SchemaToJsonNode type to /schema folder
1 parent 0bb20ad commit 6d478b8

File tree

3 files changed

+21
-20
lines changed

3 files changed

+21
-20
lines changed

src/json-crdt/model/Model.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import {JsonCrdtPatchOperation, Patch} from '../../json-crdt-patch/Patch';
66
import {ModelApi} from './api/ModelApi';
77
import {ORIGIN, SESSION, SYSTEM_SESSION_TIME} from '../../json-crdt-patch/constants';
88
import {randomSessionId} from './util';
9-
import {RootNode, ValNode, VecNode, ObjNode, StrNode, BinNode, ArrNode, SchemaToJsonNode} from '../nodes';
9+
import {RootNode, ValNode, VecNode, ObjNode, StrNode, BinNode, ArrNode} from '../nodes';
10+
import {SchemaToJsonNode} from '../schema/types';
1011
import {printTree} from '../../util/print/printTree';
1112
import {Extensions} from '../extensions/Extensions';
1213
import {AvlMap} from '../../util/trees/avl/AvlMap';

src/json-crdt/nodes/types.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import type {nodes as builder} from '../../json-crdt-patch';
2-
import type * as nodes from './nodes';
31
import type {Identifiable} from '../../json-crdt-patch/types';
42

53
/**
@@ -47,20 +45,3 @@ export interface JsonNode<View = unknown> extends Identifiable {
4745
}
4846

4947
export type JsonNodeView<N> = N extends JsonNode<infer V> ? V : {[K in keyof N]: JsonNodeView<N[K]>};
50-
51-
// prettier-ignore
52-
export type SchemaToJsonNode<S> = S extends builder.str<infer T>
53-
? nodes.StrNode<T>
54-
: S extends builder.bin
55-
? nodes.BinNode
56-
: S extends builder.con<infer T>
57-
? nodes.ConNode<T>
58-
: S extends builder.val<infer T>
59-
? nodes.ValNode<SchemaToJsonNode<T>>
60-
: S extends builder.vec<infer T>
61-
? nodes.VecNode<{[K in keyof T]: SchemaToJsonNode<T[K]>}>
62-
: S extends builder.obj<infer T>
63-
? nodes.ObjNode<{[K in keyof T]: SchemaToJsonNode<T[K]>}>
64-
: S extends builder.arr<infer T>
65-
? nodes.ArrNode<SchemaToJsonNode<T>>
66-
: JsonNode;

src/json-crdt/schema/types.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import type {nodes as builder} from '../../json-crdt-patch';
2+
import type * as nodes from '../nodes';
3+
4+
// prettier-ignore
5+
export type SchemaToJsonNode<S> = S extends builder.str<infer T>
6+
? nodes.StrNode<T>
7+
: S extends builder.bin
8+
? nodes.BinNode
9+
: S extends builder.con<infer T>
10+
? nodes.ConNode<T>
11+
: S extends builder.val<infer T>
12+
? nodes.ValNode<SchemaToJsonNode<T>>
13+
: S extends builder.vec<infer T>
14+
? nodes.VecNode<{[K in keyof T]: SchemaToJsonNode<T[K]>}>
15+
: S extends builder.obj<infer T>
16+
? nodes.ObjNode<{[K in keyof T]: SchemaToJsonNode<T[K]>}>
17+
: S extends builder.arr<infer T>
18+
? nodes.ArrNode<SchemaToJsonNode<T>>
19+
: nodes.JsonNode;

0 commit comments

Comments
 (0)