Neophobe Plebeian Mumpsimus
Miss any of our Open RFC calls?Watch the recordings here! »

yamlify-object

0.5.1 • Public • Published

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: {},
  },
};
 
obj.circular = obj;
 
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: {}
  circular: [Circular]
 
*/

API

yamlifyObject(input, [options])

input

Type: Object Array

options

indent

Type: string
Default: ' ' - single 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:

{
  datefunction (s: string): string,
  errorfunction (s: string): string,
  symbolfunction (s: string): string,
  stringfunction (s: string): string,
  numberfunction (s: string): string,
  booleanfunction (s: string): string,
  nullfunction (s: string): string,
  undefinedfunction (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

Install

npm i yamlify-object

DownloadsWeekly Downloads

2,860

Version

0.5.1

License

MIT

Unpacked Size

65.7 kB

Total Files

23

Last publish

Collaborators

  • avatar