@namphuongtechnologi/np-chat-core
v0.0.12
Published
NP-Chat core (internal) — for embedding use @namphuongtechnologi/np-chat-ui
Downloads
910
Maintainers
Readme
@namphuongtechnologi/np-chat-core
Logic chat thuần TypeScript — domain, REST services, metadata ACS.
Không dùng package này để nhúng chat vào app
Hầu hết dev không cần import core trực tiếp.
| Bạn muốn… | Cài / đọc README |
|-----------|------------------|
| Nhúng chat vào app React (UI sẵn) | @namphuongtechnologi/np-chat-ui |
| Tự build UI + hooks | @namphuongtechnologi/np-chat-react |
| Script / test domain / không React | package này (np-chat-core) |
Nhúng nhanh (copy từ np-chat-ui)
pnpm add @namphuongtechnologi/np-chat-ui @namphuongtechnologi/np-chat-react @namphuongtechnologi/np-chat-core
pnpm add axios @tanstack/react-queryimport { ChatQueryProvider, ChatProvider } from '@namphuongtechnologi/np-chat-react';
import { ChatApp } from '@namphuongtechnologi/np-chat-ui';
import '@namphuongtechnologi/np-chat-ui/styles.css';
// apiClient = axios của app host (đã có auth)
export function ChatPage() {
return (
<ChatQueryProvider>
<ChatProvider config={{ axios: apiClient, currentUser: { id, name, acsId } }}>
<div style={{ height: 'calc(100vh - 64px)' }}>
<ChatApp layout="full" />
</div>
</ChatProvider>
</ChatQueryProvider>
);
}Chi tiết đầy đủ: README của np-chat-ui.
Khi nào mới dùng core trực tiếp?
- Tooling / script không React
- Test domain / metadata
- Gọi REST service thuần TS với
HttpClienttự implement
Cài đặt (chỉ core)
pnpm add @namphuongtechnologi/np-chat-coreVí dụ — REST phòng chat (không phụ thuộc React)
Core không import axios. Implement HttpClient (hoặc dùng createAxiosHttpClient từ np-chat-react nếu app đã có React):
import type { HttpClient } from '@namphuongtechnologi/np-chat-core';
import { createRoomApiService } from '@namphuongtechnologi/np-chat-core';
import type { AxiosInstance } from 'axios';
function toHttpClient(axios: AxiosInstance): HttpClient {
return {
get: async (url, config) => {
const res = await axios.get(url, config);
return { data: res.data, status: res.status };
},
post: async (url, data, config) => {
const res = await axios.post(url, data, config);
return { data: res.data, status: res.status };
},
};
}
const roomApi = createRoomApiService(toHttpClient(apiClient));
const rooms = await roomApi.getChats({ keyword: '' });App React bình thường: đừng gọi
createRoomApiServicethủ công — dùngChatProvider+ hooks (useRooms, …).
Ví dụ — decode metadata ACS
import { decodeMetadata } from '@namphuongtechnologi/np-chat-core';
const decoded = decodeMetadata(acsRawMessage.metadata);Phiên bản
Giữ cùng version với np-chat-react và np-chat-ui khi cài từ npm.
