UNPKG

@crowdin/app-project-module

Version:

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

105 lines (104 loc) 3.52 kB
import Crowdin, { ReportsModel, SourceFilesModel, TranslationsModel, WebhooksModel } from '@crowdin/crowdin-api-client'; interface UpdateOrCreateFileArgs { client: Crowdin; projectId: number; name: string; title?: string; type?: SourceFilesModel.FileType; directoryId?: number; data: any; file?: SourceFilesModel.File; excludedTargetLanguages?: string[]; importOptions?: SourceFilesModel.ImportOptions; } export declare function updateOrCreateFile(options: UpdateOrCreateFileArgs): Promise<number>; interface GetFolderArgs { directories: SourceFilesModel.Directory[]; client: Crowdin; projectId: number; directoryName: string; parentDirectory?: SourceFilesModel.Directory; } export declare function getFolder(args: GetFolderArgs): Promise<{ folder?: SourceFilesModel.Directory; files: SourceFilesModel.File[]; }>; interface GetOrCreateFolderArgs { directories: SourceFilesModel.Directory[]; client: Crowdin; projectId: number; directoryName: string; parentDirectory?: SourceFilesModel.Directory; } export declare function getOrCreateFolder(args: GetOrCreateFolderArgs): Promise<{ folder: SourceFilesModel.Directory; files: SourceFilesModel.File[]; created: boolean; }>; interface UploadTranslationsArgs { client: Crowdin; projectId: number; fileId: number; language: string; fileName: string; fileContent: any; request?: Omit<TranslationsModel.UploadTranslationRequest, 'fileId' | 'storageId'>; } export declare function uploadTranslations(args: UploadTranslationsArgs): Promise<TranslationsModel.UploadTranslationResponse>; interface UpdateSourceFilesArgs { client: Crowdin; projectId: number; directory: string; fileEntities: FileEntity[]; parentDirectory?: SourceFilesModel.Directory; } export declare function updateSourceFiles(args: UpdateSourceFilesArgs): Promise<void>; interface HandleTranslationsArgs { client: Crowdin; projectId: number; directory: string; request: TranslationsRequest; parentDirectory?: SourceFilesModel.Directory; handleFn: (translations: any, language: string, file: SourceFilesModel.File) => Promise<void>; } export declare function handleTranslations(args: HandleTranslationsArgs): Promise<void>; interface CreateOrUpdateWebhookArgs { client: Crowdin; projectId: number; url: string; events: WebhooksModel.Event[]; payload: any; name: string; requestType?: WebhooksModel.RequestType; batchingEnabled?: boolean; headers?: Record<string, string>; contentType?: WebhooksModel.ContentType; webhookId?: number; webhookMatch?: (webhook: WebhooksModel.Webhook) => boolean; } export declare function createOrUpdateWebhook(args: CreateOrUpdateWebhookArgs): Promise<number>; export declare function getSubscription({ appIdentifier, token, organization, baseUrl, }: SubscriptionRequest): Promise<Subscription>; export declare function generateReport({ client, projectId, request, }: { client: Crowdin; projectId: number; request: ReportsModel.GenerateReportRequest; }): Promise<any | undefined>; interface FileEntity { name: string; title: string; type: SourceFilesModel.FileType; data: any; } interface TranslationsRequest { [fileId: string]: string[]; } interface SubscriptionRequest { token: string; organization?: string; appIdentifier: string; baseUrl?: string; } interface Subscription { expires: string; } export {};