| 142 | columnsHandlers.push(new DryRunColumnsHandler()); |
| 143 | |
| 144 | export const resolveColumns = <T extends Named>(tableName: string, added: T[], removed: T[]) => { |
| 145 | const handler = columnsHandlers.filter((it) => { |
| 146 | return it.can(tableName, added, removed); |
| 147 | })[0]; |
| 148 | |
| 149 | if (!handler) { |
| 150 | console.log('added', added.map((it) => it.name).join()); |
| 151 | console.log('removed', removed.map((it) => it.name).join()); |
| 152 | throw new Error('No columns handler for table: ' + tableName); |
| 153 | } |
| 154 | |
| 155 | console.log(`${tableName} columns simluated by ${handler.constructor.name}`); |
| 156 | return handler.handle(tableName, added, removed); |
| 157 | }; |