UNPKG

@thoughtspot/visual-embed-sdk

Version:
57 lines 2.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.throwDrillDownValidationError = exports.throwUpdateFiltersValidationError = exports.createValidationError = exports.isValidDrillDownPayload = exports.isValidUpdateFiltersPayload = void 0; const types_1 = require("../../types"); const errors_1 = require("../../errors"); const utils_1 = require("../../utils"); function isValidUpdateFiltersPayload(payload) { if (!payload) return false; const isValidFilter = (f) => { const hasColumn = typeof f.column === 'string' || typeof f.columnName === 'string'; const hasOperator = typeof f.oper === 'string' || typeof f.operator === 'string'; const hasValues = Array.isArray(f.values); const validType = !f.type || typeof f.type === 'string'; return hasColumn && hasOperator && hasValues && validType; }; const hasValidFilter = payload.filter && isValidFilter(payload.filter); const hasValidFilters = Array.isArray(payload.filters) && payload.filters.length > 0 && payload.filters.every(isValidFilter); return !!(hasValidFilter || hasValidFilters); } exports.isValidUpdateFiltersPayload = isValidUpdateFiltersPayload; function isValidDrillDownPayload(payload) { if (!payload) return false; const points = payload.points; if (!points || typeof points !== 'object') return false; const hasClickedPoint = 'clickedPoint' in points && points.clickedPoint != null; const hasSelectedPoints = Array.isArray(points.selectedPoints) && points.selectedPoints.length > 0; return hasClickedPoint || hasSelectedPoints; } exports.isValidDrillDownPayload = isValidDrillDownPayload; function createValidationError(message) { const err = new Error(message); err.isValidationError = true; err.embedErrorDetails = { type: types_1.EmbedEvent.Error, data: { errorType: types_1.ErrorDetailsTypes.VALIDATION_ERROR, message, code: types_1.EmbedErrorCodes.HOST_EVENT_VALIDATION, error: message }, status: utils_1.embedEventStatus.END }; throw err; } exports.createValidationError = createValidationError; function throwUpdateFiltersValidationError() { createValidationError(errors_1.ERROR_MESSAGE.UPDATEFILTERS_INVALID_PAYLOAD); } exports.throwUpdateFiltersValidationError = throwUpdateFiltersValidationError; function throwDrillDownValidationError() { createValidationError(errors_1.ERROR_MESSAGE.DRILLDOWN_INVALID_PAYLOAD); } exports.throwDrillDownValidationError = throwDrillDownValidationError; //# sourceMappingURL=utils.js.map