diff options
Diffstat (limited to 'node_modules/yaml/dist/nodes/Node.js')
| -rw-r--r-- | node_modules/yaml/dist/nodes/Node.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/node_modules/yaml/dist/nodes/Node.js b/node_modules/yaml/dist/nodes/Node.js new file mode 100644 index 0000000..d384e1c --- /dev/null +++ b/node_modules/yaml/dist/nodes/Node.js @@ -0,0 +1,40 @@ +'use strict'; + +var applyReviver = require('../doc/applyReviver.js'); +var identity = require('./identity.js'); +var toJS = require('./toJS.js'); + +class NodeBase { + constructor(type) { + Object.defineProperty(this, identity.NODE_TYPE, { value: type }); + } + /** Create a copy of this node. */ + clone() { + const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this)); + if (this.range) + copy.range = this.range.slice(); + return copy; + } + /** A plain JavaScript representation of this node. */ + toJS(doc, { mapAsMap, maxAliasCount, onAnchor, reviver } = {}) { + if (!identity.isDocument(doc)) + throw new TypeError('A document argument is required'); + const ctx = { + anchors: new Map(), + doc, + keep: true, + mapAsMap: mapAsMap === true, + mapKeyWarned: false, + maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100 + }; + const res = toJS.toJS(this, '', ctx); + if (typeof onAnchor === 'function') + for (const { count, res } of ctx.anchors.values()) + onAnchor(res, count); + return typeof reviver === 'function' + ? applyReviver.applyReviver(reviver, { '': res }, '', res) + : res; + } +} + +exports.NodeBase = NodeBase; |