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

/un-eval/

    Package Sidebar

    Install

    npm i un-eval

    Weekly Downloads

    61,763

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    7.95 kB

    Total Files

    4

    Last publish

    Collaborators

    • tiansh