An experimental module to maintain the order of object properties
npm install ordered-objectordered-object
==============


An experimental module to maintain the order of object properties.
Installation
------------
``
`
npm install ordered-object
`
Usage
-----
js
`
const orderedObject = require("ordered-json");
const obj = {a: 1, b: 2, c: 3};
Object.values(obj); // [1, 2, 3]
const obj2 = orderedObject.create(obj, ["c", "b", "a"]);
Object.values(obj2); // [3, 2, 1]
object
API reference
-------------
$3
Return an object whose keys are ordered.
* : an object, which can also be an ordered-keys object (proxy).
keys
* : keys of the object. If object has a property which is not included in keys, Object.keys(OrderedObject) won't contain the property either. However it can still be accessed from OrderedObject.property.
unordered
* : if provided, do some extra normalization to unordered properties (i.e. not occured in keys). Possible values are:
trim
- : trim unordered properties.
start
- : move unordered properties to the start.
end
- : move unordered properties to the end.
keep
- : keep the position (index) of unordered properties. With this option, you can only reorder the properties occured in keys. For example:
`
js
`
const obj = create({a: 1, b: 2, c: 3}, ["c", "a"], "keep");
Object.keys(obj); // ["c", "b", "a"]
object
$3
Recursively convert entire into OrderedObject with create.
null
Notes
-----
* https://stackoverflow.com/questions/30076219/does-es6-introduce-a-well-defined-order-of-enumeration-for-object-properties
Changelog
---------
* 0.2.3 (May 27, 2019)
- Fix: remove useless stuff in the package.
* 0.2.2 (May 27, 2019)
- Fix: type error when sending value to wrap.
Object.keys(obj).length > order.length
* 0.2.1 (May 6, 2018)
- Fix: some keys are stripped if and unordered == "keep".
unordered
- Fix: use a set to avoid duplicated keys.
* 0.2.0 (Dec 23, 2017)
- Add: argument to create().
create()
- Change: Always create a new object in .
__raw__` property.
- Remove
* 0.1.0 (Dec 14, 2017)
- First release.