<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Интеграция Temporal API, TypeDoc и Prettier для автоматизации docs в TS: гайд 2026]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/74/fe/8d/1774107747870-generated_1774107714261.webp" alt="Обложка: Как интегрировать Temporal API с TypeDoc и Prettier для автоматизированной документации дат в TypeScript-проектах: гайд 2026" class=" img-fluid img-markdown" /></p>
<p dir="auto">В TypeScript-проектах с Temporal API часто приходится документировать workflows, activities и датовые структуры. Ручная работа с docs отнимает часы, а код меняется - и всё устаревает. Этот гайд покажет, как связать <strong>Temporal</strong>, <strong>TypeDoc</strong> и <strong>Prettier</strong> в пайплайн для автогенерации чистой документации. Получится статический сайт с актуальными примерами, форматированный идеально.</p>
<p dir="auto">Такой подход экономит время: один npm-скрипт - и docs готовы к деплою. Подходит для пет-проектов или продакшена с worker’ами. Разберём установку, конфиг и автоматизацию шаг за шагом.</p>
<h2>Что такое Temporal API и зачем docs автоматизировать</h2>
<p dir="auto">Temporal - это платформа для оркестрации долгоживущих процессов в TS/Node.js. Workflows и activities там пишутся с датами, таймерами, ретраями - всё асинхронно и надёжно. Но без docs новички тонут в коде: как понять, какие даты передавать в activity или как сериализовать Date в workflow?</p>
<p dir="auto"><strong>TypeDoc</strong> парсит JSDoc-комменты и генерит HTML-сайт с типами, примерами. <strong>Prettier</strong> держит код и конфиги в одном стиле - никаких споров о кавычках или отступах. Вместе они решают проблему: код меняется - docs обновляются автоматически. Представь worker с background-check: даты проверок, статусы - всё документируется на лету. Логично перейти к настройке: сначала ставим пакеты, потом конфиги.</p>
<ul>
<li>Установи Temporal TS SDK: <code>npm i @temporalio/client @temporalio/worker</code></li>
<li>Добавь TypeDoc глобально или локально: <code>npm i -D typedoc</code></li>
<li>Prettier для форматирования: <code>npm i -D prettier</code></li>
<li>В <strong>tsconfig.json</strong> включи strict режим для точных типов дат.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Инструмент</th>
<th>Роль в пайплайне</th>
<th>Пример флаг</th>
</tr>
</thead>
<tbody>
<tr>
<td>Temporal</td>
<td>Workflows/Activities с датами</td>
<td><code>scheduleToCloseTimeout: '1d'</code></td>
</tr>
<tr>
<td>TypeDoc</td>
<td>Генерация HTML из JSDoc</td>
<td><code>--excludePrivate</code></td>
</tr>
<tr>
<td>Prettier</td>
<td>Форматирование .md и .json</td>
<td><code>semi: false</code></td>
</tr>
</tbody>
</table>
<h2>Настройка TypeDoc под Temporal workflows</h2>
<p dir="auto">TypeDoc сканнит TS-файлы, pulls JSDoc и строит дерево классов. Для Temporal фокусируйся на interfaces для дат: <code>interface CheckDate { start: Date; end: Date; }</code>. В комментах добавляй <code>@link</code> на Temporal типы - документация станет интерактивной.</p>
<p dir="auto">Пример workflow с датами: worker регистрирует activities, TypeDoc описывает каждый метод. Prettier форматирует JSDoc - отступы ровные, код в блоках. Без этого docs - каша. А с пайплайном: измени Date в коде - перегенерируй и готово. Теперь к шагам конфигурации.</p>
<ol>
<li>Создай <code>typedoc.json</code>:<pre><code class="language-json">{
  "entryPoints": ["src/workflows.ts"],
  "out": "docs",
  "readme": "README.md",
  "excludePrivate": true,
  "excludeExternals": true
}
</code></pre>
</li>
<li>В JSDoc для activity: <code>/** @param dates: Date[] Проверяет сроки workflow */</code></li>
<li><em>Нюанс</em>: Temporal даты сериализуются в ISO - укажи в docs <code>@returns string (ISO Date)</code>.</li>
<li>Запуск: <code>npx typedoc</code> - получишь сайт в <code>/docs</code>.</li>
</ol>
<p dir="auto"><strong>Сравнение до/после</strong>:</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Без автоматизации</th>
<th>С TypeDoc + Prettier</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ручные .md файлы</td>
<td>Авто-HTML с типами</td>
</tr>
<tr>
<td>Устаревшие даты</td>
<td>Связь с кодом</td>
</tr>
<tr>
<td>Разный стиль</td>
<td>Prettier-идеал</td>
</tr>
</tbody>
</table>
<h2>Интеграция Prettier в пайплайн документации</h2>
<p dir="auto">Prettier - must-have для TS-проектов с Temporal: форматирует не только код, но и .rc файлы, JSDoc. Без него конфиги TypeDoc - с разными отступами, а README с двойными кавычками. Добавь скрипт в package.json - и всё на автопилоте.</p>
<p dir="auto">В Temporal-приложениях activities часто имеют Date-параметры: Prettier сделает их читаемыми. Пример: в <code>workflows.ts</code> форматирует <code>new Date()</code> в аккуратный блок. Связь с TypeDoc: сначала prettier src/, потом typedoc. Это цепочка: чистый код -&gt; чистые docs. Разберём .prettierrc и npm-скрипты.</p>
<ul>
<li><code>.prettierrc</code> (в формате JS для комментариев):<pre><code class="language-js">module.exports = {
  semi: false,
  singleQuote: true,
  trailingComma: 'es5',
  printWidth: 80
};
</code></pre>
</li>
<li>Скрипт в package.json: <code>"docs": "prettier . &amp;&amp; typedoc"</code></li>
<li><em>Важно</em>: Исключи node_modules: <code>--ignore-path .prettierignore</code>.</li>
<li>Интегрируй с VSCode: extension auto-format on save.</li>
</ul>
<p dir="auto">Для Temporal добавь в .prettierignore: <code>dist/</code>, но держи <code>src/</code> под форматированием.</p>
<h2>Автоматизация всего пайплайна с датами в фокусе</h2>
<p dir="auto">Temporal workflows полны дат: retry dates, timeouts. Автоматизируй docs через GitHub Actions или локальный скрипт. TypeDoc увидит изменения в Date-типах, Prettier - отформатирует. Результат: деплоишь worker - docs обновлены.</p>
<p dir="auto">Пример worker кода с docs:</p>
<pre><code class="language-ts">import { Worker } from '@temporalio/worker';

