summaryrefslogtreecommitdiff
path: root/node_modules/yaml/dist/nodes/Node.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/yaml/dist/nodes/Node.js')
-rw-r--r--node_modules/yaml/dist/nodes/Node.js40
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;