JSPM

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

un_eval converts an Object to its source

Package Exports

  • un-eval

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

Readme

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