UNPKG

@crowdin/crowdin-apps-functions

Version:

Utility library to easily and quickly develop Crowdin App

186 lines (185 loc) 7.27 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; } /** * * @param client crowdin client instance * @param projectId crowdin project id * @param name file name * @param title file title * @param type file type * @param directoryId directory id * @param data file data * @param file file object * @param excludedTargetLanguages languages to be excluded from translation * @returns id of newly created or existing file id */ export declare function updateOrCreateFile(client: Crowdin, projectId: number, name: string, title: string, type: SourceFilesModel.FileType, directoryId: number, data: any, file?: SourceFilesModel.File, excludedTargetLanguages?: string[]): Promise<number>; export declare function updateOrCreateFile(args: UpdateOrCreateFileArgs): Promise<number>; interface GetFolderArgs { directories: SourceFilesModel.Directory[]; client: Crowdin; projectId: number; directoryName: string; parentDirectory?: SourceFilesModel.Directory; } /** * * @param directories all directories * @param crowdinClient crowdin client instance * @param projectId project id * @param directoryName directory name to find * @param parentDirectory parent directory * @returns found folder (or undefined in case if directory for given name does not exists) and files under it */ export declare function getFolder(directories: SourceFilesModel.Directory[], crowdinClient: Crowdin, projectId: number, directoryName: string, parentDirectory?: SourceFilesModel.Directory): Promise<{ folder?: SourceFilesModel.Directory; files: SourceFilesModel.File[]; }>; export declare function getFolder(args: GetFolderArgs): Promise<{ folder?: SourceFilesModel.Directory; files: SourceFilesModel.File[]; }>; /** * * @param directories all directories * @param crowdinClient crowdin client instance * @param projectId project id * @param directoryName directory name to find * @param parentDirectory parent directory * @returns found or created folder and files under it */ export declare function getOrCreateFolder(directories: SourceFilesModel.Directory[], crowdinClient: Crowdin, projectId: number, directoryName: string, parentDirectory?: SourceFilesModel.Directory): Promise<{ folder: SourceFilesModel.Directory; files: SourceFilesModel.File[]; created: boolean; }>; export declare function getOrCreateFolder(args: GetFolderArgs): 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'>; } /** * * @param crowdinClient crowdin client instance * @param projectId project id * @param fileId file id * @param language language id * @param fileName file name for upload storage request * @param fileContent file content * @param request extra request fields for upload translation request * @returns upload translation response */ export declare function uploadTranslations(crowdinClient: Crowdin, projectId: number, fileId: number, language: string, fileName: string, fileContent: any, request?: Omit<TranslationsModel.UploadTranslationRequest, 'fileId' | 'storageId'>): Promise<TranslationsModel.UploadTranslationResponse>; export declare function uploadTranslations(args: UploadTranslationsArgs): Promise<TranslationsModel.UploadTranslationResponse>; interface UpdateSourceFilesArgs { client: Crowdin; projectId: number; directory: string; fileEntities: FileEntity[]; parentDirectory?: SourceFilesModel.Directory; } /** * * @param crowdinClient crowdin client instance * @param projectId project id * @param directory directory name where files are located * @param fileEntities files information * @param parentDirectory parent directory */ export declare function updateSourceFiles(crowdinClient: Crowdin, projectId: number, directory: string, fileEntities: FileEntity[], parentDirectory?: SourceFilesModel.Directory): Promise<void>; 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>; } /** * * @param crowdinClient crowdin client instance * @param projectId projecy id * @param directory directory name where source files are located * @param request request if file files and languages info * @param handleFn function that will be invoked for each translation file * @param parentDirectory parent directory */ export declare function handleTranslations(crowdinClient: Crowdin, projectId: number, directory: string, request: TranslationsRequest, handleFn: (translations: any, language: string, file: SourceFilesModel.File) => Promise<void>, parentDirectory?: SourceFilesModel.Directory): 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; } /** * Function to update or create webhook * * @returns updated or created webhook id */ export declare function createOrUpdateWebhook(args: CreateOrUpdateWebhookArgs): Promise<number>; export declare class PaymentRequiredError extends Error { subscribeLink: string; initializedAt: string; constructor(subscribeLink: string, initializedAt: string); } /** * * @param param0.appIdentifier method request * @param param0.token bearer token * @param param0.organization crowdin organization */ 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>; export interface FileEntity { name: string; title: string; type: SourceFilesModel.FileType; data: any; } export interface TranslationsRequest { [fileId: string]: string[]; } export interface SubscriptionRequest { token: string; organization?: string; appIdentifier: string; baseUrl?: string; } export interface Subscription { expires: string; } export {};