UNPKG

@crowdin/app-project-module

Version:

Module that generates for you all common endpoints for serving standalone Crowdin App

58 lines (57 loc) 1.8 kB
import { CrowdinContextInfo, Environments, ModuleKey, UiModule } from '../../types'; import Crowdin, { SourceFilesModel, ProjectsGroupsModel, LanguagesModel, SourceStringsModel, StringTranslationsModel } from '@crowdin/crowdin-api-client'; export interface ExternalQaCheckModule extends Environments, ModuleKey { /** * module description */ description?: string; /** * module name */ name?: string; /** * jobs chunk size */ batchSize?: number; validate: ({ client, file, project, sourceLanguage, strings, targetLanguage, translations, context, }: { client?: Crowdin; file?: SourceFilesModel.File; project?: ProjectsGroupsModel.Project; sourceLanguage: LanguagesModel.Language; strings: SourceStringsModel.String[]; targetLanguage: LanguagesModel.Language; translations: StringTranslationsModel.StringTranslation[]; context: CrowdinContextInfo; }) => Promise<ExternalQaCheckResponse>; /** * Settings UI module */ settingsUiModule?: UiModule; } export interface ExternalQaCheckRequest { file: SourceFilesModel.File; project: ProjectsGroupsModel.Project; sourceLanguage: LanguagesModel.Language; strings: SourceStringsModel.String[]; targetLanguage: LanguagesModel.Language; translations: StringTranslationsModel.StringTranslation[]; } interface SuggestedFix { indexStart: number; indexEnd: number; replacement: string; } interface ValidationError { message: string; suggestedFixes?: SuggestedFix[]; } interface Validation { translationId: number; passed: boolean; error?: ValidationError; } export interface ExternalQaCheckResponse { validations: Validation[]; error?: string; } export {};