(resources: DatabaseResource[])
| 157 | }; |
| 158 | |
| 159 | const 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 | ); |
no test coverage detected