MCPcopy Create free account
hub / github.com/bytebase/bytebase / buildCondition

Function buildCondition

frontend/src/utils/issue/cel.ts:279–332  ·  view source on GitHub ↗
(
    condition:
      | DatabaseLevelCondition
      | SchemaLevelCondition
      | TableLevelCondition
      | ColumnLevelCondition
  )

Source from the content-addressed store, hash-verified

277 };
278
279 function buildCondition(
280 condition:
281 | DatabaseLevelCondition
282 | SchemaLevelCondition
283 | TableLevelCondition
284 | ColumnLevelCondition
285 ): string {
286 const databaseExpression = `${CEL_ATTRIBUTE_RESOURCE_DATABASE} == "${condition.database}"`;
287 if ("column" in condition) {
288 return [
289 databaseExpression,
290 getStringExpressionString(
291 CEL_ATTRIBUTE_RESOURCE_SCHEMA_NAME,
292 condition.schema
293 ),
294 getStringExpressionString(
295 CEL_ATTRIBUTE_RESOURCE_TABLE_NAME,
296 condition.table
297 ),
298 getArrayExpressionString(
299 CEL_ATTRIBUTE_RESOURCE_COLUMN_NAME,
300 condition.column
301 ),
302 ]
303 .filter((str) => str)
304 .join(" && ");
305 } else if ("table" in condition) {
306 return [
307 databaseExpression,
308 getStringExpressionString(
309 CEL_ATTRIBUTE_RESOURCE_SCHEMA_NAME,
310 condition.schema
311 ),
312 getArrayExpressionString(
313 CEL_ATTRIBUTE_RESOURCE_TABLE_NAME,
314 condition.table
315 ),
316 ]
317 .filter((str) => str)
318 .join(" && ");
319 } else if ("schema" in condition) {
320 return [
321 databaseExpression,
322 getArrayExpressionString(
323 CEL_ATTRIBUTE_RESOURCE_TABLE_NAME,
324 condition.schema
325 ),
326 ]
327 .filter((str) => str)
328 .join(" && ");
329 } else {
330 return `${CEL_ATTRIBUTE_RESOURCE_DATABASE} in ${JSON.stringify(condition.database)}`;
331 }
332 }
333
334 function buildGroup(
335 conditions: (

Callers 1

buildGroupFunction · 0.85

Calls 2

getArrayExpressionStringFunction · 0.85

Tested by

no test coverage detected