2020-10-04 04:40:16 +03:00
|
|
|
/**********************************************************************
|
|
|
|
|
*
|
|
|
|
|
*
|
|
|
|
|
*
|
2020-10-06 01:32:33 +03:00
|
|
|
**********************************************/ /* c8 ignore next 2 */
|
2020-10-04 04:40:16 +03:00
|
|
|
((typeof define)[0]=='u'?function(f){module.exports=f(require)}:define)
|
|
|
|
|
(function(require){ var module={} // make module AMD/node compatible...
|
|
|
|
|
/*********************************************************************/
|
|
|
|
|
|
|
|
|
|
require('object-run')
|
|
|
|
|
|
2020-10-06 03:09:44 +03:00
|
|
|
var object = require('ig-object')
|
|
|
|
|
|
2020-10-04 04:40:16 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/*********************************************************************/
|
|
|
|
|
|
2020-10-06 03:09:44 +03:00
|
|
|
Object.deepKeys =
|
|
|
|
|
Object.deepKeys
|
|
|
|
|
|| object.deepKeys
|
|
|
|
|
|
|
|
|
|
|
2020-10-07 16:46:59 +03:00
|
|
|
// XXX unify this with ./Array.js (.match(..)) and diff.js
|
2020-10-06 03:09:44 +03:00
|
|
|
Object.match =
|
|
|
|
|
Object.match
|
|
|
|
|
|| object.match
|
|
|
|
|
Object.matchPartial =
|
|
|
|
|
Object.matchPartial
|
|
|
|
|
|| object.matchPartil
|
2020-10-04 04:40:16 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
// Make a full key set copy of an object...
|
|
|
|
|
//
|
|
|
|
|
// NOTE: this will not deep-copy the values...
|
|
|
|
|
Object.flatCopy = function(obj){
|
2020-10-06 03:09:44 +03:00
|
|
|
return Object.deepKeys(obj)
|
|
|
|
|
.reduce(function(res, key){
|
|
|
|
|
res[key] = obj[key]
|
|
|
|
|
return res }, {}) }
|
2020-10-04 04:40:16 +03:00
|
|
|
|
|
|
|
|
|
2020-10-07 16:46:59 +03:00
|
|
|
Object.sort = function(obj, keys){
|
|
|
|
|
keys = (typeof(keys) == 'function'
|
|
|
|
|
|| keys === undefined) ?
|
|
|
|
|
[...Object.keys(obj)].sort(keys)
|
|
|
|
|
: keys
|
|
|
|
|
new Set([...keys, ...Object.keys(obj)])
|
|
|
|
|
.forEach(function(k){
|
|
|
|
|
if(k in obj){
|
|
|
|
|
var v = obj[k]
|
|
|
|
|
delete obj[k]
|
|
|
|
|
obj[k] = v } })
|
|
|
|
|
return obj }
|
|
|
|
|
// keep the null prototype clean...
|
|
|
|
|
//Object.prototype.sort = function(keys){
|
|
|
|
|
// return Object.sort(this, keys) }
|
|
|
|
|
|
2020-10-04 04:40:16 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/**********************************************************************
|
|
|
|
|
* vim:set ts=4 sw=4 : */ return module })
|