( migrations: Record<string, () => Promise<any>> )
| 296 | * @category loaders |
| 297 | */ |
| 298 | export const fromGlob = ( |
| 299 | migrations: Record<string, () => Promise<any>> |
| 300 | ): Loader => |
| 301 | pipe( |
| 302 | Object.keys(migrations), |
| 303 | Arr.filterMap((_) => Option.fromNullable(_.match(/^(?:.*\/)?(\d+)_([^.]+)\.(js|ts)$/))), |
| 304 | Arr.map( |
| 305 | ([key, id, name]): ResolvedMigration => [ |
| 306 | Number(id), |
| 307 | name, |
| 308 | Effect.promise(() => migrations[key]()) |
| 309 | ] |
| 310 | ), |
| 311 | Arr.sort(migrationOrder), |
| 312 | Effect.succeed |
| 313 | ) |
| 314 | |
| 315 | /** |
| 316 | * @since 1.0.0 |