Socket
Socket
Sign inDemoInstall

js-yaml

Package Overview
Dependencies
1
Maintainers
1
Versions
72
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    js-yaml

YAML 1.1 Parser


Version published
Maintainers
1
Install size
614 kB
Created

Package description

What is js-yaml?

The js-yaml npm package is a JavaScript library that allows you to parse and dump YAML, a human-friendly data serialization standard. It can be used to convert YAML to JSON and vice versa, making it a useful tool for configuration files, data exchange, and more.

What are js-yaml's main functionalities?

YAML Parsing

This feature allows you to parse a YAML file or string and convert it into a JavaScript object. The code sample demonstrates how to read a YAML file from the filesystem and parse its contents.

{"const yaml = require('js-yaml');\nconst fs = require('fs');\n\ntry {\n  const doc = yaml.load(fs.readFileSync('/path/to/file.yml', 'utf8'));\n  console.log(doc);\n} catch (e) {\n  console.error(e);\n}"}

YAML Dumping

This feature allows you to take a JavaScript object and convert it into a YAML-formatted string. The code sample shows how to create a YAML string from an object and then save it to a file.

{"const yaml = require('js-yaml');\nconst fs = require('fs');\n\nconst obj = { hello: 'world' };\nconst ymlText = yaml.dump(obj);\n\nfs.writeFileSync('/path/to/file.yml', ymlText, 'utf8');\nconsole.log('YAML file saved.');"}

Custom Types

js-yaml allows you to define custom types for specialized use cases. The code sample demonstrates how to create a custom YAML type and use it in parsing a YAML string.

{"const yaml = require('js-yaml');\n\nconst schema = yaml.Schema.create([ new yaml.Type('!myType', {\n  kind: 'scalar',\n  resolve: data => data === 'valid',\n  construct: data => data,\n  instanceOf: String\n}) ]);\n\nconst doc = yaml.load('!myType valid', { schema });\nconsole.log(doc); // 'valid'"}

Other packages similar to js-yaml

Changelog

Source

[0.2.0] - 2011-11-02

Changed

  • First public release

Readme

Source

JS-YAML

YAML 1.1 parser for JavaScript. Originally ported from PyYAML.

(*) Not feature-compleete, more coming soon:

  • YAML 1.2 support
  • writer
  • JS-specific tags
  • internal API for complex operations

Installation

For node.js:

npm install js-yaml

API

JS-YAML automatically registers handlers for .yml and .yaml files. You can load them just with require. That's equivalent to calling loadAll() on file handler. 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);

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 )

The same as Load, but understands multi-doc sources and returns array of JS objects.

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.loadAll(data) );
  } catch(e) {
    console.log(e);
  }
});

JsTagScheme

The list of standard YAML tags and corresponding JavaScipt types. See also YAMLTagDiscussion 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 { ... }               # object

The list of JS-specific YAML tags will be availble soon (not implemented yet) and will probably include RegExp, Undefined, function and Infinity.

License

View the LICENSE file

Keywords

FAQs

Last updated on 02 Nov 2011

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc