You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
5.3 KiB

import { Plugin } from '@nuxt/types'
import { TaskStatusApplicationService } from '@/services/application/celery/taskStatusApplicationService'
import { CatalogApplicationService } from '@/services/application/upload/catalogApplicationService'
import { ParseApplicationService } from '@/services/application/upload/parseApplicationService'
import { LabelApplicationService } from '@/services/application/label/labelApplicationService'
import { MemberApplicationService } from '@/services/application/member/memberApplicationService'
import { UserApplicationService } from '@/services/application/user/userApplicationService'
import { RoleApplicationService } from '@/services/application/role/roleApplicationService'
import { ProjectApplicationService } from '@/services/application/project/projectApplicationService'
import { CommentApplicationService } from '@/services/application/comment/commentApplicationService'
import { MetricsApplicationService } from '@/services/application/metrics/metricsApplicationService'
import { ExampleApplicationService } from '@/services/application/example/exampleApplicationService'
import { OptionApplicationService } from '@/services/application/option/optionApplicationService'
import { SequenceLabelingApplicationService } from '@/services/application/tasks/sequenceLabeling/sequenceLabelingApplicationService'
import { Seq2seqApplicationService } from '@/services/application/tasks/seq2seq/seq2seqApplicationService'
import { ConfigApplicationService } from '@/services/application/autoLabeling/configApplicationService'
import { TemplateApplicationService } from '@/services/application/autoLabeling/templateApplicationService'
import { TextClassificationService } from '@/services/application/tasks/textClassification/textClassificationApplicationService'
import { AuthApplicationService } from '@/services/application/auth/authApplicationService'
import { DownloadApplicationService } from '@/services/application/download/downloadApplicationService'
import { DownloadFormatApplicationService } from '@/services/application/download/downloadFormatApplicationService'
import { TagApplicationService } from '@/services/application/tag/tagApplicationService'
import { BoundingBoxApplicationService } from '@/services/application/tasks/boundingBox/boundingBoxApplicationService'
import { SegmentationApplicationService } from '@/services/application/tasks/segmentation/segmentationApplicationService'
import { repositories } from './repositories'
export interface Services {
categoryType: LabelApplicationService
spanType: LabelApplicationService
relationType: LabelApplicationService
member: MemberApplicationService
user: UserApplicationService
role: RoleApplicationService
project: ProjectApplicationService
comment: CommentApplicationService
metrics: MetricsApplicationService
example: ExampleApplicationService
textClassification: TextClassificationService
sequenceLabeling: SequenceLabelingApplicationService
seq2seq: Seq2seqApplicationService
option: OptionApplicationService
config: ConfigApplicationService
template: TemplateApplicationService
auth: AuthApplicationService
catalog: CatalogApplicationService
parse: ParseApplicationService
taskStatus: TaskStatusApplicationService
downloadFormat: DownloadFormatApplicationService
download: DownloadApplicationService
tag: TagApplicationService
bbox: BoundingBoxApplicationService
segmentation: SegmentationApplicationService
}
declare module 'vue/types/vue' {
interface Vue {
readonly $services: Services
}
}
const plugin: Plugin = (_, inject) => {
const services: Services = {
categoryType: new LabelApplicationService(repositories.categoryType),
spanType: new LabelApplicationService(repositories.spanType),
relationType: new LabelApplicationService(repositories.relationType),
member: new MemberApplicationService(repositories.member),
user: new UserApplicationService(repositories.user),
role: new RoleApplicationService(repositories.role),
project: new ProjectApplicationService(repositories.project),
comment: new CommentApplicationService(repositories.comment),
metrics: new MetricsApplicationService(repositories.metrics),
example: new ExampleApplicationService(repositories.example),
textClassification: new TextClassificationService(repositories.category),
sequenceLabeling: new SequenceLabelingApplicationService(
repositories.span,
repositories.relation
),
seq2seq: new Seq2seqApplicationService(repositories.textLabel),
option: new OptionApplicationService(repositories.option),
config: new ConfigApplicationService(repositories.config),
template: new TemplateApplicationService(repositories.template),
auth: new AuthApplicationService(repositories.auth),
catalog: new CatalogApplicationService(repositories.catalog),
parse: new ParseApplicationService(repositories.parse),
taskStatus: new TaskStatusApplicationService(repositories.taskStatus),
downloadFormat: new DownloadFormatApplicationService(repositories.downloadFormat),
download: new DownloadApplicationService(repositories.download),
tag: new TagApplicationService(repositories.tag),
bbox: new BoundingBoxApplicationService(repositories.boundingBox),
segmentation: new SegmentationApplicationService(repositories.segmentation)
}
inject('services', services)
}
export default plugin