* Parse and validate migration filename
(filename: string)
| 23 | * Parse and validate migration filename |
| 24 | */ |
| 25 | function parseMigrationFilename(filename: string): { version: number; description: string } | null { |
| 26 | const match = filename.match(MIGRATION_FILENAME_PATTERN); |
| 27 | if (!match) { |
| 28 | return null; |
| 29 | } |
| 30 | |
| 31 | const version = parseInt(match[1], 10); |
| 32 | if (isNaN(version)) { |
| 33 | return null; |
| 34 | } |
| 35 | |
| 36 | return { |
| 37 | version, |
| 38 | description: match[2], |
| 39 | }; |
| 40 | } |
| 41 | |
| 42 | /** |
| 43 | * Load all migration files |