UNPKG

1.79 kBJavaScriptView Raw
1'use strict';
2
3const ALIAS = Symbol.for('yaml.alias');
4const DOC = Symbol.for('yaml.document');
5const MAP = Symbol.for('yaml.map');
6const PAIR = Symbol.for('yaml.pair');
7const SCALAR = Symbol.for('yaml.scalar');
8const SEQ = Symbol.for('yaml.seq');
9const NODE_TYPE = Symbol.for('yaml.node.type');
10const isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;
11const isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;
12const isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;
13const isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;
14const isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;
15const isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;
16function isCollection(node) {
17 if (node && typeof node === 'object')
18 switch (node[NODE_TYPE]) {
19 case MAP:
20 case SEQ:
21 return true;
22 }
23 return false;
24}
25function isNode(node) {
26 if (node && typeof node === 'object')
27 switch (node[NODE_TYPE]) {
28 case ALIAS:
29 case MAP:
30 case SCALAR:
31 case SEQ:
32 return true;
33 }
34 return false;
35}
36const hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;
37
38exports.ALIAS = ALIAS;
39exports.DOC = DOC;
40exports.MAP = MAP;
41exports.NODE_TYPE = NODE_TYPE;
42exports.PAIR = PAIR;
43exports.SCALAR = SCALAR;
44exports.SEQ = SEQ;
45exports.hasAnchor = hasAnchor;
46exports.isAlias = isAlias;
47exports.isCollection = isCollection;
48exports.isDocument = isDocument;
49exports.isMap = isMap;
50exports.isNode = isNode;
51exports.isPair = isPair;
52exports.isScalar = isScalar;
53exports.isSeq = isSeq;