refactor: enforce enum machine codes
Backend security / security (push) Successful in 8s
Backend security / security (pull_request) Canceled after 0s
Backend verify / verify (push) Canceled after 9s
Backend verify / verify (pull_request) Canceled after 4s
Conventional commits / commits (pull_request) Successful in 31s
Backend security / security (push) Successful in 8s
Backend security / security (pull_request) Canceled after 0s
Backend verify / verify (push) Canceled after 9s
Backend verify / verify (pull_request) Canceled after 4s
Conventional commits / commits (pull_request) Successful in 31s
Use owner enums for error and T-Bank protocol values with ESLint regression checks. Preserve open wire fallbacks and keep protocol imports independent of DI and Prisma. Verified npm ci, verify, 226 unit tests, 262 isolated e2e tests and unchanged OpenAPI.
This commit is contained in:
+10
-4
@@ -160,10 +160,11 @@ HTTP/e2e naming и расположение — в [Testing](conventions/testing
|
||||
|
||||
`*.module.ts` задаёт DI boundary; `*.api.ts` перечисляет используемые другими
|
||||
модулями providers, функции и типы. Внешний production import идёт через этот
|
||||
API или файл Nest module. Чистые `integrations/tbank/decimal.ts` и
|
||||
API или файл Nest module. Чистые `integrations/tbank/decimal.ts`,
|
||||
`integrations/tbank/tbank-protocol.ts`, `integrations/tbank/tbank-error-code.ts` и
|
||||
`modules/investments/operations/domain/operations-sync-plan.ts` — отдельные
|
||||
публичные входы для protobuf conversion и interval rules: импорт расчётов
|
||||
не загружает DI/Prisma.
|
||||
публичные входы для protobuf conversion, protocol/error vocabulary и interval
|
||||
rules: импорт этих значений и расчётов не загружает DI/Prisma.
|
||||
Внутри модуля используй прямые локальные импорты.
|
||||
Tests могут импортировать внутренний owner для проверки поведения и mocks.
|
||||
Новый export требует текущего потребителя; controller и persistence остаются
|
||||
@@ -251,7 +252,12 @@ OpenAPI enum metadata и runtime validation должны читать тот ж
|
||||
Исключения для индексов, default values, enum/type declarations и readonly
|
||||
properties заданы в ESLint config. Test fixtures/expected values остаются inline,
|
||||
остальные lint правила продолжают действовать. Numeric policy получает предметное имя и единицы;
|
||||
semantic magic strings проверяются conventions/review без нового инструмента.
|
||||
Machine codes и protocol values задаются строковыми enum у владельца.
|
||||
`no-restricted-syntax` запрещает inline-коды и значения известных protocol families
|
||||
в production TS; `no-unsafe-enum-comparison` проверяет сравнения enum.
|
||||
Внешние открытые строки проверяются на boundary без cast и без потери unknown fallback.
|
||||
Tests сохраняют независимые literal wire assertions; обычный текст и env keys
|
||||
не считаются кодами. Новые словари требуют проверки владельца и расширения selectors.
|
||||
|
||||
## Logging
|
||||
|
||||
|
||||
Reference in New Issue
Block a user