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:
- ES5 style function only. Arrow functions, generator functions, and, native functions are not supported.
- All other object is treated as Object type.
({}), 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:
un_evalcurrently do not support some types such asError.un_evalwill convert native function to"null".un_evalwill format codes differently fromuneval.
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