deepl-node
Version:
deepl-node is the official DeepL Node.js client library
57 lines (56 loc) • 2.49 kB
JavaScript
;
// Copyright 2025 DeepL SE (https://www.deepl.com)
// Use of this source code is governed by an MIT
// license that can be found in the LICENSE file.
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeepLClient = exports.WritingTone = exports.WritingStyle = void 0;
const translator_1 = require("./translator");
const parsing_1 = require("./parsing");
const utils_1 = require("./utils");
var WritingStyle;
(function (WritingStyle) {
WritingStyle["ACADEMIC"] = "academic";
WritingStyle["BUSINESS"] = "business";
WritingStyle["CASUAL"] = "casual";
WritingStyle["DEFAULT"] = "default";
WritingStyle["PREFER_ACADEMIC"] = "prefer_academic";
WritingStyle["PREFER_BUSINESS"] = "prefer_business";
WritingStyle["PREFER_CASUAL"] = "prefer_casual";
WritingStyle["PREFER_SIMPLE"] = "prefer_simple";
WritingStyle["SIMPLE"] = "simple";
})(WritingStyle = exports.WritingStyle || (exports.WritingStyle = {}));
var WritingTone;
(function (WritingTone) {
WritingTone["CONFIDENT"] = "confident";
WritingTone["DEFAULT"] = "default";
WritingTone["DIPLOMATIC"] = "diplomatic";
WritingTone["ENTHUSIASTIC"] = "enthusiastic";
WritingTone["FRIENDLY"] = "friendly";
WritingTone["PREFER_CONFIDENT"] = "prefer_confident";
WritingTone["PREFER_DIPLOMATIC"] = "prefer_diplomatic";
WritingTone["PREFER_ENTHUSIASTIC"] = "prefer_enthusiastic";
WritingTone["PREFER_FRIENDLY"] = "prefer_friendly";
})(WritingTone = exports.WritingTone || (exports.WritingTone = {}));
class DeepLClient extends translator_1.Translator {
constructor(authKey, options = {}) {
super(authKey, options);
}
async rephraseText(texts, targetLang, writingStyle, tone) {
const data = new URLSearchParams();
if (targetLang) {
data.append('target_lang', targetLang);
}
if (writingStyle) {
data.append('writing_style', writingStyle);
}
if (tone) {
data.append('tone', tone);
}
const singular = (0, utils_1.appendTextsAndReturnIsSingular)(data, texts);
const { statusCode, content } = await this.httpClient.sendRequestWithBackoff('POST', '/v2/write/rephrase', { data });
await (0, translator_1.checkStatusCode)(statusCode, content);
const writeResults = (0, parsing_1.parseWriteResultArray)(content);
return (singular ? writeResults[0] : writeResults);
}
}
exports.DeepLClient = DeepLClient;