migrator-source.mjs 751 B

1234567891011121314151617181920212223242526
  1. import path from 'node:path'
  2. import fse from 'fs-extra'
  3. import semver from 'semver'
  4. export default {
  5. /**
  6. * Gets the migration names
  7. * @returns Promise<string[]>
  8. */
  9. async getMigrations() {
  10. const baseMigrationPath = path.join(WIKI.SERVERPATH, 'db/migrations')
  11. const migrationFiles = await fse.readdir(baseMigrationPath)
  12. return migrationFiles.map(m => m.replace('.mjs', '')).sort(semver.compare).map(m => ({
  13. file: m,
  14. directory: baseMigrationPath
  15. }))
  16. },
  17. getMigrationName(migration) {
  18. return migration.file.indexOf('.mjs') >= 0 ? migration.file : `${migration.file}.mjs`
  19. },
  20. async getMigration(migration) {
  21. return import(path.join(WIKI.SERVERPATH, 'db/migrations', `${migration.file}.mjs`))
  22. }
  23. }