persona-community-5/.pnpm-store/v3/files/75/e6c3a722896c09a85d8e25d0e4f57d6633705230e59f98c4a948b5ab31f07d8661e2786440be3cf541a2b6dc1a2199060ce7ab0d029def48900b4c94e7ac32
rdev-worker a1d0d1bf1c
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
build: /implement-feature community-ui --requirements 'Build the React commu...
2026-02-24 08:22:30 +00:00

44 lines
1.5 KiB
Plaintext

import * as YAML from '../src/'
export interface NodeVisitor {
visitScalar(node: YAML.YAMLScalar);
visitMapping(node: YAML.YAMLMapping);
visitSequence(node: YAML.YAMLSequence);
visitMap(node: YAML.YamlMap);
visitAnchorRef(node: YAML.YAMLAnchorReference);
visitIncludeRef(node: YAML.YAMLNode);
}
export abstract class AbstractVisitor implements NodeVisitor {
// Needed in lieu of `accept` method on nodes
accept(node: YAML.YAMLNode) {
switch (node.kind) {
case YAML.Kind.SCALAR: {
return this.visitScalar(<YAML.YAMLScalar>node);
}
case YAML.Kind.MAP: {
return this.visitMap(<YAML.YamlMap>node);
}
case YAML.Kind.MAPPING: {
return this.visitMapping(<YAML.YAMLMapping>node);
}
case YAML.Kind.SEQ: {
return this.visitSequence(<YAML.YAMLSequence>node);
}
case YAML.Kind.ANCHOR_REF: {
return this.visitAnchorRef(<YAML.YAMLAnchorReference>node);
}
case YAML.Kind.INCLUDE_REF: {
return this.visitIncludeRef(node);
}
}
throw new Error(`Kind, ${node.kind} not implemented.`);
}
abstract visitScalar(node: YAML.YAMLScalar);
abstract visitMapping(node: YAML.YAMLMapping);
abstract visitSequence(node: YAML.YAMLSequence);
abstract visitMap(node: YAML.YamlMap);
abstract visitAnchorRef(node: YAML.YAMLAnchorReference);
abstract visitIncludeRef(node: YAML.YAMLNode);
}