GithubHelp home page GithubHelp logo

tap-yaml's Introduction

tap-yaml

Yaml handling for TAP parsers and generators

USAGE

const yaml = require('tap-yaml')

const str = yaml.stringify(someObject)
const obj = yaml.parse(someString)

This is essentially a re-export of the yaml package, with a few custom types and default properties to be more suitable for use in tap.

  1. Symbol types are added, so that they don't throw. Shared symbols will (within the same process) retain the same Symbol identity through encoding and decoding. Unshared symbols will not retain their object identity.
  2. A "safe" !function type is added. Functions aren't parsed to actual functions using eval(), since that's obviously a Bad Idea, but they do parse to an empty function with a toString() that contains the original string source.
  3. An Error type is added, which does its best to maintain its properties, and always shows message, stack, and name, even if these are non-enumerable. If an Error has a custom inspect method that returns an object, then that is used as the source of extra properties, so you may filter out what gets dumped to your TAP stream.
  4. Binary types are implicitly allowed in a standard way. In Node.js, this means that a Buffer object is created, and Buffers can be dumped to YAML without any weirdness.
  5. omap and set are configured to refer to Map and Set objects.
  6. Objects with a null prototype maintain their null-prototyped-ness.
  7. Domain objects are stringified, but without their giant object graph, since that's often a performance issue.
  8. Date objects are given a non-default !date tag rather than the default YAML 1.1 !timestamp, so that they maintain their explicit date object nature through stringifying and re-parsing.
  9. The prettyErrors option is always enabled.

tap-yaml's People

Contributors

isaacs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.