pairs.js (1084B)
1 'use strict'; 2 3 var Type = require('../type'); 4 5 var _toString = Object.prototype.toString; 6 7 function resolveYamlPairs(data) { 8 if (data === null) return true; 9 10 var index, length, pair, keys, result, 11 object = data; 12 13 result = new Array(object.length); 14 15 for (index = 0, length = object.length; index < length; index += 1) { 16 pair = object[index]; 17 18 if (_toString.call(pair) !== '[object Object]') return false; 19 20 keys = Object.keys(pair); 21 22 if (keys.length !== 1) return false; 23 24 result[index] = [ keys[0], pair[keys[0]] ]; 25 } 26 27 return true; 28 } 29 30 function constructYamlPairs(data) { 31 if (data === null) return []; 32 33 var index, length, pair, keys, result, 34 object = data; 35 36 result = new Array(object.length); 37 38 for (index = 0, length = object.length; index < length; index += 1) { 39 pair = object[index]; 40 41 keys = Object.keys(pair); 42 43 result[index] = [ keys[0], pair[keys[0]] ]; 44 } 45 46 return result; 47 } 48 49 module.exports = new Type('tag:yaml.org,2002:pairs', { 50 kind: 'sequence', 51 resolve: resolveYamlPairs, 52 construct: constructYamlPairs 53 });