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