| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import Path from 'path'
- import mongodb from '../../app/src/infrastructure/mongodb.js'
- import Mongoose from '../../app/src/infrastructure/Mongoose.js'
- import { fileURLToPath } from 'url'
- const __filename = fileURLToPath(import.meta.url)
- const __dirname = Path.dirname(__filename)
- const { db, waitForDb } = mongodb
- const { getNativeDb } = Mongoose
- class Adapter {
- constructor(params) {
- if (
- !process.env.SKIP_TAG_CHECK &&
- !process.argv.includes('create') &&
- !(process.argv.includes('-t') || process.argv.includes('--tags'))
- ) {
- console.error("ERROR: must pass tags using '-t' or '--tags', exiting")
- process.exit(1)
- }
- this.params = params || {}
- }
- getTemplatePath() {
- return Path.resolve(__dirname, 'template.mjs')
- }
- async connect() {
- await waitForDb()
- const nativeDb = await getNativeDb()
- return { db, nativeDb }
- }
- disconnect() {
- return Promise.resolve()
- }
- async getExecutedMigrationNames() {
- const { db } = await this.connect()
- const migrations = await db.migrations
- .find({}, { sort: { migratedAt: 1 }, projection: { name: 1 } })
- .toArray()
- return migrations.map(migration => migration.name)
- }
- async markExecuted(name) {
- const { db } = await this.connect()
- return db.migrations.insertOne({
- name,
- migratedAt: new Date(),
- })
- }
- async unmarkExecuted(name) {
- const { db } = await this.connect()
- return db.migrations.deleteOne({
- name,
- })
- }
- }
- export default Adapter
|