neft
Version:
Universal Platform
66 lines (39 loc) • 2.04 kB
Markdown
# Stringifying
> **API Reference** ▸ [Utils](/api/utils.md) ▸ **Stringifying**
<!-- toc -->
> [`Source`](https://github.com/Neft-io/neft/blob/f9c128ccb37aa79380c961e878cd76ec9e79c99e/src/utils/stringifying.litcoffee)
* * *
### `utils.simplify()`
<dl><dt>Static method of</dt><dd><i>utils</i></dd><dt>Parameters</dt><dd><ul><li>object — <i>Object</i></li><li>options — <i>Object</i> — <i>optional</i></li></ul></dd></dl>
Convert the given object into the most simplified format with no cyclic references and more.
Such object can be easily stringified later using standard *JSON.stringify()*.
Use utils.assemble() function to restore the object into the initial structure.
Second parameter is an config object (all 'false' by default):
- *properties* - save properties descriptors (getters, config etc.),
- *protos* - save protos as objects,
- *constructors* - include constructor functions.
```javascript
var obj = {};
obj.self = obj;
console.log(JSON.stringify(utils.simplify(obj)));
```
If *protos* is *false* and *constructors* is *true*,
object will be recognized as an instance.
```javascript
function Sample(){
this.fromInstance = 1;
}
Sample.prototype.fromPrototype = 1;
var sample = new Sample;
var parts = utils.simplify(sample, {constructors: true});
var clone = utils.assemble(json);
console.log(clone instanceof Sample)
// it's true because 'protos' option is false and 'constructors' is true
// won't work for json, because functions are not stringified ...
```
> [`Source`](https://github.com/Neft-io/neft/blob/f9c128ccb37aa79380c961e878cd76ec9e79c99e/src/utils/stringifying.litcoffee#utilssimplifyobject-object-object-options)
* * *
### `utils.assemble()`
<dl><dt>Static method of</dt><dd><i>utils</i></dd><dt>Parameters</dt><dd><ul><li>object — <i>PlainObject</i></li></ul></dd></dl>
Backward utils.simplify() operation.
> [`Source`](https://github.com/Neft-io/neft/blob/f9c128ccb37aa79380c961e878cd76ec9e79c99e/src/utils/stringifying.litcoffee#utilsassembleplainobject-object)