Package Exports
- js-yaml
- js-yaml/lib/js-yaml/common
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (js-yaml) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
JS-YAML - YAML 1.1 parser for JavaScript
This is a native port of PyYAML, the most advanced YAML parser. Now you can use all modern YAML feature right in JavaScript. Originally snapshoted version - PyYAML 3.10 (2011-05-30).
Installation
YAML module for node.js
npm install js-yamlIf you want to inspect your YAML files from CLI, install js-yaml.bin.
bundled YAML library for browser
<script src="js-yaml.min.js"></script>
<script type="text/javascript">
var doc = jsyaml.load('greeting: hello\nname: world');
</script>Browser support is still buggy, and mostly done to run online demo. If you can help to improve browser compatibility and AMD support - rise pull request.
API
JS-YAML automatically registers handlers for .yml and .yaml files. You can load them just with require.
That's mostly equivalent to calling loadAll() on file handler ang gathering all documents into array.
Just with one string!
require('js-yaml');
// Get array of documents, or throw exception on error
var docs = require('/home/ixti/examples.yml');
console.log(docs);If you are sure, that file has only one document, chained shift() will help to exclude array wrapper:
require('js-yaml');
// Get array of documents, or throw exception on error
var singleDoc = require('/home/ixti/examples.yml').shift();
console.log(singleDoc);load (string|buffer|file_resource)
Parses source as single YAML document. Returns JS object or throws exception on error.
This function does NOT understands multi-doc sources, it throws exception on those.
var yaml = require('js-yaml');
// pass the string
fs.readFile('/home/ixti/example.yml', 'utf8', function (err, data) {
if (err) {
// handle error
return;
}
try {
console.log( yaml.load(data) );
} catch(e) {
console.log(e);
}
});loadAll (string|buffer|file_resource, iterator)
Same as Load, but understands multi-doc sources and apply iterator to each document.
var yaml = require('js-yaml');
// pass the string
fs.readFile('/home/ixti/example.yml', 'utf8', function (err, data) {
if (err) {
// handle error
return;
}
try {
yaml.loadAll(data, function (doc) {
console.log(doc);
});
} catch(e) {
console.log(e);
}
});safeLoad (string|buffer|file_resource)
Same as load() but uses safe schema - only recommended tags of YAML
specification (no JavaScript-specific tags, e.g. !!js/regexp).
safeLoadAll (string|buffer|file_resource, iterator)
Same as loadAll() but uses safe schema - only recommended tags of YAML
specification (no JavaScript-specific tags, e.g. !!js/regexp).
JavaScript YAML tags scheme
The list of standard YAML tags and corresponding JavaScipt types. See also YAML Tag Discussion and Yaml Types.
!!null '' # null
!!bool 'yes' # bool
!!int '3...' # number
!!float '3.14...' # number
!!binary '...base64...' # buffer
!!timestamp 'YYYY-...' # date
!!omap [ ... ] # array of key-value pairs
!!pairs [ ... ] # array or array pairs
!!set { ... } # array of objects with given keys and null values
!!str '...' # string
!!seq [ ... ] # array
!!map { ... } # objectJavaScript-specific tags
!!js/regexp /pattern/gim # RegExp
!!js/undefined '' # Undefined
!!js/function 'function () {...}' # FunctionCaveats
Note, that you use arrays or objects as key in JS-YAML. JS do not allows objects or array as keys, and stringifies them at the moment of adding them.
---
? [ foo, bar ]
: - baz
? { foo: bar }
: - baz
- baz=>
{ "": ["baz"], "[object Object]": ["baz", "baz"] }License
View the LICENSE file (MIT).
