@aeternity/aepp-sdk
Version:
SDK for the æternity blockchain
70 lines (64 loc) • 2.73 kB
JavaScript
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
import _typeof from "@babel/runtime-corejs3/helpers/typeof";
import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
import _setTimeout from "@babel/runtime-corejs3/core-js-stable/set-timeout";
import _Object$fromEntries from "@babel/runtime-corejs3/core-js-stable/object/from-entries";
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
import _Object$entries from "@babel/runtime-corejs3/core-js-stable/object/entries";
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
import _Array$isArray from "@babel/runtime-corejs3/core-js-stable/array/is-array";
import _bindInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/bind";
import { snakeToPascal, pascalToSnake } from './string';
export var pause = function pause(duration) {
return new _Promise(function (resolve) {
return _setTimeout(resolve, duration);
});
};
export var mapObject = function mapObject(object, fn) {
var _context;
return _Object$fromEntries(_mapInstanceProperty(_context = _Object$entries(object)).call(_context, fn));
};
export var filterObject = function filterObject(object, fn) {
var _context2;
return _Object$fromEntries(_filterInstanceProperty(_context2 = _Object$entries(object)).call(_context2, fn));
};
/**
* Key traversal metafunction
* @static
* @function
* @rtype (fn: (s: String) => String) => (o: Object) => Object
* @param {Function} fn - Key transformation function
* @param {Object} object - Object to traverse
* @return {Object} Transformed object
*/
export var traverseKeys = function traverseKeys(fn, object) {
if (_typeof(object) !== 'object' || object === null) return object;
if (_Array$isArray(object)) return _mapInstanceProperty(object).call(object, function (i) {
return traverseKeys(fn, i);
});
return mapObject(object, function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
return [fn(key), traverseKeys(fn, value)];
});
};
/**
* snake_case key traversal
* @static
* @rtype (o: Object) => Object
* @param {Object} object - Object to traverse
* @return {Object} Transformed object
* @see pascalToSnake
*/
export var snakizeKeys = _bindInstanceProperty(traverseKeys).call(traverseKeys, null, pascalToSnake);
/**
* PascalCase key traversal
* @static
* @rtype (o: Object) => Object
* @param {Object} object - Object to traverse
* @return {Object} Transformed object
* @see snakeToPascal
*/
export var pascalizeKeys = _bindInstanceProperty(traverseKeys).call(traverseKeys, null, snakeToPascal);
//# sourceMappingURL=other.js.map