forked from nodeca/js-yaml
/
js-yaml.js
86 lines (59 loc) · 1.9 KB
/
js-yaml.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
'use strict';
var fs = require('fs');
var _loader = require('./js-yaml/loader');
var jsyaml = module.exports = {};
jsyaml.scan = function scan(stream, callback, Loader) {
Loader = (Loader || _loader.SafeLoader);
var loader = new Loader(stream);
while (loader.checkToken()) {
callback(loader.getToken());
}
};
jsyaml.compose = function compose(stream, Loader) {
Loader = (Loader || _loader.SafeLoader);
var loader = new Loader(stream);
return loader.getSingleNode();
};
jsyaml.load = function load(stream, Loader) {
Loader = (Loader || _loader.Loader);
var loader = new Loader(stream);
return loader.getSingleData();
};
jsyaml.loadAll = function loadAll(stream, callback, Loader) {
Loader = (Loader || _loader.Loader);
var loader = new Loader(stream);
while (loader.checkData()) {
callback(loader.getData());
}
};
jsyaml.safeLoad = function load(stream) {
return jsyaml.load(stream, _loader.SafeLoader);
};
jsyaml.safeLoadAll = function loadAll(stream, callback) {
jsyaml.loadAll(stream, callback, _loader.SafeLoader);
};
/**
* jsyaml.addConstructor(tag, constructor[, Loader]) -> Void
* Add a constructor for the given tag.
*
* Constructor is a function that accepts a Loader instance
* and a node object and produces the corresponding JavaScript object.
**/
jsyaml.addConstructor = function addConstructor(tag, constructor, Loader) {
(Loader || _loader.Loader).addConstructor(tag, constructor);
};
// Register extensions handler
(function () {
var require_handler = function (module, filename) {
var fd = fs.openSync(filename, 'r');
// fill in documents
module.exports = jsyaml.load(fd);
fs.closeSync(fd);
};
// register require extensions only if we're on node.js
// hack for browserify
if (undefined !== require.extensions) {
require.extensions['.yml'] = require_handler;
require.extensions['.yaml'] = require_handler;
}
}());