Socket
Socket
Sign inDemoInstall

un-eval

Package Overview
Dependencies
0
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    un-eval

un_eval converts an Object to its source


Version published
Weekly downloads
48K
decreased by-15.34%
Maintainers
1
Install size
8.51 kB
Created
Weekly downloads
 

Readme

Source

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

TypeSupport
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

Keywords

FAQs

Last updated on 02 Jul 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc