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

Function stringifyDatabaseResources

frontend/src/utils/issue/cel.ts:159–225  ·  view source on GitHub ↗
(resources: DatabaseResource[])

Source from the content-addressed store, hash-verified

157};
158
159const stringifyDatabaseResources = (resources: DatabaseResource[]) => {
160 const conditionList: DatabaseResourceCondition[] = [];
161
162 for (const resource of resources) {
163 if (resource.columns !== undefined) {
164 conditionList.push({
165 database: resource.databaseFullName,
166 schema: resource.schema ?? "",
167 table: resource.table ?? "",
168 column: [...resource.columns],
169 });
170 } else if (resource.table !== undefined) {
171 conditionList.push({
172 database: resource.databaseFullName,
173 schema: resource.schema ?? "",
174 table: [resource.table],
175 });
176 } else if (resource.schema !== undefined) {
177 conditionList.push({
178 database: resource.databaseFullName,
179 schema: [resource.schema],
180 });
181 } else {
182 conditionList.push({
183 database: [resource.databaseFullName],
184 });
185 }
186 }
187
188 const databaseLevelConditionList = mergeDatabaseLevelConditions(
189 conditionList.filter((condition): condition is DatabaseLevelCondition =>
190 Array.isArray(condition.database)
191 )
192 ).filter((condition) => condition.database.length > 0);
193 const schemaLevelConditionList = mergeSchemaLevelConditions(
194 conditionList.filter(
195 (condition): condition is SchemaLevelCondition =>
196 typeof condition.database === "string" &&
197 Array.isArray((condition as SchemaLevelCondition).schema)
198 )
199 );
200 const tableLevelConditionList = mergeTableLevelConditions(
201 conditionList.filter(
202 (condition): condition is TableLevelCondition =>
203 typeof condition.database === "string" &&
204 typeof (condition as TableLevelCondition).schema === "string" &&
205 Array.isArray((condition as TableLevelCondition).table)
206 )
207 );
208 const columnLevelConditionList = mergeColumnLevelConditions(
209 conditionList.filter(
210 (condition): condition is ColumnLevelCondition =>
211 typeof condition.database === "string" &&
212 typeof (condition as ColumnLevelCondition).schema === "string" &&
213 typeof (condition as ColumnLevelCondition).table === "string" &&
214 Array.isArray((condition as ColumnLevelCondition).column)
215 )
216 );

Callers 1

Calls 5

convertToCELStringFunction · 0.85

Tested by

no test coverage detected