Skip to content

Commit 5eea97d

Browse files
authored
Add auth, httpClient, jwt token logic (#49)
* feat: add raw auth page * feat: add redirect to main * feat: add jwt token logic * feat: add httpClient * feat: add useRequest * config: switch off react-refresh/only-export-components * feat: add redirect logic and auth provider in app * refactor: rewrite auth context to zustand store * refactor: move auth api middleware to auth folder * refactor: create open-api-generate.js * feat: add funcs for api * refactor: use workTechApiApi instead workTechApiClient
1 parent b7fc452 commit 5eea97d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+2598
-659
lines changed

eslint.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,8 @@ export default tseslint.config([
1919
ecmaVersion: 2020,
2020
globals: globals.browser,
2121
},
22+
rules: {
23+
'react-refresh/only-export-components': 'off',
24+
},
2225
},
2326
])

open-api-generate.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import path from 'path'
2+
import { generateApi } from 'swagger-typescript-api'
3+
4+
// Генерация API-клиента на основе OpenAPI-спецификации
5+
generateApi({
6+
// Имя выходного файла (если modular: false)
7+
name: 'api.ts',
8+
9+
// Использовать единый HTTP-клиент (axios)
10+
singleHttpClient: true,
11+
12+
// Выбор HTTP-клиента (axios или fetch)
13+
httpClientType: 'axios',
14+
15+
// Разбить API-клиент на модули (файлы)
16+
modular: true,
17+
18+
// Выносить тело запроса в отдельный параметр
19+
extractRequestBody: true,
20+
21+
// Выносить query и path параметры в отдельный параметр
22+
extractRequestParams: true,
23+
24+
// Выносить тело ответа в отдельный параметр
25+
extractResponseBody: true,
26+
27+
// Выносить ошибки API в отдельный параметр
28+
extractResponseError: true,
29+
30+
// Генерировать типы ответов API
31+
generateResponses: true,
32+
33+
// Использовать объединённые enum-типы (`enum | string`)
34+
generateUnionEnums: true,
35+
36+
// Исправлять ошибки OpenAPI-спеки (если есть несовместимости)
37+
patch: true,
38+
39+
// Генерировать клиент для работы с API
40+
generateClient: true,
41+
42+
// Индекс для именования модулей API
43+
moduleNameIndex: 1,
44+
45+
// URL к OpenAPI-спецификации
46+
url: 'http://91.211.249.37/test/v3/api-docs',
47+
48+
// Папка для сохранения сгенерированного кода
49+
output: path.resolve(process.cwd()),
50+
})

package-lock.json

Lines changed: 30 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"preview": "vite preview",
1111
"format": "prettier",
1212
"check": "prettier --write . && eslint --fix",
13-
"openapi": "swagger-typescript-api -p http://91.211.249.37/test/v3/api-docs -o src/lib -n types.api.ts"
13+
"openapi-generate": "node open-api-generate.js"
1414
},
1515
"dependencies": {
1616
"@hello-pangea/dnd": "^18.0.1",
@@ -66,9 +66,9 @@
6666
"globals": "^16.3.0",
6767
"openapi-typescript": "^7.8.0",
6868
"prettier": "^3.6.2",
69-
"swagger-typescript-api": "^13.2.7",
69+
"swagger-typescript-api": "^13.2.8",
7070
"typescript": "~5.8.3",
7171
"typescript-eslint": "^8.35.1",
7272
"vite": "^7.0.4"
7373
}
74-
}
74+
}

src/app/(dashboard)/admin/README.md

Lines changed: 0 additions & 90 deletions
This file was deleted.

src/app/(dashboard)/admin/page.tsx

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/app/(dashboard)/projects/[projectId]/settings/README.md

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)