Заведи каркас пакета и утилитный слой MCP-сервера
package.json, tsconfig, eslint, генерация типов из OpenAPI-спеки, модули config/redact/errors/money/sanitize/cache с тестами и обезличенные фикстуры живых ответов API openrusrouter.ru. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
29 files changed
+11350
No files matched your search
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env node
|
||||
// Генерирует типы TypeScript из публичной OpenAPI-спеки openrusrouter.ru.
|
||||
// Источник переопределяется переменной SPEC_URL (например, локальный стенд).
|
||||
// Результат коммитится: сборка пакета не должна зависеть от сети.
|
||||
import { mkdirSync, writeFileSync } from "node:fs";
|
||||
import { dirname, resolve } from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import openapiTS, { astToString } from "openapi-typescript";
|
||||
|
||||
const DEFAULT_SPEC_URL = "https://openrusrouter.ru/docs/spec.json";
|
||||
const specUrl = new URL(process.env.SPEC_URL || DEFAULT_SPEC_URL);
|
||||
if (specUrl.protocol !== "https:" && specUrl.protocol !== "file:" &&
|
||||
!(specUrl.protocol === "http:" && ["localhost", "127.0.0.1", "[::1]"].includes(specUrl.hostname))) {
|
||||
console.error(`gen-types: недопустимый SPEC_URL (${specUrl.protocol}//${specUrl.host}) — нужен https или http://localhost`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const out = resolve(root, "src/generated/openapi.d.ts");
|
||||
|
||||
const ast = await openapiTS(specUrl);
|
||||
const header =
|
||||
"/**\n" +
|
||||
" * Сгенерировано scripts/gen-types.mjs из OpenAPI-спеки openrusrouter.ru — не править руками.\n" +
|
||||
" * Внимание: спека расходится с реальными ответами в части полей (см. test/fixtures);\n" +
|
||||
" * источник правды о форме ответа — фикстуры живых ответов, а не эти типы.\n" +
|
||||
" */\n";
|
||||
mkdirSync(dirname(out), { recursive: true });
|
||||
writeFileSync(out, header + astToString(ast));
|
||||
console.error(`gen-types: записано ${out}`);
|
||||
Reference in new issue
Block a user