Skip to content

Migration v1 -> v2

sh
node ace add @adonisjs/drive
  • basePath is deleted, replace by location option of fs service in drive config

config/attachment.ts

typescript
import { defineConfig } from '@jrmc/adonis-attachment'
import app from '@adonisjs/core/services/app'

export default defineConfig({
  basePath: app.publicPath(), 
  converters: [
    //...
  ]
})

sample config/drive.ts for compatibility old location attachment package version < 2.0.0

typescript
import env from '#start/env'
import app from '@adonisjs/core/services/app'
import { defineConfig, services } from '@adonisjs/drive'

const driveConfig = defineConfig({
  default: env.get('DRIVE_DISK'),

  services: {
    fs: services.fs({
      location: app.publicPath(), 
      serveFiles: true,
      routeBasePath: '/uploads',
      visibility: 'public',
    }),
  },
})

export default driveConfig

declare module '@adonisjs/drive/types' {
  export interface DriveDisks extends InferDriveDisks<typeof driveConfig> {}
}
  • Refacto getUrl() view helper, add await word
typescript
user.avatar.getUrl() 
await user.avatar.getUrl() 
  • Access serialize is update
typescript
user.avatar.toJSON() 
await user.avatar.toJSON() 
html
<img :src="user.avatar.thumbnail" loading="lazy" alt="" /> // [!code --]
<img :src="user.avatar.thumbnail.url" loading="lazy" alt="" /> // [!code ++]