# deepl/deepl-node architecture

> Architecture diagram of the GitHub repository deepl/deepl-node, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/deepl/deepl-node
- Repository: https://github.com/deepl/deepl-node

## Overview

deepl-node is an official Node.js client for the DeepL API. An application constructs a client with an authentication key, then uses it to submit text or documents for translation and receive parsed results. The SDK also exposes language and usage queries, glossary management, and newer style-rule and translation-memory features. The main runtime layers are the public client/operation classes, HTTP transport, and response parsing. Advanced resource methods and document-minification internals are only partly evidenced by the sampled source, so uncertain internal links are omitted.

Main entry points: [`src/translator.ts`](https://github.com/deepl/deepl-node/blob/main/src/translator.ts) (Translator), [`src/deeplClient.ts`](https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts) (DeepLClient), [`src/client.ts`](https://github.com/deepl/deepl-node/blob/main/src/client.ts) (HTTP client), [`src/documentMinifier.ts`](https://github.com/deepl/deepl-node/blob/main/src/documentMinifier.ts) (Document minifier)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Client and translation"]
  node_deeplclient["DeepLClient<br/>[deeplClient.ts]"]
  node_translator["Translator<br/>[translator.ts]"]
  node_text["Text translation<br/>[translator.ts]"]
  node_documents["Document translation<br/>[translator.ts]"]
  node_languages["Languages and usage<br/>[translator.ts]"]
end

subgraph group_transport["API transport"]
  node_http["HTTP client<br/>[client.ts]"]
end

subgraph group_resources["Translation resources"]
  node_glossary["Glossaries<br/>[deeplClient.ts]"]
  node_glossaryentries["Glossary entries<br/>[glossaryEntries.ts]"]
  node_style["Style rules<br/>[deeplClient.ts]"]
  node_memory["Translation memories<br/>[deeplClient.ts]"]
  node_minifier["Document minifier"]
end

subgraph group_internals["Shared internals"]
  node_responseparse["Response parsing<br/>[parsing.ts]"]
  node_errors["API errors<br/>[errors.ts]"]
  node_filesystem["Filesystem helper<br/>[fsHelper.ts]"]
  node_utils["Shared utilities<br/>[utils.ts]"]
end

node_app(("Application"))
node_deeplapi(("DeepL API"))

node_app -->|"constructs and calls"| node_deeplclient
node_deeplclient -->|"inherits operations"| node_translator
node_app -->|"constructs and calls"| node_translator
node_translator -->|"offers"| node_text
node_translator -->|"offers"| node_documents
node_translator -->|"offers"| node_languages
node_translator -->|"sends requests"| node_http
node_deeplclient -->|"sends requests"| node_http
node_http -->|"sends HTTP"| node_deeplapi
node_translator -->|"parses responses"| node_responseparse
node_deeplclient -->|"parses responses"| node_responseparse
node_translator -->|"raises"| node_errors
node_deeplclient -->|"raises"| node_errors
node_translator -->|"serializes entries"| node_glossaryentries
node_translator -->|"manages glossaries"| node_glossary
node_deeplclient -->|"manages glossaries"| node_glossary
node_deeplclient -->|"manages rules"| node_style
node_deeplclient -->|"manages memories"| node_memory
node_documents -.->|"optional preprocessing"| node_minifier
node_minifier -->|"uses file operations"| node_filesystem
node_http -->|"uses logging and timeout"| node_utils
node_translator -->|"uses language and stream helpers"| node_utils

click node_deeplclient "https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts"
click node_translator "https://github.com/deepl/deepl-node/blob/main/src/translator.ts"
click node_text "https://github.com/deepl/deepl-node/blob/main/src/translator.ts"
click node_documents "https://github.com/deepl/deepl-node/blob/main/src/translator.ts"
click node_languages "https://github.com/deepl/deepl-node/blob/main/src/translator.ts"
click node_http "https://github.com/deepl/deepl-node/blob/main/src/client.ts"
click node_responseparse "https://github.com/deepl/deepl-node/blob/main/src/parsing.ts"
click node_errors "https://github.com/deepl/deepl-node/blob/main/src/errors.ts"
click node_glossary "https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts"
click node_glossaryentries "https://github.com/deepl/deepl-node/blob/main/src/glossaryEntries.ts"
click node_style "https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts"
click node_memory "https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts"
click node_minifier "https://github.com/deepl/deepl-node/blob/main/src/documentMinifier.ts"
click node_filesystem "https://github.com/deepl/deepl-node/blob/main/src/fsHelper.ts"
click node_utils "https://github.com/deepl/deepl-node/blob/main/src/utils.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_deeplclient,node_translator,node_text,node_documents,node_languages toneBlue
class node_http toneAmber
class node_glossary,node_glossaryentries,node_style,node_memory,node_minifier,node_deeplapi toneMint
class node_responseparse,node_errors,node_filesystem,node_utils toneRose
class node_app toneIndigo
```

## Components

### Client and translation

- [DeepLClient](https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts): `src/deeplClient.ts`
- [Translator](https://github.com/deepl/deepl-node/blob/main/src/translator.ts): `src/translator.ts`
- [Text translation](https://github.com/deepl/deepl-node/blob/main/src/translator.ts): `src/translator.ts`
- [Document translation](https://github.com/deepl/deepl-node/blob/main/src/translator.ts): `src/translator.ts`
- [Languages and usage](https://github.com/deepl/deepl-node/blob/main/src/translator.ts): `src/translator.ts`

### API transport

- [HTTP client](https://github.com/deepl/deepl-node/blob/main/src/client.ts): `src/client.ts`

### Translation resources

- [Glossaries](https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts): `src/deeplClient.ts`
- [Glossary entries](https://github.com/deepl/deepl-node/blob/main/src/glossaryEntries.ts): `src/glossaryEntries.ts`
- [Style rules](https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts): `src/deeplClient.ts`
- [Translation memories](https://github.com/deepl/deepl-node/blob/main/src/deeplClient.ts): `src/deeplClient.ts`
- [Document minifier](https://github.com/deepl/deepl-node/blob/main/src/documentMinifier.ts): `src/documentMinifier.ts`

### Shared internals

- [Response parsing](https://github.com/deepl/deepl-node/blob/main/src/parsing.ts): `src/parsing.ts`
- [API errors](https://github.com/deepl/deepl-node/blob/main/src/errors.ts): `src/errors.ts`
- [Filesystem helper](https://github.com/deepl/deepl-node/blob/main/src/fsHelper.ts): `src/fsHelper.ts`
- [Shared utilities](https://github.com/deepl/deepl-node/blob/main/src/utils.ts): `src/utils.ts`

### Other components

- **Application**
- **DeepL API**

## Connections

- Application → DeepLClient: constructs and calls
- DeepLClient → Translator: inherits operations
- Application → Translator: constructs and calls
- Translator → Text translation: offers
- Translator → Document translation: offers
- Translator → Languages and usage: offers
- Translator → HTTP client: sends requests
- DeepLClient → HTTP client: sends requests
- HTTP client → DeepL API: sends HTTP
- Translator → Response parsing: parses responses
- DeepLClient → Response parsing: parses responses
- Translator → API errors: raises
- DeepLClient → API errors: raises
- Translator → Glossary entries: serializes entries
- Translator → Glossaries: manages glossaries
- DeepLClient → Glossaries: manages glossaries
- DeepLClient → Style rules: manages rules
- DeepLClient → Translation memories: manages memories
- Document translation → Document minifier: optional preprocessing
- Document minifier → Filesystem helper: uses file operations
- HTTP client → Shared utilities: uses logging and timeout
- Translator → Shared utilities: uses language and stream helpers
