@lokalise/node-api
Version:
Official Lokalise API 2.0 Node.js client
88 lines (76 loc) • 2.1 kB
text/typescript
import type { BulkResult } from "../interfaces/bulk_result.js";
import type { PaginatedResult } from "../interfaces/paginated_result.js";
import { Language } from "../models/language.js";
import type {
PaginationParams,
ProjectOnly,
ProjectWithPagination,
} from "../types/common_get_params.js";
import type {
CreateLanguageParams,
LanguageDeleted,
UpdateLanguageParams,
} from "../types/languages.js";
import { BaseCollection } from "./base_collection.js";
export class Languages extends BaseCollection<Language> {
protected static override prefixURI =
"projects/{!:project_id}/languages/{:id}";
protected get elementClass(): new (
json: Record<string, unknown>,
) => Language {
return Language;
}
protected override get rootElementName(): string {
return "languages";
}
protected override get rootElementNameSingular(): string | null {
return "language";
}
system_languages(
params: PaginationParams = {},
): Promise<PaginatedResult<Language>> {
return this.createPromise(
"GET",
params,
this.populateArrayFromJson,
null,
"system/languages",
) as Promise<PaginatedResult<Language>>;
}
list(
request_params: ProjectWithPagination,
): Promise<PaginatedResult<Language>> {
return this.doList(request_params) as Promise<PaginatedResult<Language>>;
}
create(
raw_body: CreateLanguageParams | CreateLanguageParams[],
request_params: ProjectOnly,
): Promise<BulkResult<Language>> {
const body = { languages: this.objToArray(raw_body) };
return this.createPromise(
"POST",
request_params,
this.populateArrayFromJsonBulk,
body,
);
}
get(
lang_id: string | number,
request_params: ProjectOnly,
): Promise<Language> {
return this.doGet(lang_id, request_params);
}
update(
lang_id: string | number,
lang_params: UpdateLanguageParams,
request_params: ProjectOnly,
): Promise<Language> {
return this.doUpdate(lang_id, lang_params, request_params);
}
delete(
lang_id: string | number,
request_params: ProjectOnly,
): Promise<LanguageDeleted> {
return super.doDelete(lang_id, request_params);
}
}