JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1935
  • Score
    100M100P100Q112014F
  • License MIT

Stringify object/array with yaml syntax

Package Exports

  • yamlify-object

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 (yamlify-object) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

yamlify-object

Build Status Code Coverage

Stringify object/array with yaml syntax

Install

npm install yamlify-object

Usage

const yamlifyObject = require('yamlify-object');

const obj = {
  array: [
    2,
    'two',
    {
      emptyArray: [],
    },
  ],
  error: new Error('message'),
  date: new Date(0),
  object: {
    number: 200,
    bool: false,
    null: null,
    undefined: undefined,
    emptyObject: {},
  },
};

const formattedString = yamlifyObject(obj, {
  indent: '  ',
  prefix: '\n',
  postfix: '\n',
});

console.log(formattedString);
/*

  array:
    - 2
    - two
    - emptyArray: []
  error: Error: message
  date: new Date(1970-01-01T00:00:00.000Z)
  object:
    number: 200
    bool: false
    null: null
    undefined: undefined
    emptyObject: {}

*/

API

yamlifyObject(input, [options])

input

Type: Object Array

options

indent

Type: string
Default: ' ' - signle space

prefix

Type: string
Default: '\n'

postfix

Type: string
Default: ''

dateToString(date: Date)

Type: Function

Expected to return a string that stringified version of Date instance.

errorToString(error: Error)

Type: Function

Expected to return a string that stringified version of Error instance.

colors

Type: object
Default:

{
  date: function (s: string): string,
  error: function (s: string): string,
  symbol: function (s: string): string,
  string: function (s: string): string,
  number: function (s: string): string,
  boolean: function (s: string): string,
  null: function (s: string): string,
  undefined: function (s: string): string,
}

Each property of colors object expected to be a function that expected to return somehow colorified version of passed string argument.

You can specify colors only for types you need and the rest will stay colorless strings:

const obj = {
  number: 1
  string: 'str',
  bool: true,
};

const formattedString = yamlifyObject(obj, {
  colors: {
    number: (value) => `COLOR_CODE${value}COLOR_CODE`,
    boolean: (value) => `COLOR_CODE${value}COLOR_CODE`,
  },
});

console.log(formattedString);
/*
 number: COLOR_CODE1COLOR_CODE
 string: str
 bool: COLOR_CODEtrueCOLOR_CODE
*/

For terminal can be used yamlify-object-colors preset:

Object formating example