JSPM

  • Created
  • Published
  • Downloads 878
  • Score
    100M100P100Q105655F
  • License MIT

Turn any field on your Lucid model to an attachment data type

Package Exports

  • @jrmc/adonis-attachment
  • @jrmc/adonis-attachment/attachment_provider
  • @jrmc/adonis-attachment/commands
  • @jrmc/adonis-attachment/commands/main
  • @jrmc/adonis-attachment/commands/make/converter
  • @jrmc/adonis-attachment/controllers/attachments_controller
  • @jrmc/adonis-attachment/converters/autodetect_converter
  • @jrmc/adonis-attachment/converters/converter
  • @jrmc/adonis-attachment/converters/document_thumbnail_converter
  • @jrmc/adonis-attachment/converters/image_converter
  • @jrmc/adonis-attachment/converters/pdf_thumbnail_converter
  • @jrmc/adonis-attachment/converters/video_thumbnail_converter
  • @jrmc/adonis-attachment/decorators
  • @jrmc/adonis-attachment/providers/attachment_provider
  • @jrmc/adonis-attachment/services/main
  • @jrmc/adonis-attachment/services/regenerate_service
  • @jrmc/adonis-attachment/types/attachment
  • @jrmc/adonis-attachment/types/config
  • @jrmc/adonis-attachment/types/converter
  • @jrmc/adonis-attachment/types/index
  • @jrmc/adonis-attachment/types/input
  • @jrmc/adonis-attachment/types/lock
  • @jrmc/adonis-attachment/types/metadata
  • @jrmc/adonis-attachment/types/mixin
  • @jrmc/adonis-attachment/types/regenerate
  • @jrmc/adonis-attachment/types/service

Readme

AdonisJS attachment

This package is currently development and will replace attachment-advanced for AdonisJS 6.

View documentation

ChangeLog

Project sample : adonis-starter-kit

Roadmap

  • attachment file by file system
  • attachment file by buffer
  • attachment file by path
  • attachment file by url
  • attachment file by stream
  • attachment file by Base64
  • attachment files
  • save meta data
  • variantes
    • images
    • documents thumbnail
    • videos thumbnail
  • command regenerate
  • command make:convert
  • adonis-drive/flydrive
  • jobs queue
  • serialize
  • attachments route

Setup

Install and configure the package:

node ace add @jrmc/adonis-attachment

Sample

Simple upload file

// app/models/user.ts
import { BaseModel } from '@adonisjs/lucid/orm'
import { compose } from '@adonisjs/core/helpers'
import { attachment, Attachmentable } from '@jrmc/adonis-attachment'
import type { Attachment } from '@jrmc/adonis-attachment/types/attachment'

class User extends compose(BaseModel, Attachmentable) {
  @attachment()
  declare avatar: Attachment
}

// app/controllers/users_controller.ts
import { attachmentManager } from '@jrmc/adonis-attachment'

class UsersController {
  public store({ request }: HttpContext) {
    const avatar = request.file('avatar')!
    const user = new User()

    user.avatar = await attachmentManager.createFromFile(avatar)
    await user.save()
  }
}

<img src="{{ await user.avatar.getUrl() }}" loading="lazy" alt="" />

Read documentation for advanced usage(thumbnail video/pdf/doc, create from buffer/base64...)