@ava/ pretty-格式 
字符串任意 JavaScript 值 .
- 支助 所有内置的 JavaScript 类型
- 闪亮快活 (类似于v8的性能)
JSON.stringify并且明显快于节点util.format(中文(简体) ) - 用于自定义类型扩展的插件系统(即:.
ReactTestComponent(中文(简体) )
安装
$ npm install @ava/pretty-format
使用量
var prettyFormat = require('pretty-format');
var obj = { property: {} };
obj.circularReference = obj;
obj[Symbol('foo')] = 'foo';
obj.map = new Map();
obj.map.set('prop', 'value');
obj.array = [1, NaN, Infinity];
console.log(prettyFormat(obj));
结果 :
Object {
"property": Object {},
"circularReference": [Circular],
"map": Map {
"prop" => "value"
},
"array": Array [
1,
NaN,
Infinity
],
Symbol(foo): "foo"
}
类型支持
Object, (中文(简体) ), Array, (中文(简体) ), ArrayBuffer, (中文(简体) ), DataView, (中文(简体) ), Float32Array, (中文(简体) ), Float64Array, (中文(简体) ), Int8Array, (中文(简体) ), Int16Array, (中文(简体) ), Int32Array, (中文(简体) ), Uint8Array, (中文(简体) ), Uint8ClampedArray, (中文(简体) ), Uint16Array, (中文(简体) ), Uint32Array, (中文(简体) ), arguments, (中文(简体) ), Boolean, (中文(简体) ), Date, (中文(简体) ), Error, (中文(简体) ), Function, (中文(简体) ), Infinity, (中文(简体) ), Map, (中文(简体) ), NaN, (中文(简体) ), null, (中文(简体) ), Number, (中文(简体) ), RegExp, (中文(简体) ), Set, (中文(简体) ), String, (中文(简体) ), Symbol, (中文(简体) ), undefined, (中文(简体) ), WeakMap, (中文(简体) ), WeakSet
API 密码
console.log(prettyFormat(object));
console.log(prettyFormat(object, options));
选项 :
callToJSON
类型 :boolean,默认值 :true
打电话toJSON()在经过的物体上.indent
类型 :number,默认值 :2
缩进空格数 .maxDepth
类型 :number,默认值 :Infinity
只打印此关数.min
类型 :boolean,默认值 :false
印出无白相.plugins
类型 :array,默认值 :[]
插件(见下一节).printFunctionName
类型 :boolean,默认值 :true
打印函数名称或只是[Function]。 。 。 .escapeRegex
类型 :boolean,默认值 :false
正则表达式中的逃避特殊字符.highlight
类型 :boolean,默认值 :false
突出显示终端的语法( 仅与ReactTestComponent财务报告和审定财务报表ReactElement插件 .theme
类型 :object,默认值 :{tag: 'cyan', content: 'reset'...}
语法突出显示主题.
用途 ansi 风格颜色 + 键reset因为没有颜色.
可用类型 :tag, (中文(简体) ),content, (中文(简体) ),prop财务报告和审定财务报表value。 。 。 .
插件
漂亮的格式还支持添加插件 :
var fooPlugin = {
test: function(val) {
return val && val.hasOwnProperty('foo');
},
print: function(val, print, indent) {
return 'Foo: ' + print(val.foo);
}
};
var obj = { foo: { bar: {} } };
prettyFormat(obj, {
plugins: [fooPlugin]
});
// Foo: Object {
// "bar": Object {}
// }
ReactTestComponent 财务报告和审定财务报表 ReactElement 插件
var prettyFormat = require('pretty-format');
var reactTestPlugin = require('pretty-format/plugins/ReactTestComponent');
var reactElementPlugin = require('pretty-format/plugins/ReactElement');
var React = require('react');
var renderer = require('react-test-renderer');
var jsx = React.createElement('h1', null, 'Hello World');
prettyFormat(renderer.create(jsx).toJSON(), {
plugins: [reactTestPlugin, reactElementPlugin]
});
// <h1>
// Hello World
// </h1>