UNPKG

@whisklabs/grpc

Version:

gRPC generator and http library for typescript

35 lines 1.13 kB
import { isArray, isObject, isString, isText } from '@whisklabs/typeguards'; import { snakeCase } from './utils'; export var mask = function (data) { return ({ paths: maskCalc(data) }); }; export var maskCalc = function (data, keys, prefix) { if (keys === void 0) { keys = []; } if (prefix === void 0) { prefix = ''; } if (!isObject(data)) { return keys; } // tslint:disable-next-line: forin for (var key in data) { var val = data[key]; var snake = snakeCase(key); var newPrefix = isText(prefix) ? "".concat(prefix, ".").concat(snake) : snake; if (isArray(val)) { keys.push(newPrefix); } else if (isObject(val)) { maskCalc(val, keys, newPrefix); } else { keys.push(newPrefix); } } return keys; }; export var maskWrap = function (data, rootElement, outName) { if (outName === void 0) { outName = 'mask'; } var d = data; if (isObject(d)) { d[outName] = mask(isString(rootElement) ? d[rootElement] : d); } return data; }; //# sourceMappingURL=mask.js.map