123456789101112131415161718192021222324252627282930313233343536373839 |
- 'use strict';
- var createNode = require('../doc/createNode.js');
- var stringifyPair = require('../stringify/stringifyPair.js');
- var addPairToJSMap = require('./addPairToJSMap.js');
- var identity = require('./identity.js');
- function createPair(key, value, ctx) {
- const k = createNode.createNode(key, undefined, ctx);
- const v = createNode.createNode(value, undefined, ctx);
- return new Pair(k, v);
- }
- class Pair {
- constructor(key, value = null) {
- Object.defineProperty(this, identity.NODE_TYPE, { value: identity.PAIR });
- this.key = key;
- this.value = value;
- }
- clone(schema) {
- let { key, value } = this;
- if (identity.isNode(key))
- key = key.clone(schema);
- if (identity.isNode(value))
- value = value.clone(schema);
- return new Pair(key, value);
- }
- toJSON(_, ctx) {
- const pair = ctx?.mapAsMap ? new Map() : {};
- return addPairToJSMap.addPairToJSMap(ctx, pair, this);
- }
- toString(ctx, onComment, onChompKeep) {
- return ctx?.doc
- ? stringifyPair.stringifyPair(this, ctx, onComment, onChompKeep)
- : JSON.stringify(this);
- }
- }
- exports.Pair = Pair;
- exports.createPair = createPair;
|