@whisklabs/grpc
Version:
gRPC generator and http library for typescript
41 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.maskWrap = exports.maskCalc = exports.mask = void 0;
var typeguards_1 = require("@whisklabs/typeguards");
var utils_1 = require("./utils");
var mask = function (data) { return ({ paths: (0, exports.maskCalc)(data) }); };
exports.mask = mask;
var maskCalc = function (data, keys, prefix) {
if (keys === void 0) { keys = []; }
if (prefix === void 0) { prefix = ''; }
if (!(0, typeguards_1.isObject)(data)) {
return keys;
}
// tslint:disable-next-line: forin
for (var key in data) {
var val = data[key];
var snake = (0, utils_1.snakeCase)(key);
var newPrefix = (0, typeguards_1.isText)(prefix) ? "".concat(prefix, ".").concat(snake) : snake;
if ((0, typeguards_1.isArray)(val)) {
keys.push(newPrefix);
}
else if ((0, typeguards_1.isObject)(val)) {
(0, exports.maskCalc)(val, keys, newPrefix);
}
else {
keys.push(newPrefix);
}
}
return keys;
};
exports.maskCalc = maskCalc;
var maskWrap = function (data, rootElement, outName) {
if (outName === void 0) { outName = 'mask'; }
var d = data;
if ((0, typeguards_1.isObject)(d)) {
d[outName] = (0, exports.mask)((0, typeguards_1.isString)(rootElement) ? d[rootElement] : d);
}
return data;
};
exports.maskWrap = maskWrap;
//# sourceMappingURL=mask.js.map