UNPKG

yaml-language-server-parser

Version:

This is a maintained fork of YAML-AST-PARSER specifically for the YAML Language server.

59 lines (44 loc) 1.11 kB
'use strict'; import {Type} from '../type'; var _hasOwnProperty = Object.prototype.hasOwnProperty; var _toString = Object.prototype.toString; function resolveYamlOmap(data) { if (null === data) { return true; } var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; for (index = 0, length = object.length; index < length; index += 1) { pair = object[index]; pairHasKey = false; if ('[object Object]' !== _toString.call(pair)) { return false; } for (pairKey in pair) { if (_hasOwnProperty.call(pair, pairKey)) { if (!pairHasKey) { pairHasKey = true; } else { return false; } } } if (!pairHasKey) { return false; } if (-1 === objectKeys.indexOf(pairKey)) { objectKeys.push(pairKey); } else { return false; } } return true; } function constructYamlOmap(data) { return null !== data ? data : []; } export = new Type('tag:yaml.org,2002:omap', { kind: 'sequence', resolve: resolveYamlOmap, construct: constructYamlOmap });