---
type: JS Module
title: main.mjs
resource: npm/rules/hasura/internal_urls/main.mjs
docgen:
  crc: 7b27e379
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  score: 100
  issues: judge:inaccurate:0.98
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

Файл перевіряє конфігураційні файли `.env` у репозиторіях, що належать до екосистем https://github.com/nitra/ або https://github.com/abinbevefes/. Код спирається на конфігурацію, визначену у package.json. Його функція — валідувати відповідність конфігурацій, зокрема, через перевірку внутрішнього Hasura-ендпоінта (parseInternalHasuraEndpoint), щоб забезпечити коректну роботу системи. Звернення до мережі здійснюється для збору необхідної інформації, але всі операції обробляються з механізмами fail-safe, не викидаючи винятків. Для певних помилок функція повертає порожнє значення (наприклад, null) замість винятку, що регулюється у повідомленнях у (hasura.mdc).

## Поведінка

Поведінка
parseInternalHasuraEndpoint розбирає рядок, щоб визначити внутрішній кластерний URL для Hasura, повертаючи сегменти або провалення, якщо формат некоректний.
isEnvFile визначає, чи є заданий відносний шлях до файлу `.env`, що підлягає перевірці, виключаючи локальні файли розробника.
isNitraOrAbieRepository перевіряє, чи вказує URL репозиторію на проєкти від https://github.com/nitra/ або https://github.com/abinbevefes/ (це стосується конфігів, як package.json).
main виконує повну перевірку файлів `.env` у репозиторії, порівнюючи конфігурації з внутрішніми YAML-документами, якщо репозиторій належить до https://github.com/nitra/ або https://github.com/abinbevefes/, і повідомляє про порушення відповідно до (hasura.mdc).

## Публічний API

- parseInternalHasuraEndpoint — Визначає, чи відповідний рядок формі внутрішнього URL для кластера: дозволяє лише `http://` та домен `*.internal` (наприклад, `abie-ua.internal`), повертаючи розбиті сегменти чи помилку.
- isEnvFile — Визначає, чи вказаний шлях до файлу відповідає імені `.env`, що є винятком з правил `hasura.mdc`.
- isNitraOrAbieRepository — Визначає, чи вказаний URL репозиторію належить до проектів nitra чи abie, згідно з маркерами `hasura.mdc`.
- main — Аналізує файл `hasura.mdc` для поточної директорії.

## Гарантії поведінки

- Read-only: не виконує операцій запису (ФС/БД).
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
- За певних помилок повертає порожнє значення (напр. `null`) замість винятку.
