@whisklabs/grpc
Version:
gRPC generator and http library for typescript
35 lines • 1.13 kB
JavaScript
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