(diagram, rel)
| 187 | } |
| 188 | |
| 189 | function resolveRel(diagram, rel) { |
| 190 | const tables = diagram?.tables || []; |
| 191 | const startT = tables.find((t) => t.id === rel.startTableId); |
| 192 | const endT = tables.find((t) => t.id === rel.endTableId); |
| 193 | if (!startT || !endT) return null; |
| 194 | const pairs = getRelationshipFields(rel); |
| 195 | const startFieldNames = pairs.map( |
| 196 | (p) => (startT.fields || []).find((f) => f.id === p.startFieldId)?.name, |
| 197 | ); |
| 198 | const endFieldNames = pairs.map( |
| 199 | (p) => (endT.fields || []).find((f) => f.id === p.endFieldId)?.name, |
| 200 | ); |
| 201 | if (startFieldNames.some((n) => !n) || endFieldNames.some((n) => !n)) |
| 202 | return null; |
| 203 | return { |
| 204 | startTableName: startT.name, |
| 205 | startFieldName: startFieldNames[0], |
| 206 | endTableName: endT.name, |
| 207 | endFieldName: endFieldNames[0], |
| 208 | startFieldNames, |
| 209 | endFieldNames, |
| 210 | }; |
| 211 | } |
| 212 | |
| 213 | function fkCols(names, q) { |
| 214 | return names.map((n) => q(n)).join(", "); |
no test coverage detected