/** 
 * Workflow с датами проверок.
 * @param startDate - начало периода
 */
export async function checkWorkflow(startDate: Date) { ... }
</code></pre>
<p dir="auto">Prettier сделает отступы, TypeDoc - с��раницу. Добавь husky для pre-commit: git commit -&gt; format -&gt; typedoc preview.</p>
<ol>
<li>Husky + lint-staged: <code>npm i -D husky lint-staged</code></li>
<li><code>.husky/pre-commit</code>: <code>npx lint-staged</code></li>
<li><code>lint-staged</code>: <code>{ '*.ts': 'prettier --write', '*.json': 'prettier --write' }</code></li>
<li>CI-скрипт: <code>npm run docs &amp;&amp; deploy-to-gh-pages</code>.</li>
<li><em>Фича для 2026</em>: Typedoc plugin для Temporal - auto-link workflows.</li>
</ol>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Шаг пайплайна</th>
<th>Команда</th>
<th>Вывод</th>
</tr>
</thead>
<tbody>
<tr>
<td>Format</td>
<td><code>npm run format</code></td>
<td>Чистый код</td>
</tr>
<tr>
<td>Docs gen</td>
<td><code>npx typedoc</code></td>
<td>HTML сайт</td>
</tr>
<tr>
<td>Deploy</td>
<td><code>gh-pages -d docs</code></td>
<td>Онлайн docs</td>
</tr>
</tbody>
</table>
<h2>Пайплайн готов - даты документированы на века</h2>
<p dir="auto">Temporal + TypeDoc + Prettier дают docs, которые живут с кодом: измени Date в activity - сайт обновится. Осталось доработать: custom themes для TypeDoc под бренд, или интеграция с Temporal UI для live-примеров.</p>
<p dir="auto">В 2026 такие пайплайны - стандарт для TS-команд. Подумай о тестах: snapshot docs после каждого билда. Или ML-промпт для auto-JSDoc - но это уже следующий уровень.</p>
]]></description><link>https://forum.exlends.ru/topic/1815/integraciya-temporal-api-typedoc-i-prettier-dlya-avtomatizacii-docs-v-ts-gajd-2026</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 03:06:11 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/1815.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Mar 2026 15:42:28 GMT</pubDate><ttl>60</ttl></channel></rss>