un-eval

1.2.0 • Public • Published

un-eval

un_eval is a function that converts an Object to its source.

Usage

You may use un_eval in node or browser like this:

un_eval(yourObject)

Support types

The un_eval support following types

Type Support
null (Yes)
undefined (Yes)
number (Yes)
string (Yes)
boolean (Yes)
Number (Yes)
String (Yes)
Boolean (Yes)
Date (Yes)
RegExp (Yes)
function (Yes)[1]
Array (Yes)
Object (Yes)[2][3]

Notes:

  1. ES5 style function only. Arrow functions, generator functions, and, native functions are not supported.
  2. All other object is treated as Object type.
  3. ({}), or [] will be generated if any circular found.

Examples

un_eval(3); // '3'
un_eval(Math.PI); // '3.141592653589793'
un_eval('hello'); // '"hello"'
un_eval(Object(false)); // 'new Boolean(false)'
un_eval(function (x) { return x + 1; }); // '(function (x) { return x + 1; })'
un_eval(/regexp/ig); // '/regexp/gi'
un_eval(new Date(978307200000)); // '(new Date(978307200000))'
un_eval([1,2,3]); // '[1, 2, 3]'
un_eval({x: 2, y: 3}); // '({"x":2, "y":3})'
 
var obj1 = {};
obj1.x = obj1.y = { value: 3 };
un_eval(obj1); // '({"y":({"value":3}), "x":({"value":3})})'
 
var obj2 = {};
obj2.x = {};
obj2.y = {};
obj2.x.y = obj2.y;
obj2.y.x = obj2.x;
un_eval(obj2); // '({"x":({"y":({"x":({})})}), "y":({"x":({"y":({})})})})'

eval & uneval

un_eval is disgned to be similar to uneval but works cross browser.

un_eval is similar to uneval, but there are few difference:

  1. un_eval currently do not support some types such as Error.
  2. un_eval will convert native function to "null".
  3. un_eval will format codes differently from uneval.

Warning

Although, un_eval is designed to output source with no side effect. But there may be some bugs or limitations in the code. You should avoid using un_eval any untrustable objects (maybe from user input) then eval it. NEVER use eval unless you know what will happen.

USE AS YOUR OWN RISK.

License

The MIT License

Readme

Keywords

Package Sidebar

Install

npm i un-eval

Weekly Downloads

53,294

Version

1.2.0

License

MIT

Unpacked Size

7.95 kB

Total Files

4

Last publish

Collaborators

  • tiansh