@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
TypeScript
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 {};