Skip to content

Commit 8441126

Browse files
committed
feat(nodes): add unknown property to RegularNode
1 parent b580559 commit 8441126

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

src/nodes/RegularNode.ts

+10
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,14 @@ export class RegularNode extends BaseNode {
5656
this.primaryType !== SchemaNodeKind.Array && this.primaryType !== SchemaNodeKind.Object && this.combiners === null
5757
);
5858
}
59+
60+
public get unknown() {
61+
return (
62+
this.types === null &&
63+
this.combiners === null &&
64+
this.format === null &&
65+
this.enum === null &&
66+
Object.keys(this.annotations).length + Object.keys(this.validations).length === 0
67+
);
68+
}
5969
}

src/nodes/mirrored/MirroredRegularNode.ts

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export class MirroredRegularNode extends BaseNode implements RegularNode {
2222
public readonly validations!: Readonly<Dictionary<unknown>>;
2323

2424
public readonly simple!: boolean;
25+
public readonly unknown!: boolean;
2526

2627
constructor(public readonly mirroredNode: RegularNode) {
2728
super(mirroredNode.fragment);

src/walker/types.ts

-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ export type WalkerEmitter = {
3535
stepOutNode: WalkerNodeEventHandler;
3636

3737
enterFragment: WalkerFragmentEventHandler;
38-
skipFragment: WalkerFragmentEventHandler;
3938
exitFragment: WalkerFragmentEventHandler;
4039

4140
error: WalkerErrorEventHandler;

src/walker/walker.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,13 @@ export class Walker extends EventEmitter<WalkerEmitter> {
8080
public walk(): void {
8181
const { depth: initialDepth, schemaNode: initialSchemaNode, fragment } = this;
8282

83-
const state = this.dumpInternalWalkerState();
84-
85-
if (Object.keys(fragment).length === 0) {
86-
// empty fragment, nothing to do.
87-
super.emit('skipFragment', fragment);
83+
if (initialDepth === -1 && Object.keys(fragment).length === 0) {
84+
// empty schema, nothing to do
8885
return;
8986
}
9087

88+
const state = this.dumpInternalWalkerState();
89+
9190
super.emit('enterFragment', fragment);
9291

9392
for (const schemaNode of this.processFragment()) {

0 commit comments

Comments
 (0)