UNPKG

globalstorage

Version:

Global Storage is a Global Distributed Data Warehouse

114 lines (90 loc) 3.55 kB
'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var removeSensitiveData = function removeSensitiveData(definition, instance) { var filtered = {}; var _arr = Object.keys(instance); for (var _i = 0; _i < _arr.length; _i++) { var name = _arr[_i]; var prop = definition[name]; if (!prop || !prop.sensitive && !(prop.definition && prop.definition.sensitive)) { filtered[name] = instance[name]; } } return filtered; }; var prepareForLogging = function prepareForLogging(provider, record) { var ms = provider.schema; var operation = record.Operation, category = record.Category; if (operation === null) { var action = record.Action, response = record.Response; var schema = category ? ms.categories.get(category).actions.get(action) : ms.actions.get(action); if (!schema) return; if (record.Query) { record.Query = removeSensitiveData(schema.definition.Args, record.Query); } if (Object.prototype.toString.call(response) === '[object Object]' && response !== null) { record.Response = removeSensitiveData(schema.definition.Returns, response); } } else if (!category) { return; } else if (operation === 'Read') { var _schema = ms.categories.get(category); if (_schema && record.getDetails) _schema = _schema.definition[record.getDetails]; if (!_schema) return; if (Array.isArray(record.Response)) { record.Response = record.Response.map(function (record) { return removeSensitiveData(_schema.definition, record); }); } else if (typeof record.Response === 'number') { return; } else if (record.Response) { record.Response = removeSensitiveData(_schema.definition, record.Response); } } else { var _schema2 = ms.categories.get(category); if (!_schema2) return; var query = record.Query, patch = record.Patch; if (query && !query.linkDetails && !query.unlinkDetails) { record.Query = removeSensitiveData(_schema2.definition, query); } if (patch) { record.Patch = removeSensitiveData(_schema2.definition, patch); } } }; var logStatusValues = ['info', 'warning', 'critical']; var LogStatus = /*#__PURE__*/ function () { function LogStatus(status, value) { _classCallCheck(this, LogStatus); this.status = status; this.value = value; } _createClass(LogStatus, null, [{ key: "strip", value: function strip(status) { if (status instanceof LogStatus) { return status.value; } return status; } }]); return LogStatus; }(); var LogStatusDecorator = {}; logStatusValues.forEach(function (status) { LogStatusDecorator[status] = function (value) { return new LogStatus(status, value); }; }); module.exports = { prepareForLogging: prepareForLogging, LogStatus: LogStatus, LogStatusDecorator: LogStatusDecorator };