UNPKG

aws-ddk-core

Version:

The AWS DataOps Development Kit is an open source development framework for customers that build data workflows and modern data architecture on AWS.

40 lines (36 loc) 1.23 kB
'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;