anl 26.107.0 → 26.107.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ru.md CHANGED
@@ -106,7 +106,7 @@ $ anl type
106
106
  "saveApiListFolderPath": "apps/api/",
107
107
  "saveEnumFolderPath": "apps/enums",
108
108
  "importEnumPath": "../../enums",
109
- "swaggerServers": {
109
+ "swaggerConfig": {
110
110
  "url": "https://generator3.swagger.io/openapi2.json",
111
111
  "apiListFileName": "index.ts",
112
112
  "publicPrefix": "api",
@@ -160,7 +160,7 @@ $ anl type
160
160
  "varnames": "enum-varnames",
161
161
  "comment": "enum-descriptions"
162
162
  },
163
- "swaggerServers": [
163
+ "swaggerConfig": [
164
164
  {
165
165
  "url": "https://generator3.swagger.io/openapi1.json",
166
166
  "apiListFileName": "op.ts",
@@ -178,39 +178,39 @@ $ anl type
178
178
 
179
179
  #### Описание элементов конфигурации
180
180
 
181
- | Элемент конфигурации | Тип | Обязательный | Описание |
182
- | -------------------------------------------- | ------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
183
- | saveTypeFolderPath | string | Да | Путь сохранения файлов определений типов |
184
- | saveApiListFolderPath | string | Да | Путь сохранения файлов функций API-запросов |
185
- | saveEnumFolderPath | string | Да | Путь сохранения файлов данных enum |
186
- | importEnumPath | string | Да | Путь импорта enum (путь ссылки на файлы enum в apps/types/models/\*.ts) |
187
- | swaggerJsonUrl | string | Нет | Адрес документа Swagger JSON (мигрировано в `swaggerServers`, сохранено для обратной совместимости) **Это поле будет удалено в будущих версиях** |
188
- | swaggerServers | object \| Array<object> | Нет | Конфигурация Swagger сервера. Один сервер может быть объектом, несколько серверов используют массив. Каждый сервер может настроить `url`, `publicPrefix`, `pathPrefix`, `apiListFileName`, `headers`, `dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`<br />См. примеры конфигурации одного и нескольких Swagger серверов выше |
189
- | swaggerServers[].url | string | Да | Адрес документа Swagger JSON |
190
- | swaggerServers[].publicPrefix | string | Нет | Общий префикс на url path, например: api/users、api/users/{id} ,api является общим префиксом |
191
- | swaggerServers[].apiListFileName | string | Нет | Имя файла списка API, по умолчанию `index.ts`. При использовании нескольких серверов имя файла каждого сервера должно быть уникальным |
192
- | swaggerServers[].headers | object | Нет | Конфигурация заголовков запроса для этого сервера |
193
- | swaggerServers[].pathPrefix | string | Нет | Префикс пути запроса (может пониматься как имя модуля), автоматически добавляется к каждому пути API-запроса.<br />Например: при `pathPrefix: "/forward"`<br />`/publicPrefix/pathPrefix/user` становится `/api/forward/user` |
194
- | swaggerServers[].dataLevel | 'data' \| 'serve' \| 'axios' | Нет | Уровень данных возврата интерфейса для этого сервера. Если не установлено, используется глобальная конфигурация `dataLevel` |
195
- | swaggerServers[].parameterSeparator | '$' \| '\_' | Нет | Разделитель, используемый при генерации имен API и имен типов для этого сервера. Если не установлено, используется глобальная конфигурация `parameterSeparator` |
196
- | swaggerServers[].includeInterface | Array<{path: string, method: string}> | Нет | Список интерфейсов для включения для этого сервера. Если не установлено, используется глобальная конфигурация `includeInterface` |
197
- | swaggerServers[].excludeInterface | Array<{path: string, method: string}> | Нет | Список интерфейсов для исключения для этого сервера. Если не установлено, используется глобальная конфигурация `excludeInterface` |
198
- | requestMethodsImportPath | string | Да | Путь импорта методов запросов |
199
- | dataLevel | 'data' \| 'serve' \| 'axios' | Нет | Глобальная конфигурация уровня данных возврата интерфейса, по умолчанию: `'serve'`. Каждый сервер может переопределить индивидуально |
200
- | formatting | object | Нет | Конфигурация форматирования кода |
201
- | formatting.indentation | string | Нет | Символ отступа кода, например: `"\t"` или `" "` (два пробела) |
202
- | formatting.lineEnding | string | Нет | Разрыв строки, например: `"\n"` (LF) или `"\r\n"` (CRLF) |
203
- | headers | object | Нет | Конфигурация заголовков запроса (мигрировано в `swaggerServers`, сохранено для обратной совместимости) |
204
- | includeInterface | Array<{path: string, method: string}> | Нет | Глобальные включаемые интерфейсы: файл списка интерфейсов, указанный `saveApiListFolderPath`, будет включать только интерфейсы из списка, взаимоисключающий с полем `excludeInterface`. Каждый сервер может переопределить индивидуально |
205
- | excludeInterface | Array<{path: string, method: string}> | Нет | Глобальные исключаемые интерфейсы: файл списка интерфейсов, указанный `saveApiListFolderPath`, не будет содержать интерфейсы из этого списка, взаимоисключающий с `includeInterface`. Каждый сервер может переопределить индивидуально |
206
- | publicPrefix | string | Нет | Глобальный общий префикс на url path (мигрировано в `swaggerServers`, сохранено для обратной совместимости) |
207
- | pathPrefix | string | Нет | Глобальный префикс пути запроса (каждый сервер может переопределить индивидуально) |
208
- | apiListFileName | string | Нет | Глобальное имя файла списка API, по умолчанию `index.ts` (мигрировано в `swaggerServers`, сохранено для обратной совместимости) |
209
- | enmuConfig | object | Да | Объект конфигурации enum |
210
- | enmuConfig.erasableSyntaxOnly | boolean | Да | Соответствует опции `compilerOptions.erasableSyntaxOnly` в tsconfig.json. При значении `true` генерируется const объект вместо enum (только типовый синтаксис). Значение по умолчанию: `false` |
211
- | enmuConfig.varnames | string | Нет | Имя поля схемы Swagger для пользовательских имен элементов enum. Значение по умолчанию: `enum-varnames`. |
212
- | enmuConfig.comment | string | Нет | Имя поля схемы Swagger для описаний элементов enum (используется для генерации комментариев). Значение по умолчанию: `enum-descriptions`. |
213
- | parameterSeparator | '$' \| '\_' | Нет | Глобальный разделитель между сегментами пути и параметрами при генерации имен API и имен типов. Например, `/users/{userId}/posts` с разделителем `'_'` генерирует `users_userId_posts_GET`. Значение по умолчанию: `'_'`. Каждый сервер может переопределить индивидуально |
181
+ | Элемент конфигурации | Тип | Обязательный | Описание |
182
+ | ---------------------------------- | ------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
183
+ | saveTypeFolderPath | string | Да | Путь сохранения файлов определений типов |
184
+ | saveApiListFolderPath | string | Да | Путь сохранения файлов функций API-запросов |
185
+ | saveEnumFolderPath | string | Да | Путь сохранения файлов данных enum |
186
+ | importEnumPath | string | Да | Путь импорта enum (путь ссылки на файлы enum в apps/types/models/\*.ts) |
187
+ | swaggerJsonUrl | string | Нет | Адрес документа Swagger JSON (мигрировано в `swaggerConfig`, сохранено для обратной совместимости) **Это поле будет удалено в будущих версиях** |
188
+ | swaggerConfig | object \| Array<object> | Нет | Конфигурация Swagger сервера. Один сервер может быть объектом, несколько серверов используют массив. Каждый сервер может настроить `url`, `publicPrefix`, `modulePrefix`, `apiListFileName`, `headers`, `dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`<br />См. примеры конфигурации одного и нескольких Swagger серверов выше |
189
+ | swaggerConfig[].url | string | Да | Адрес документа Swagger JSON |
190
+ | swaggerConfig[].publicPrefix | string | Нет | Общий префикс на url path, например: api/users、api/users/{id} ,api является общим префиксом |
191
+ | swaggerConfig[].apiListFileName | string | Нет | Имя файла списка API, по умолчанию `index.ts`. При использовании нескольких серверов имя файла каждого сервера должно быть уникальным |
192
+ | swaggerConfig[].headers | object | Нет | Конфигурация заголовков запроса для этого сервера |
193
+ | swaggerConfig[].modulePrefix | string | Нет | Префикс пути запроса (может пониматься как имя модуля), автоматически добавляется к каждому пути API-запроса.<br />Например: при `modulePrefix: "/forward"`<br />`/publicPrefix/modulePrefix/user` становится `/api/forward/user` |
194
+ | swaggerConfig[].dataLevel | 'data' \| 'serve' \| 'axios' | Нет | Уровень данных возврата интерфейса для этого сервера. Если не установлено, используется глобальная конфигурация `dataLevel` |
195
+ | swaggerConfig[].parameterSeparator | '$' \| '\_' | Нет | Разделитель, используемый при генерации имен API и имен типов для этого сервера. Если не установлено, используется глобальная конфигурация `parameterSeparator` |
196
+ | swaggerConfig[].includeInterface | Array<{path: string, method: string}> | Нет | Список интерфейсов для включения для этого сервера. Если не установлено, используется глобальная конфигурация `includeInterface` |
197
+ | swaggerConfig[].excludeInterface | Array<{path: string, method: string}> | Нет | Список интерфейсов для исключения для этого сервера. Если не установлено, используется глобальная конфигурация `excludeInterface` |
198
+ | requestMethodsImportPath | string | Да | Путь импорта методов запросов |
199
+ | dataLevel | 'data' \| 'serve' \| 'axios' | Нет | Глобальная конфигурация уровня данных возврата интерфейса, по умолчанию: `'serve'`. Каждый сервер может переопределить индивидуально |
200
+ | formatting | object | Нет | Конфигурация форматирования кода |
201
+ | formatting.indentation | string | Нет | Символ отступа кода, например: `"\t"` или `" "` (два пробела) |
202
+ | formatting.lineEnding | string | Нет | Разрыв строки, например: `"\n"` (LF) или `"\r\n"` (CRLF) |
203
+ | headers | object | Нет | Конфигурация заголовков запроса (мигрировано в `swaggerConfig`, сохранено для обратной совместимости) |
204
+ | includeInterface | Array<{path: string, method: string}> | Нет | Глобальные включаемые интерфейсы: файл списка интерфейсов, указанный `saveApiListFolderPath`, будет включать только интерфейсы из списка, взаимоисключающий с полем `excludeInterface`. Каждый сервер может переопределить индивидуально |
205
+ | excludeInterface | Array<{path: string, method: string}> | Нет | Глобальные исключаемые интерфейсы: файл списка интерфейсов, указанный `saveApiListFolderPath`, не будет содержать интерфейсы из этого списка, взаимоисключающий с `includeInterface`. Каждый сервер может переопределить индивидуально |
206
+ | publicPrefix | string | Нет | Глобальный общий префикс на url path (мигрировано в `swaggerConfig`, сохранено для обратной совместимости) |
207
+ | modulePrefix | string | Нет | Глобальный префикс пути запроса (каждый сервер может переопределить индивидуально) |
208
+ | apiListFileName | string | Нет | Глобальное имя файла списка API, по умолчанию `index.ts` (мигрировано в `swaggerConfig`, сохранено для обратной совместимости) |
209
+ | enmuConfig | object | Да | Объект конфигурации enum |
210
+ | enmuConfig.erasableSyntaxOnly | boolean | Да | Соответствует опции `compilerOptions.erasableSyntaxOnly` в tsconfig.json. При значении `true` генерируется const объект вместо enum (только типовый синтаксис). Значение по умолчанию: `false` |
211
+ | enmuConfig.varnames | string | Нет | Имя поля схемы Swagger для пользовательских имен элементов enum. Значение по умолчанию: `enum-varnames`. |
212
+ | enmuConfig.comment | string | Нет | Имя поля схемы Swagger для описаний элементов enum (используется для генерации комментариев). Значение по умолчанию: `enum-descriptions`. |
213
+ | parameterSeparator | '$' \| '\_' | Нет | Глобальный разделитель между сегментами пути и параметрами при генерации имен API и имен типов. Например, `/users/{userId}/posts` с разделителем `'_'` генерирует `users_userId_posts_GET`. Значение по умолчанию: `'_'`. Каждый сервер может переопределить индивидуально |
214
214
 
215
215
  #### Соответствие элементов конфигурации и генерируемых файлов
216
216
 
@@ -276,7 +276,7 @@ export const userDetailGet = (params: UserDetail_GET.Query) => GET<UserDetail_GE
276
276
  - `parameterSeparator`: Разделитель для имен API и имен типов
277
277
  - `includeInterface`: Список включаемых интерфейсов
278
278
  - `excludeInterface`: Список исключаемых интерфейсов
279
- - `pathPrefix`: Префикс пути запроса
279
+ - `modulePrefix`: Префикс пути запроса
280
280
  - `publicPrefix`: Общий префикс URL
281
281
  - `headers`: Конфигурация заголовков запроса
282
282
 
@@ -286,7 +286,7 @@ export const userDetailGet = (params: UserDetail_GET.Query) => GET<UserDetail_GE
286
286
  {
287
287
  "dataLevel": "serve",
288
288
  "parameterSeparator": "_",
289
- "swaggerServers": [
289
+ "swaggerConfig": [
290
290
  {
291
291
  "url": "http://api1.example.com/swagger.json",
292
292
  "dataLevel": "data",
@@ -385,7 +385,7 @@ interface User {
385
385
  ```json
386
386
  {
387
387
  "dataLevel": "serve",
388
- "swaggerServers": [
388
+ "swaggerConfig": [
389
389
  {
390
390
  "url": "http://api1.example.com/swagger.json",
391
391
  "dataLevel": "data"
@@ -481,8 +481,8 @@ export const uploadFile = (params: UploadFile.Body) =>
481
481
 
482
482
  Инструмент поддерживает конфигурацию нескольких Swagger серверов, каждый сервер может быть настроен независимо:
483
483
 
484
- - **Один сервер**: `swaggerServers` может быть напрямую заполнен объектом
485
- - **Несколько серверов**: `swaggerServers` использует формат массива, каждый сервер должен настроить уникальный `apiListFileName`
484
+ - **Один сервер**: `swaggerConfig` может быть напрямую заполнен объектом
485
+ - **Несколько серверов**: `swaggerConfig` использует формат массива, каждый сервер должен настроить уникальный `apiListFileName`
486
486
 
487
487
  **Как это работает:**
488
488
 
@@ -498,11 +498,11 @@ export const uploadFile = (params: UploadFile.Body) =>
498
498
  - `parameterSeparator` - Разделитель для имен API и имен типов
499
499
  - `includeInterface` - Список включаемых интерфейсов
500
500
  - `excludeInterface` - Список исключаемых интерфейсов
501
- - `pathPrefix` - Префикс пути запроса
501
+ - `modulePrefix` - Префикс пути запроса
502
502
 
503
- #### Префикс пути (pathPrefix)
503
+ #### Префикс пути (modulePrefix)
504
504
 
505
- `pathPrefix` используется для автоматического добавления префикса ко всем путям API-запросов, что особенно полезно в следующих сценариях:
505
+ `modulePrefix` используется для автоматического добавления префикса ко всем путям API-запросов, что особенно полезно в следующих сценариях:
506
506
 
507
507
  1. **Сценарии обратного прокси**: Когда серверные службы перенаправляются через обратный прокси
508
508
  2. **API-шлюз**: Единообразное добавление префикса шлюза к путям
@@ -512,10 +512,10 @@ export const uploadFile = (params: UploadFile.Body) =>
512
512
 
513
513
  ```json
514
514
  {
515
- "swaggerServers": [
515
+ "swaggerConfig": [
516
516
  {
517
517
  "url": "http://api.example.com/swagger.json",
518
- "pathPrefix": "/forward",
518
+ "modulePrefix": "/forward",
519
519
  "apiListFileName": "api.ts"
520
520
  }
521
521
  ]
@@ -533,18 +533,18 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
533
533
  **Отличие от publicPrefix:**
534
534
 
535
535
  - `publicPrefix`: Используется для удаления общего префикса из путей интерфейса (влияет только на сгенерированные имена функций)
536
- - `pathPrefix`: Используется для добавления префикса к фактическим путям запроса (влияет на URL-адреса запросов во время выполнения)
536
+ - `modulePrefix`: Используется для добавления префикса к фактическим путям запроса (влияет на URL-адреса запросов во время выполнения)
537
537
 
538
538
  **Пример конфигурации:**
539
539
 
540
540
  ```json
541
541
  {
542
- "swaggerServers": [
542
+ "swaggerConfig": [
543
543
  {
544
544
  "url": "http://api1.example.com/swagger.json",
545
545
  "apiListFileName": "api1.ts",
546
546
  "publicPrefix": "/api/v1",
547
- "pathPrefix": "/forward",
547
+ "modulePrefix": "/forward",
548
548
  "dataLevel": "serve",
549
549
  "parameterSeparator": "_",
550
550
  "headers": {
@@ -574,7 +574,7 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
574
574
 
575
575
  - Старая конфигурация (`swaggerJsonUrl`, `publicPrefix`, `headers`) все еще совместима
576
576
  - Инструмент автоматически обнаружит старую конфигурацию и предложит способы миграции
577
- - Рекомендуется мигрировать на новую конфигурацию `swaggerServers` для большей гибкости
577
+ - Рекомендуется мигрировать на новую конфигурацию `swaggerConfig` для большей гибкости
578
578
 
579
579
  #### Поддержка HTTP методов
580
580
 
@@ -599,7 +599,7 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
599
599
  4. Рекомендуется добавлять генерируемые файлы в систему контроля версий
600
600
  5. При использовании нескольких Swagger серверов убедитесь, что `apiListFileName` каждого сервера уникален, чтобы избежать перезаписи файлов
601
601
  6. При конфигурации нескольких серверов определения типов и enum будут объединены. Если разные серверы имеют типы с одинаковыми именами, могут возникнуть конфликты
602
- 7. Конфигурация уровня сервера (`dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`, `pathPrefix`) переопределит глобальную конфигурацию
602
+ 7. Конфигурация уровня сервера (`dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`, `modulePrefix`) переопределит глобальную конфигурацию
603
603
  8. `includeInterface` и `excludeInterface` нельзя настраивать одновременно. Если оба настроены, приоритет будет у `includeInterface`
604
604
 
605
605
  ### Часто задаваемые вопросы
@@ -613,15 +613,15 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
613
613
  - Проверьте, правильно ли настроен `requestMethodsImportPath`
614
614
  - Убедитесь, что файл методов запросов существует
615
615
 
616
- 3. **Когда использовать `pathPrefix`?**
616
+ 3. **Когда использовать `modulePrefix`?**
617
617
  - Когда ваши API необходимо получать через обратный прокси или шлюз
618
618
  - Например: Swagger определяет `/api/user`, но фактический запрос должен быть `/gateway/api/user`
619
- - Установите `pathPrefix: "/gateway"` для достижения этого
619
+ - Установите `modulePrefix: "/gateway"` для достижения этого
620
620
 
621
- 4. **В чем разница между `publicPrefix` и `pathPrefix`?**
621
+ 4. **В чем разница между `publicPrefix` и `modulePrefix`?**
622
622
  - `publicPrefix`: Удаляет префикс из путей интерфейса, влияет только на сгенерированные имена функций
623
623
  - Пример: `/api/user/list` после удаления `/api`, имя функции становится `userListGet`
624
- - `pathPrefix`: Добавляет префикс к путям запроса, влияет на фактические URL запросов
624
+ - `modulePrefix`: Добавляет префикс к путям запроса, влияет на фактические URL запросов
625
625
  - Пример: `/api/user/list` после добавления `/forward`, URL запроса становится `/forward/api/user/list`
626
626
 
627
627
  5. **Как настроить разные `dataLevel` для нескольких серверов?**
@@ -629,7 +629,7 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
629
629
  ```json
630
630
  {
631
631
  "dataLevel": "serve",
632
- "swaggerServers": [
632
+ "swaggerConfig": [
633
633
  {
634
634
  "url": "http://old-api.com/swagger.json",
635
635
  "dataLevel": "axios",
@@ -650,7 +650,7 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
650
650
  - Используйте конфигурацию `includeInterface`:
651
651
  ```json
652
652
  {
653
- "swaggerServers": [
653
+ "swaggerConfig": [
654
654
  {
655
655
  "url": "http://api.com/swagger.json",
656
656
  "includeInterface": [