@dxtmisha/wiki 0.39.8 → 0.57.0
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/dist/{defineProperty-Bjg6wMoX.js → defineProperty-149Ahniv.js} +4 -4
- package/dist/library.js +1 -1
- package/dist/media/descriptions/wikiDescriptionsArea.d.ts +7 -0
- package/dist/media/descriptions/wikiDescriptionsClientOnly.d.ts +7 -0
- package/dist/media/descriptions/wikiDescriptionsContainer.d.ts +7 -0
- package/dist/media/descriptions/wikiDescriptionsHeader.d.ts +7 -0
- package/dist/media/descriptions/wikiDescriptionsPageArea.d.ts +7 -0
- package/dist/media/mdx/Area/wikiMdxArea.d.ts +7 -0
- package/dist/media/mdx/ClientOnly/wikiMdxClientOnly.d.ts +7 -0
- package/dist/media/mdx/Container/wikiMdxContainer.d.ts +7 -0
- package/dist/media/mdx/Header/wikiMdxHeader.d.ts +7 -0
- package/dist/media/mdx/PageArea/wikiMdxPageArea.d.ts +7 -0
- package/dist/media.d.ts +1 -1
- package/dist/media.js +115 -68
- package/dist/storybook.js +2707 -1841
- package/dist/{wikiDescriptions-Cv4WzSNL.js → wikiDescriptions-7XaHU3Yk.js} +182 -0
- package/package.json +1 -1
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.en.mdx +43 -0
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.ru.mdx +43 -0
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.vi.mdx +41 -0
- package/src/media/functional/functional/composables/useApiRef/useApiRef.en.mdx +20 -4
- package/src/media/functional/functional/composables/useApiRef/useApiRef.ru.mdx +21 -3
- package/src/media/functional/functional/composables/useApiRef/useApiRef.vi.mdx +20 -2
- package/src/media/functional/functional/functions/computedAsync/computedAsync.en.mdx +8 -0
- package/src/media/functional/functional/functions/computedAsync/computedAsync.ru.mdx +8 -0
- package/src/media/functional/functional/functions/computedAsync/computedAsync.vi.mdx +8 -0
- package/src/media/functional/functional/functions/computedEternity/computedEternity.en.mdx +8 -0
- package/src/media/functional/functional/functions/computedEternity/computedEternity.ru.mdx +8 -0
- package/src/media/functional/functional/functions/computedEternity/computedEternity.vi.mdx +8 -0
- package/src/media/functional/functional-basic/classes/Api/Api.en.mdx +3 -0
- package/src/media/functional/functional-basic/classes/Api/Api.ru.mdx +3 -0
- package/src/media/functional/functional-basic/classes/Api/Api.vi.mdx +3 -0
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.en.mdx +5 -2
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.ru.mdx +6 -3
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.vi.mdx +5 -2
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.en.mdx +9 -0
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.ru.mdx +9 -0
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.vi.mdx +9 -0
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.en.mdx +31 -6
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.ru.mdx +31 -6
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.vi.mdx +31 -6
- package/src/media/functional/functional-basic/classes/Meta/Meta.en.mdx +16 -0
- package/src/media/functional/functional-basic/classes/Meta/Meta.ru.mdx +16 -0
- package/src/media/functional/functional-basic/classes/Meta/Meta.vi.mdx +17 -1
- package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.en.mdx +9 -0
- package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.ru.mdx +9 -0
- package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.vi.mdx +9 -0
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.en.mdx +2 -1
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.ru.mdx +2 -1
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.vi.mdx +3 -2
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.en.mdx +2 -2
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.ru.mdx +2 -2
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.vi.mdx +2 -2
- package/src/media/functional/functional-basic/icons/icons.en.mdx +3 -0
- package/src/media/functional/functional-basic/icons/icons.ru.mdx +3 -0
- package/src/media/functional/functional-basic/icons/icons.vi.mdx +3 -0
- package/src/media/functional/nitro-basic/about/about.en.mdx +52 -0
- package/src/media/functional/nitro-basic/about/about.ru.mdx +52 -0
- package/src/media/functional/nitro-basic/about/about.vi.mdx +52 -0
- package/src/media/functional/nitro-basic/composables/useHeaders/useHeaders.en.mdx +29 -0
- package/src/media/functional/nitro-basic/composables/useHeaders/useHeaders.ru.mdx +29 -0
- package/src/media/functional/nitro-basic/composables/useHeaders/useHeaders.vi.mdx +29 -0
- package/src/media/functional/nitro-basic/functions/getRequestOrigin/getRequestOrigin.en.mdx +24 -0
- package/src/media/functional/nitro-basic/functions/getRequestOrigin/getRequestOrigin.ru.mdx +24 -0
- package/src/media/functional/nitro-basic/functions/getRequestOrigin/getRequestOrigin.vi.mdx +24 -0
- package/src/media/functional/nitro-basic/functions/getRequestUrl/getRequestUrl.en.mdx +24 -0
- package/src/media/functional/nitro-basic/functions/getRequestUrl/getRequestUrl.ru.mdx +24 -0
- package/src/media/functional/nitro-basic/functions/getRequestUrl/getRequestUrl.vi.mdx +24 -0
- package/src/media/functional/nitro-basic/functions/initApi/initApi.en.mdx +23 -0
- package/src/media/functional/nitro-basic/functions/initApi/initApi.ru.mdx +23 -0
- package/src/media/functional/nitro-basic/functions/initApi/initApi.vi.mdx +23 -0
- package/src/media/functional/nitro-basic/functions/initClientRouter/initClientRouter.en.mdx +21 -0
- package/src/media/functional/nitro-basic/functions/initClientRouter/initClientRouter.ru.mdx +21 -0
- package/src/media/functional/nitro-basic/functions/initClientRouter/initClientRouter.vi.mdx +21 -0
- package/src/media/functional/nitro-basic/functions/initCookieStorage/initCookieStorage.en.mdx +18 -0
- package/src/media/functional/nitro-basic/functions/initCookieStorage/initCookieStorage.ru.mdx +18 -0
- package/src/media/functional/nitro-basic/functions/initCookieStorage/initCookieStorage.vi.mdx +18 -0
- package/src/media/functional/nitro-basic/functions/initHeaders/initHeaders.en.mdx +16 -0
- package/src/media/functional/nitro-basic/functions/initHeaders/initHeaders.ru.mdx +16 -0
- package/src/media/functional/nitro-basic/functions/initHeaders/initHeaders.vi.mdx +16 -0
- package/src/media/functional/nitro-basic/functions/initPluginApiCache/initPluginApiCache.en.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/initPluginApiCache/initPluginApiCache.ru.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/initPluginApiCache/initPluginApiCache.vi.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/initPluginBasic/initPluginBasic.en.mdx +34 -0
- package/src/media/functional/nitro-basic/functions/initPluginBasic/initPluginBasic.ru.mdx +34 -0
- package/src/media/functional/nitro-basic/functions/initPluginBasic/initPluginBasic.vi.mdx +34 -0
- package/src/media/functional/nitro-basic/functions/initScriptsJson/initScriptsJson.en.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/initScriptsJson/initScriptsJson.ru.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/initScriptsJson/initScriptsJson.vi.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/initServerRouter/initServerRouter.en.mdx +20 -0
- package/src/media/functional/nitro-basic/functions/initServerRouter/initServerRouter.ru.mdx +20 -0
- package/src/media/functional/nitro-basic/functions/initServerRouter/initServerRouter.vi.mdx +20 -0
- package/src/media/functional/nitro-basic/functions/initServerStorage/initServerStorage.en.mdx +16 -0
- package/src/media/functional/nitro-basic/functions/initServerStorage/initServerStorage.ru.mdx +16 -0
- package/src/media/functional/nitro-basic/functions/initServerStorage/initServerStorage.vi.mdx +16 -0
- package/src/media/functional/nitro-basic/functions/initSsrApp/initSsrApp.en.mdx +20 -0
- package/src/media/functional/nitro-basic/functions/initSsrApp/initSsrApp.ru.mdx +20 -0
- package/src/media/functional/nitro-basic/functions/initSsrApp/initSsrApp.vi.mdx +20 -0
- package/src/media/functional/nitro-basic/functions/uiBootstrapClient/uiBootstrapClient.en.mdx +14 -0
- package/src/media/functional/nitro-basic/functions/uiBootstrapClient/uiBootstrapClient.ru.mdx +14 -0
- package/src/media/functional/nitro-basic/functions/uiBootstrapClient/uiBootstrapClient.vi.mdx +14 -0
- package/src/media/functional/nitro-basic/functions/uiBootstrapServer/uiBootstrapServer.en.mdx +19 -0
- package/src/media/functional/nitro-basic/functions/uiBootstrapServer/uiBootstrapServer.ru.mdx +19 -0
- package/src/media/functional/nitro-basic/functions/uiBootstrapServer/uiBootstrapServer.vi.mdx +19 -0
- package/src/media/functional/nitro-basic/functions/uiCookieStorage/uiCookieStorage.en.mdx +13 -0
- package/src/media/functional/nitro-basic/functions/uiCookieStorage/uiCookieStorage.ru.mdx +13 -0
- package/src/media/functional/nitro-basic/functions/uiCookieStorage/uiCookieStorage.vi.mdx +13 -0
- package/src/media/functional/nitro-basic/functions/uiCreateApp/uiCreateApp.en.mdx +43 -0
- package/src/media/functional/nitro-basic/functions/uiCreateApp/uiCreateApp.ru.mdx +43 -0
- package/src/media/functional/nitro-basic/functions/uiCreateApp/uiCreateApp.vi.mdx +43 -0
- package/src/media/functional/nitro-basic/functions/uiCreateClientApp/uiCreateClientApp.en.mdx +31 -0
- package/src/media/functional/nitro-basic/functions/uiCreateClientApp/uiCreateClientApp.ru.mdx +31 -0
- package/src/media/functional/nitro-basic/functions/uiCreateClientApp/uiCreateClientApp.vi.mdx +31 -0
- package/src/media/functional/nitro-basic/functions/uiCreateServerApp/uiCreateServerApp.en.mdx +34 -0
- package/src/media/functional/nitro-basic/functions/uiCreateServerApp/uiCreateServerApp.ru.mdx +34 -0
- package/src/media/functional/nitro-basic/functions/uiCreateServerApp/uiCreateServerApp.vi.mdx +34 -0
- package/src/media/functional/nitro-basic/functions/uiCreateSsrRouter/uiCreateSsrRouter.en.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/uiCreateSsrRouter/uiCreateSsrRouter.ru.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/uiCreateSsrRouter/uiCreateSsrRouter.vi.mdx +17 -0
- package/src/media/functional/nitro-basic/functions/uiId/uiId.en.mdx +13 -0
- package/src/media/functional/nitro-basic/functions/uiId/uiId.ru.mdx +13 -0
- package/src/media/functional/nitro-basic/functions/uiId/uiId.vi.mdx +13 -0
- package/src/media/functional/nitro-basic/functions/uiServerStorage/uiServerStorage.en.mdx +13 -0
- package/src/media/functional/nitro-basic/functions/uiServerStorage/uiServerStorage.ru.mdx +13 -0
- package/src/media/functional/nitro-basic/functions/uiServerStorage/uiServerStorage.vi.mdx +13 -0
- package/src/media/functional/nitro-basic/setup/setup.en.mdx +133 -0
- package/src/media/functional/nitro-basic/setup/setup.ru.mdx +133 -0
- package/src/media/functional/nitro-basic/setup/setup.vi.mdx +133 -0
|
@@ -51,6 +51,7 @@ All setter methods return `typeof MetaStatic` to support method chaining.
|
|
|
51
51
|
### Output
|
|
52
52
|
|
|
53
53
|
- `html(): string` — Generates a complete string of HTML meta tags for all managed properties.
|
|
54
|
+
- `htmlTitle(): string` — Generates a complete HTML-safe title string.
|
|
54
55
|
|
|
55
56
|
## Architecture
|
|
56
57
|
|
|
@@ -74,5 +75,5 @@ MetaStatic
|
|
|
74
75
|
|
|
75
76
|
console.log(MetaStatic.getTitle()); // "Summer Collection"
|
|
76
77
|
document.title; // "Summer Collection - My Online Store"
|
|
78
|
+
console.log(MetaStatic.htmlTitle()); // "Summer Collection - My Online Store"
|
|
77
79
|
```
|
|
78
|
-
|
|
@@ -51,6 +51,7 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
51
51
|
### Вывод
|
|
52
52
|
|
|
53
53
|
- `html(): string` — Генерирует полную строку HTML-тегов для всех управляемых свойств.
|
|
54
|
+
- `htmlTitle(): string` — Генерирует полную HTML-безопасную строку заголовка.
|
|
54
55
|
|
|
55
56
|
## Архитектура
|
|
56
57
|
|
|
@@ -74,5 +75,5 @@ MetaStatic
|
|
|
74
75
|
|
|
75
76
|
console.log(MetaStatic.getTitle()); // "Летняя коллекция"
|
|
76
77
|
document.title; // "Летняя коллекция - Мой Интернет Магазин"
|
|
78
|
+
console.log(MetaStatic.htmlTitle()); // "Летняя коллекция - Мой Интернет Магазин"
|
|
77
79
|
```
|
|
78
|
-
|
|
@@ -17,7 +17,7 @@ Lớp `MetaStatic` là **điểm truy cập tĩnh** để quản lý các thẻ
|
|
|
17
17
|
|
|
18
18
|
### Truy cập
|
|
19
19
|
|
|
20
|
-
- `getItem(): Meta` — Trả về thực
|
|
20
|
+
- `getItem(): Meta` — Trả về thực entity `Meta` cơ sở.
|
|
21
21
|
- `getOg(): MetaOg` — Lấy thực thể `MetaOg` cho các thao tác Open Graph nâng cao.
|
|
22
22
|
- `getTwitter(): MetaTwitter` — Lấy thực thể `MetaTwitter` cho các thao tác Twitter Card nâng cao.
|
|
23
23
|
|
|
@@ -51,6 +51,7 @@ Tất cả các phương thức thiết lập đều trả về `typeof MetaStat
|
|
|
51
51
|
### Đầu ra
|
|
52
52
|
|
|
53
53
|
- `html(): string` — Tạo ra một chuỗi đầy đủ các thẻ HTML meta cho tất cả các thuộc tính được quản lý.
|
|
54
|
+
- `htmlTitle(): string` — Tạo ra chuỗi tiêu đề an toàn với HTML.
|
|
54
55
|
|
|
55
56
|
## Kiến trúc
|
|
56
57
|
|
|
@@ -74,5 +75,5 @@ MetaStatic
|
|
|
74
75
|
|
|
75
76
|
console.log(MetaStatic.getTitle()); // "Bộ sưu tập mùa hè"
|
|
76
77
|
document.title; // "Bộ sưu tập mùa hè - Cửa hàng trực tuyến của tôi"
|
|
78
|
+
console.log(MetaStatic.htmlTitle()); // "Bộ sưu tập mùa hè - Cửa hàng trực tuyến của tôi"
|
|
77
79
|
```
|
|
78
|
-
|
|
@@ -52,6 +52,8 @@ Saves a value to the storage.
|
|
|
52
52
|
|
|
53
53
|
- `init(listener: () => Record<string, any>): typeof ServerStorage` — Initializes the storage with a context listener. On the server, this listener should return an object unique to each request.
|
|
54
54
|
- `has(key: string): boolean` — Checks for the existence of a key in the current context.
|
|
55
|
+
- `remove(key: string): void` — Removes a value by key from the storage.
|
|
56
|
+
- `setErrorStatus(hide: boolean): void` — Sets whether to hide context missing errors in the console/error center.
|
|
55
57
|
- `reset(): void` — Resets the storage, clearing all stored data and the listener. Useful for performing cleanup.
|
|
56
58
|
- `toString(): string` — Generates an HTML `<script type="application/json">` tag containing all data marked for hydration.
|
|
57
59
|
|
|
@@ -127,5 +129,3 @@ This method generates a special script tag:
|
|
|
127
129
|
{"userSettings":{"fontSize":16}}
|
|
128
130
|
</script>
|
|
129
131
|
```
|
|
130
|
-
|
|
131
|
-
|
|
@@ -52,6 +52,8 @@ const theme = ServerStorage.get('theme') // 'dark'
|
|
|
52
52
|
|
|
53
53
|
- `init(listener: () => Record<string, any>): typeof ServerStorage` — Инициализирует хранилище слушателем контекста. На сервере этот слушатель должен возвращать объект, уникальный для каждого запроса.
|
|
54
54
|
- `has(key: string): boolean` — Проверяет наличие ключа в текущем контексте.
|
|
55
|
+
- `remove(key: string): void` — Удаляет значение по ключу из хранилища.
|
|
56
|
+
- `setErrorStatus(hide: boolean): void` — Устанавливает, нужно ли скрывать ошибки отсутствия контекста в консоли/центре ошибок.
|
|
55
57
|
- `reset(): void` — Сбрасывает хранилище, очищая все сохраненные данные и слушателя. Полезно для выполнения очистки.
|
|
56
58
|
- `toString(): string` — Генерирует HTML-тег `<script type="application/json">` со всеми данными, помеченными для гидратации.
|
|
57
59
|
|
|
@@ -127,5 +129,3 @@ ServerStorage.set('userSettings', () => ({ fontSize: 16 }), true)
|
|
|
127
129
|
{"userSettings":{"fontSize":16}}
|
|
128
130
|
</script>
|
|
129
131
|
```
|
|
130
|
-
|
|
131
|
-
|
|
@@ -52,6 +52,8 @@ Lưu một giá trị vào kho lưu trữ.
|
|
|
52
52
|
|
|
53
53
|
- `init(listener: () => Record<string, any>): typeof ServerStorage` — Khởi tạo kho lưu trữ với bộ lắng nghe ngữ cảnh. Trên máy chủ, bộ lắng nghe này sẽ trả về một đối tượng duy nhất cho mỗi yêu cầu.
|
|
54
54
|
- `has(key: string): boolean` — Kiếm tra sự tồn tại của một khóa trong ngữ cảnh hiện tại.
|
|
55
|
+
- `remove(key: string): void` — Xóa một giá trị theo khóa khỏi kho lưu trữ.
|
|
56
|
+
- `setErrorStatus(hide: boolean): void` — Thiết lập việc ẩn lỗi thiếu ngữ cảnh trong bảng điều khiển hoặc trung tâm lỗi.
|
|
55
57
|
- `reset(): void` — Đặt lại kho lưu trữ, xóa tất cả dữ liệu đã lưu và bộ lắng nghe. Hữu ích cho việc dọn dẹp.
|
|
56
58
|
- `toString(): string` — Tạo một thẻ HTML `<script type="application/json">` chứa tất cả dữ liệu được đánh dấu để hydration.
|
|
57
59
|
|
|
@@ -127,5 +129,3 @@ Phương thức này tạo ra một thẻ script đặc biệt:
|
|
|
127
129
|
{"userSettings":{"fontSize":16}}
|
|
128
130
|
</script>
|
|
129
131
|
```
|
|
130
|
-
|
|
131
|
-
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {Meta} from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/en/nitro-basic/! About Library'/>
|
|
4
|
+
|
|
5
|
+
# [@dxtmisha/nitro-basic](https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic)
|
|
6
|
+
|
|
7
|
+
`@dxtmisha/nitro-basic` is a foundational utility library designed for building robust Server-Side Rendering (SSR) applications using Vue 3 and Nitro. It provides a set of tools for state synchronization between server and client, routing management, and simplifying the SSR application development process.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
To start using the library, install it via npm:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm i @dxtmisha/nitro-basic
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What is this library for?
|
|
18
|
+
|
|
19
|
+
Developing applications with SSR (Server-Side Rendering) requires special attention to detail: from isolating states for different users on the server to preventing hydration mismatches on the client.
|
|
20
|
+
|
|
21
|
+
`@dxtmisha/nitro-basic` handles routine tasks for configuring the Nitro and Vue environment, providing a unified mechanism for initializing storages, API clients, and routing. It serves as a bridge between the powerful capabilities of Nitro and the reactivity of Vue 3.
|
|
22
|
+
|
|
23
|
+
## What's inside?
|
|
24
|
+
|
|
25
|
+
The library includes tools to solve key SSR tasks:
|
|
26
|
+
|
|
27
|
+
**Environment Initialization** — the `uiCreateServerApp` and `uiCreateClientApp` functions provide a standardized way to launch the application in different environments, automatically configuring the necessary plugins and services.
|
|
28
|
+
|
|
29
|
+
**State and Storage Management** — tools for working with server storage (`initServerStorage`) and cookies (`initCookieStorage`). They ensure that data received on the server is accessible to Vue components via the `provide/inject` mechanism.
|
|
30
|
+
|
|
31
|
+
**Routing Synchronization** — utilities for creating and initializing the router (`uiCreateSsrRouter`, `initServerRouter`), which ensure correct URL navigation on the server side and smooth handover to the client.
|
|
32
|
+
|
|
33
|
+
**Data Hydration** — automatic generation of JSON scripts (`initScriptsJson`) to transfer `ServerStorage` state and `Api` data from the server to the client, eliminating redundant API requests during page load.
|
|
34
|
+
|
|
35
|
+
**API Integration** — means for configuring request headers and origin, allowing the use of absolute URLs during server-side calls and maintaining authorization via cookie forwarding.
|
|
36
|
+
|
|
37
|
+
**Nitro Plugins** — ready-made functions to extend Nitro's capabilities, such as server-side API response caching.
|
|
38
|
+
|
|
39
|
+
## Who is it for?
|
|
40
|
+
|
|
41
|
+
The library is designed for developers building their solutions on the Vue 3 + Nitro stack (or Nuxt-like architectures) who need low-level but flexible tools to manage the lifecycle of an SSR application.
|
|
42
|
+
|
|
43
|
+
## Principles
|
|
44
|
+
|
|
45
|
+
- **SSR Safety** — all tools are designed to eliminate data leaks between requests from different users.
|
|
46
|
+
- **Seamless Hydration** — minimizing differences between server and client states.
|
|
47
|
+
- **Modularity** — the ability to use both comprehensive application creation functions and individual atomic initialization utilities.
|
|
48
|
+
- **Integration** — deep compatibility with the `@dxtmisha/functional` ecosystem.
|
|
49
|
+
|
|
50
|
+
## Git
|
|
51
|
+
|
|
52
|
+
[https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic](https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {Meta} from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/ru/nitro-basic/! О библиотеке'/>
|
|
4
|
+
|
|
5
|
+
# [@dxtmisha/nitro-basic](https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic)
|
|
6
|
+
|
|
7
|
+
`@dxtmisha/nitro-basic` — это базовая библиотека утилит, предназначенная для создания надежных приложений с серверным рендерингом (SSR) на базе Vue 3 и Nitro. Она предоставляет набор инструментов для синхронизации состояния между сервером и клиентом, управления маршрутизацией и упрощения процесса разработки SSR-приложений.
|
|
8
|
+
|
|
9
|
+
## Установка
|
|
10
|
+
|
|
11
|
+
Чтобы начать использовать библиотеку, установите ее через npm:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm i @dxtmisha/nitro-basic
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Для чего эта библиотека?
|
|
18
|
+
|
|
19
|
+
Разработка приложений с SSR (Server-Side Rendering) требует особого внимания к деталям: от изоляции состояний разных пользователей на сервере до предотвращения ошибок гидратации (hydration mismatch) на клиенте.
|
|
20
|
+
|
|
21
|
+
`@dxtmisha/nitro-basic` берет на себя рутинные задачи по настройке окружения Nitro и Vue, обеспечивая единый механизм инициализации хранилищ, API-клиентов и маршрутизации. Она служит связующим звеном между мощными возможностями Nitro и реактивностью Vue 3.
|
|
22
|
+
|
|
23
|
+
## Что в ней есть?
|
|
24
|
+
|
|
25
|
+
Библиотека включает в себя инструменты для решения ключевых задач SSR:
|
|
26
|
+
|
|
27
|
+
**Инициализация окружения** — функции `uiCreateServerApp` и `uiCreateClientApp` предоставляют стандартизированный способ запуска приложения в разных средах, автоматически настраивая необходимые плагины и сервисы.
|
|
28
|
+
|
|
29
|
+
**Управление состоянием и хранилищами** — инструменты для работы с серверным хранилищем (`initServerStorage`) и cookie (`initCookieStorage`). Они гарантируют, что данные, полученные на сервере, будут доступны компонентам Vue через механизм `provide/inject`.
|
|
30
|
+
|
|
31
|
+
**Синхронизация маршрутизации** — утилиты для создания и инициализации роутера (`uiCreateSsrRouter`, `initServerRouter`), которые обеспечивают правильный переход по URL на стороне сервера и плавную передачу управления клиенту.
|
|
32
|
+
|
|
33
|
+
**Гидратация данных** — автоматическая генерация JSON-скриптов (`initScriptsJson`) для передачи состояния `ServerStorage` и данных `Api` с сервера на клиент, что исключает повторные запросы к API при загрузке страницы.
|
|
34
|
+
|
|
35
|
+
**Интеграция с API** — средства для настройки заголовков и источника (origin) запросов, позволяющие использовать абсолютные URL при серверных вызовах и сохранять авторизацию через проброс cookie.
|
|
36
|
+
|
|
37
|
+
**Nitro Плагины** — готовые функции для расширения возможностей Nitro, такие как кэширование API ответов на уровне сервера.
|
|
38
|
+
|
|
39
|
+
## Для кого это?
|
|
40
|
+
|
|
41
|
+
Библиотека создана для разработчиков, которые строят свои решения на стеке Vue 3 + Nitro (или Nuxt-подобные архитектуры) и нуждаются в низкоуровневых, но гибких инструментах для управления жизненным циклом SSR-приложения.
|
|
42
|
+
|
|
43
|
+
## Принципы
|
|
44
|
+
|
|
45
|
+
- **Безопасность SSR** — все инструменты спроектированы так, чтобы исключить утечки данных между запросами разных пользователей.
|
|
46
|
+
- **Бесшовная гидратация** — минимизация различий между серверным и клиентским состоянием.
|
|
47
|
+
- **Модульность** — возможность использовать как комплексные функции создания приложения, так и отдельные атомарные утилиты инициализации.
|
|
48
|
+
- **Интеграция** — глубокая совместимость с экосистемой `@dxtmisha/functional`.
|
|
49
|
+
|
|
50
|
+
## Git
|
|
51
|
+
|
|
52
|
+
[https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic](https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {Meta} from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/vi/nitro-basic/! Giới thiệu về thư viện'/>
|
|
4
|
+
|
|
5
|
+
# [@dxtmisha/nitro-basic](https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic)
|
|
6
|
+
|
|
7
|
+
`@dxtmisha/nitro-basic` là một thư viện tiện ích cơ bản được thiết kế để xây dựng các ứng dụng Server-Side Rendering (SSR) mạnh mẽ bằng Vue 3 và Nitro. Nó cung cấp một bộ công cụ để đồng bộ hóa trạng thái giữa server và client, quản lý định tuyến và đơn giản hóa quy trình phát triển ứng dụng SSR.
|
|
8
|
+
|
|
9
|
+
## Cài đặt
|
|
10
|
+
|
|
11
|
+
Để bắt đầu sử dụng thư viện, hãy cài đặt nó qua npm:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm i @dxtmisha/nitro-basic
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Thư viện này dùng để làm gì?
|
|
18
|
+
|
|
19
|
+
Phát triển các ứng dụng với SSR (Server-Side Rendering) đòi hỏi sự chú ý đặc biệt đến từng chi tiết: từ việc cô lập trạng thái cho những người dùng khác nhau trên server đến việc ngăn chặn lỗi không khớp khi hydrat hóa (hydration mismatch) trên client.
|
|
20
|
+
|
|
21
|
+
`@dxtmisha/nitro-basic` xử lý các tác vụ thông thường để cấu hình môi trường Nitro và Vue, cung cấp một cơ chế thống nhất để khởi tạo bộ lưu trữ, API client và định tuyến. Nó đóng vai trò như một cầu nối giữa các khả năng mạnh mẽ của Nitro và tính phản ứng của Vue 3.
|
|
22
|
+
|
|
23
|
+
## Có gì bên trong?
|
|
24
|
+
|
|
25
|
+
Thư viện bao gồm các công cụ để giải quyết các tác vụ SSR chính:
|
|
26
|
+
|
|
27
|
+
**Khởi tạo môi trường** — các hàm `uiCreateServerApp` và `uiCreateClientApp` cung cấp một cách tiêu chuẩn hóa để khởi chạy ứng dụng trong các môi trường khác nhau, tự động cấu hình các plugin và dịch vụ cần thiết.
|
|
28
|
+
|
|
29
|
+
**Quản lý trạng thái và bộ lưu trữ** — các công cụ để làm việc với bộ lưu trữ server (`initServerStorage`) và cookie (`initCookieStorage`). Chúng đảm bảo rằng dữ liệu nhận được trên server có thể truy cập được bởi các thành phần Vue thông qua cơ chế `provide/inject`.
|
|
30
|
+
|
|
31
|
+
**Đồng bộ hóa định tuyến** — các tiện ích để tạo và khởi tạo router (`uiCreateSsrRouter`, `initServerRouter`), đảm bảo điều hướng URL chính xác ở phía server và chuyển giao mượt mà cho client.
|
|
32
|
+
|
|
33
|
+
**Hydrat hóa dữ liệu** — tự động tạo các kịch bản JSON (`initScriptsJson`) để chuyển trạng thái `ServerStorage` và dữ liệu `Api` từ server sang client, loại bỏ các yêu cầu API dư thừa trong quá trình tải trang.
|
|
34
|
+
|
|
35
|
+
**Tích hợp API** — phương tiện để cấu hình các header và origin của yêu cầu, cho phép sử dụng URL tuyệt đối trong các cuộc gọi phía server và duy trì ủy quyền thông qua chuyển tiếp cookie.
|
|
36
|
+
|
|
37
|
+
**Nitro Plugins** — các hàm có sẵn để mở rộng khả năng của Nitro, chẳng hạn như lưu trữ đệm phản hồi API phía server.
|
|
38
|
+
|
|
39
|
+
## Nó dành cho ai?
|
|
40
|
+
|
|
41
|
+
Thư viện được thiết kế cho các nhà phát triển đang xây dựng giải pháp của họ trên stack Vue 3 + Nitro (hoặc các kiến trúc giống Nuxt) và cần các công cụ cấp thấp nhưng linh hoạt để quản lý vòng đời của một ứng dụng SSR.
|
|
42
|
+
|
|
43
|
+
## Nguyên tắc
|
|
44
|
+
|
|
45
|
+
- **An toàn SSR** — tất cả các công cụ được thiết kế để loại bỏ rò rỉ dữ liệu giữa các yêu cầu từ những người dùng khác nhau.
|
|
46
|
+
- **Hydrat hóa mượt mà** — giảm thiểu sự khác biệt giữa trạng thái server và client.
|
|
47
|
+
- **Tính mô-đun** — khả năng sử dụng cả các hàm tạo ứng dụng toàn diện và các tiện ích khởi tạo nguyên tử riêng lẻ.
|
|
48
|
+
- **Tích hợp** — khả năng tương thích sâu với hệ sinh thái `@dxtmisha/functional`.
|
|
49
|
+
|
|
50
|
+
## Git
|
|
51
|
+
|
|
52
|
+
[https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic](https://github.com/dxtmisha/dxt-ui/tree/main/packages/nitro-basic)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/en/nitro-basic/Composables/useHeaders - Get Headers'/>
|
|
4
|
+
|
|
5
|
+
# `useHeaders`
|
|
6
|
+
|
|
7
|
+
A composable function that provides access to the API headers of the current request. It can return either the entire `Headers` object or the value of a specific header by its name.
|
|
8
|
+
|
|
9
|
+
**Parameters:**
|
|
10
|
+
- `name?: string` — Optional header name.
|
|
11
|
+
|
|
12
|
+
**Returns:**
|
|
13
|
+
- `Headers | undefined` — If no name is provided, returns the entire headers object.
|
|
14
|
+
- `string | undefined` — If a name is provided, returns the value of that header.
|
|
15
|
+
|
|
16
|
+
**Usage Example:**
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { useHeaders } from '@dxtmisha/nitro-basic'
|
|
20
|
+
|
|
21
|
+
// Get a specific header
|
|
22
|
+
const contentType = useHeaders('Content-Type')
|
|
23
|
+
|
|
24
|
+
// Get all headers
|
|
25
|
+
const headers = useHeaders()
|
|
26
|
+
if (headers) {
|
|
27
|
+
console.log(headers.get('Authorization'))
|
|
28
|
+
}
|
|
29
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/ru/nitro-basic/Composables/useHeaders - Получение заголовков'/>
|
|
4
|
+
|
|
5
|
+
# `useHeaders`
|
|
6
|
+
|
|
7
|
+
Композитная функция (composable), которая позволяет получить доступ к заголовкам API текущего запроса. Она может возвращать как весь объект `Headers`, так и значение конкретного заголовка по его имени.
|
|
8
|
+
|
|
9
|
+
**Параметры:**
|
|
10
|
+
- `name?: string` — Опциональное имя заголовка.
|
|
11
|
+
|
|
12
|
+
**Возвращает:**
|
|
13
|
+
- `Headers | undefined` — Если имя не передано, возвращает весь объект заголовков.
|
|
14
|
+
- `string | undefined` — Если передано имя, возвращает значение этого заголовка.
|
|
15
|
+
|
|
16
|
+
**Пример использования:**
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { useHeaders } from '@dxtmisha/nitro-basic'
|
|
20
|
+
|
|
21
|
+
// Получение конкретного заголовка
|
|
22
|
+
const contentType = useHeaders('Content-Type')
|
|
23
|
+
|
|
24
|
+
// Получение всех заголовков
|
|
25
|
+
const headers = useHeaders()
|
|
26
|
+
if (headers) {
|
|
27
|
+
console.log(headers.get('Authorization'))
|
|
28
|
+
}
|
|
29
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/vi/nitro-basic/Composables/useHeaders - Lấy Header'/>
|
|
4
|
+
|
|
5
|
+
# `useHeaders`
|
|
6
|
+
|
|
7
|
+
Một hàm composable cung cấp quyền truy cập vào các header API của yêu cầu hiện tại. Nó có thể trả về toàn bộ đối tượng `Headers` hoặc giá trị của một header cụ thể theo tên của nó.
|
|
8
|
+
|
|
9
|
+
**Tham số:**
|
|
10
|
+
- `name?: string` — Tên header (tùy chọn).
|
|
11
|
+
|
|
12
|
+
**Trả về:**
|
|
13
|
+
- `Headers | undefined` — Nếu không cung cấp tên, trả về toàn bộ đối tượng headers.
|
|
14
|
+
- `string | undefined` — Nếu cung cấp tên, trả về giá trị của header đó.
|
|
15
|
+
|
|
16
|
+
**Ví dụ sử dụng:**
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
import { useHeaders } from '@dxtmisha/nitro-basic'
|
|
20
|
+
|
|
21
|
+
// Lấy một header cụ thể
|
|
22
|
+
const contentType = useHeaders('Content-Type')
|
|
23
|
+
|
|
24
|
+
// Lấy tất cả các header
|
|
25
|
+
const headers = useHeaders()
|
|
26
|
+
if (headers) {
|
|
27
|
+
console.log(headers.get('Authorization'))
|
|
28
|
+
}
|
|
29
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/en/nitro-basic/Functions/getRequestOrigin - Get Request Origin'/>
|
|
4
|
+
|
|
5
|
+
# `getRequestOrigin`
|
|
6
|
+
|
|
7
|
+
A utility function that extracts the origin (protocol and domain) from a [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request) object. This is useful for getting the base URL of the current request without paths or query parameters.
|
|
8
|
+
|
|
9
|
+
**Parameters:**
|
|
10
|
+
- `request: Request` — A standard Web API Request object.
|
|
11
|
+
|
|
12
|
+
**Returns:**
|
|
13
|
+
`string` — The origin string (e.g., `https://example.com`).
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { getRequestOrigin } from '@dxtmisha/nitro-basic'
|
|
17
|
+
|
|
18
|
+
// Example with a Request object
|
|
19
|
+
const request = new Request('https://dxtmisha.com/docs/api?query=1')
|
|
20
|
+
const origin = getRequestOrigin(request)
|
|
21
|
+
|
|
22
|
+
// Result: "https://dxtmisha.com"
|
|
23
|
+
console.log(origin)
|
|
24
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/ru/nitro-basic/Functions/getRequestOrigin - Получение источника запроса'/>
|
|
4
|
+
|
|
5
|
+
# `getRequestOrigin`
|
|
6
|
+
|
|
7
|
+
Утилитарная функция, которая извлекает источник (протокол и домен) из объекта [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request). Это удобно для получения базового URL текущего запроса без путей и параметров.
|
|
8
|
+
|
|
9
|
+
**Параметры:**
|
|
10
|
+
- `request: Request` — Объект стандартного Web API запроса.
|
|
11
|
+
|
|
12
|
+
**Возвращает:**
|
|
13
|
+
`string` — Строка источника (например, `https://example.com`).
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { getRequestOrigin } from '@dxtmisha/nitro-basic'
|
|
17
|
+
|
|
18
|
+
// Пример с объектом Request
|
|
19
|
+
const request = new Request('https://dxtmisha.com/docs/api?query=1')
|
|
20
|
+
const origin = getRequestOrigin(request)
|
|
21
|
+
|
|
22
|
+
// Результат: "https://dxtmisha.com"
|
|
23
|
+
console.log(origin)
|
|
24
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/vi/nitro-basic/Functions/getRequestOrigin - Lấy nguồn gốc của yêu cầu'/>
|
|
4
|
+
|
|
5
|
+
# `getRequestOrigin`
|
|
6
|
+
|
|
7
|
+
Một hàm tiện ích giúp trích xuất nguồn (giao thức và tên miền) từ đối tượng [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request). Điều này rất hữu ích để lấy URL cơ sở của yêu cầu hiện tại mà không có đường dẫn hoặc tham số truy vấn.
|
|
8
|
+
|
|
9
|
+
**Tham số:**
|
|
10
|
+
- `request: Request` — Đối tượng Request chuẩn Web API.
|
|
11
|
+
|
|
12
|
+
**Trả về:**
|
|
13
|
+
`string` — Chuỗi nguồn (ví dụ: `https://example.com`).
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { getRequestOrigin } from '@dxtmisha/nitro-basic'
|
|
17
|
+
|
|
18
|
+
// Ví dụ với đối tượng Request
|
|
19
|
+
const request = new Request('https://dxtmisha.com/docs/api?query=1')
|
|
20
|
+
const origin = getRequestOrigin(request)
|
|
21
|
+
|
|
22
|
+
// Kết quả: "https://dxtmisha.com"
|
|
23
|
+
console.log(origin)
|
|
24
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/en/nitro-basic/Functions/getRequestUrl - Get Request Pathname'/>
|
|
4
|
+
|
|
5
|
+
# `getRequestUrl`
|
|
6
|
+
|
|
7
|
+
A utility function that extracts the pathname from a [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request) object. This allows you to get only the resource path, excluding the protocol, domain, and query parameters.
|
|
8
|
+
|
|
9
|
+
**Parameters:**
|
|
10
|
+
- `request: Request` — A standard Web API Request object.
|
|
11
|
+
|
|
12
|
+
**Returns:**
|
|
13
|
+
`string` — The pathname string (e.g., `/api/users`).
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { getRequestUrl } from '@dxtmisha/nitro-basic'
|
|
17
|
+
|
|
18
|
+
// Example with a Request object
|
|
19
|
+
const request = new Request('https://dxtmisha.com/docs/api?query=1')
|
|
20
|
+
const urlPath = getRequestUrl(request)
|
|
21
|
+
|
|
22
|
+
// Result: "/docs/api"
|
|
23
|
+
console.log(urlPath)
|
|
24
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/ru/nitro-basic/Functions/getRequestUrl - Получение пути запроса'/>
|
|
4
|
+
|
|
5
|
+
# `getRequestUrl`
|
|
6
|
+
|
|
7
|
+
Утилитарная функция, которая извлекает путь (pathname) из объекта [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request). Это позволяет получить только путь к ресурсу, исключая протокол, домен и параметры запроса.
|
|
8
|
+
|
|
9
|
+
**Параметры:**
|
|
10
|
+
- `request: Request` — Объект стандартного Web API запроса.
|
|
11
|
+
|
|
12
|
+
**Возвращает:**
|
|
13
|
+
`string` — Строка пути (например, `/api/users`).
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { getRequestUrl } from '@dxtmisha/nitro-basic'
|
|
17
|
+
|
|
18
|
+
// Пример с объектом Request
|
|
19
|
+
const request = new Request('https://dxtmisha.com/docs/api?query=1')
|
|
20
|
+
const urlPath = getRequestUrl(request)
|
|
21
|
+
|
|
22
|
+
// Результат: "/docs/api"
|
|
23
|
+
console.log(urlPath)
|
|
24
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/vi/nitro-basic/Functions/getRequestUrl - Lấy đường dẫn yêu cầu'/>
|
|
4
|
+
|
|
5
|
+
# `getRequestUrl`
|
|
6
|
+
|
|
7
|
+
Một hàm tiện ích giúp trích xuất đường dẫn (pathname) từ đối tượng [Request](https://developer.mozilla.org/en-US/docs/Web/API/Request). Điều này cho phép bạn chỉ lấy đường dẫn tài nguyên, loại trừ giao thức, tên miền và các tham số truy vấn.
|
|
8
|
+
|
|
9
|
+
**Tham số:**
|
|
10
|
+
- `request: Request` — Đối tượng Request chuẩn Web API.
|
|
11
|
+
|
|
12
|
+
**Trả về:**
|
|
13
|
+
`string` — Chuỗi đường dẫn (ví dụ: `/api/users`).
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { getRequestUrl } from '@dxtmisha/nitro-basic'
|
|
17
|
+
|
|
18
|
+
// Ví dụ với đối tượng Request
|
|
19
|
+
const request = new Request('https://dxtmisha.com/docs/api?query=1')
|
|
20
|
+
const urlPath = getRequestUrl(request)
|
|
21
|
+
|
|
22
|
+
// Kết quả: "/docs/api"
|
|
23
|
+
console.log(urlPath)
|
|
24
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/en/nitro-basic/Functions/initApi - API Client Initialization'/>
|
|
4
|
+
|
|
5
|
+
# `initApi`
|
|
6
|
+
|
|
7
|
+
A utility function that initializes the API client for the current request on the server. It sets the base origin extracted from the request object to ensure that absolute URLs are correctly formed when making API requests during server-side rendering (SSR).
|
|
8
|
+
|
|
9
|
+
**Parameters:**
|
|
10
|
+
- `request: Request` — The incoming server HTTP request object.
|
|
11
|
+
|
|
12
|
+
**Usage Example:**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { initApi } from '@dxtmisha/nitro-basic'
|
|
16
|
+
|
|
17
|
+
export default defineEventHandler((event) => {
|
|
18
|
+
const request = toWebRequest(event)
|
|
19
|
+
initApi(request)
|
|
20
|
+
|
|
21
|
+
// Now the Api client is configured with the correct origin
|
|
22
|
+
})
|
|
23
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/ru/nitro-basic/Functions/initApi - Инициализация API клиента'/>
|
|
4
|
+
|
|
5
|
+
# `initApi`
|
|
6
|
+
|
|
7
|
+
Утилитарная функция, которая инициализирует API-клиент для текущего запроса на сервере. Она устанавливает базовый источник (origin), извлеченный из объекта запроса, чтобы гарантировать правильное формирование абсолютных URL-адресов при выполнении API-запросов во время серверного рендеринга (SSR).
|
|
8
|
+
|
|
9
|
+
**Параметры:**
|
|
10
|
+
- `request: Request` — Объект входящего HTTP-запроса сервера.
|
|
11
|
+
|
|
12
|
+
**Пример использования:**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { initApi } from '@dxtmisha/nitro-basic'
|
|
16
|
+
|
|
17
|
+
export default defineEventHandler((event) => {
|
|
18
|
+
const request = toWebRequest(event)
|
|
19
|
+
initApi(request)
|
|
20
|
+
|
|
21
|
+
// Теперь Api клиент настроен на правильный origin
|
|
22
|
+
})
|
|
23
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/vi/nitro-basic/Functions/initApi - Khởi tạo API client'/>
|
|
4
|
+
|
|
5
|
+
# `initApi`
|
|
6
|
+
|
|
7
|
+
Một hàm tiện ích giúp khởi tạo API client cho yêu cầu hiện tại trên server. Nó thiết lập origin cơ sở được trích xuất từ đối tượng yêu cầu để đảm bảo rằng các URL tuyệt đối được hình thành chính xác khi thực hiện các yêu cầu API trong quá trình render phía server (SSR).
|
|
8
|
+
|
|
9
|
+
**Tham số:**
|
|
10
|
+
- `request: Request` — Đối tượng yêu cầu HTTP server đến.
|
|
11
|
+
|
|
12
|
+
**Ví dụ sử dụng:**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { initApi } from '@dxtmisha/nitro-basic'
|
|
16
|
+
|
|
17
|
+
export default defineEventHandler((event) => {
|
|
18
|
+
const request = toWebRequest(event)
|
|
19
|
+
initApi(request)
|
|
20
|
+
|
|
21
|
+
// Bây giờ Api client đã được cấu hình với origin chính xác
|
|
22
|
+
})
|
|
23
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/en/nitro-basic/Functions/initClientRouter - Wait for Router Ready'/>
|
|
4
|
+
|
|
5
|
+
# `initClientRouter`
|
|
6
|
+
|
|
7
|
+
An asynchronous function that waits for the initialization and full readiness of the Vue router. This ensures that all asynchronous components and initial navigation hooks are resolved before the application continues execution (e.g., before hydration on the client or rendering on the server).
|
|
8
|
+
|
|
9
|
+
**Parameters:**
|
|
10
|
+
- `router: Router | undefined` — The Vue Router instance.
|
|
11
|
+
|
|
12
|
+
**Returns:**
|
|
13
|
+
`Promise<void>`
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
import { initClientRouter } from '@dxtmisha/nitro-basic'
|
|
17
|
+
import { createRouter } from './router'
|
|
18
|
+
|
|
19
|
+
const router = createRouter()
|
|
20
|
+
await initClientRouter(router)
|
|
21
|
+
```
|