Giao diện
@tasco/utils
Helper TypeScript thuần, không phụ thuộc Nuxt hay Vue: lỗi chuẩn hoá AppError, kiểu phân trang, thiết lập bảng. Cách dùng: AppError & phân loại, Lỗi 422 và form.
Hàm
clearTableSettings()
ts
function clearTableSettings(settingsKey, options?): void;Xoá thiết lập đã lưu của một bảng (người dùng đặt lại về cấu hình gốc).
Tham số
| Tham số | Kiểu |
|---|---|
settingsKey | string |
options | TableSettingsStorageOptions |
Trả về
void
errorSeverity()
ts
function errorSeverity(input): ErrorSeverity;Mức độ nghiêm trọng để chọn kiểu hiển thị: 5xx và mất mạng → error; 403, 422 → warning; còn lại → error.
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
getFieldErrors()
ts
function getFieldErrors(input): Record<string, string[]>;Trích field errors từ AppError.data (dạng { errors|fields: { field: string|string[] } }) để gán vào CForm. Trả object rỗng nếu không có.
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
Record<string, string[]>
getTableSettings()
ts
function getTableSettings(settingsKey, options?): TableSettings | null;Thiết lập đã lưu của một bảng; chưa lưu, dữ liệu hỏng hoặc không truy cập được storage → null.
Tham số
| Tham số | Kiểu |
|---|---|
settingsKey | string |
options | TableSettingsStorageOptions |
Trả về
TableSettings | null
isAppError()
ts
function isAppError(input): input is AppError;Type guard kiểm tra input đã là AppError. Không chuẩn hoá — lỗi bất kỳ thì gọi toAppError.
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
input is AppError
isAuthError()
ts
function isAuthError(input): boolean;401 — chưa/đã hết đăng nhập.
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
boolean
isForbidden()
ts
function isForbidden(input): boolean;403 — không đủ quyền.
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
boolean
isNetworkError()
ts
function isNetworkError(input): boolean;Không có mã HTTP (mất mạng, timeout, lỗi JS chưa bắt…).
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
boolean
isServerError()
ts
function isServerError(input): boolean;5xx — lỗi phía server.
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
boolean
isTableSortOrder()
ts
function isTableSortOrder(value): value is TableSortOrder;Type guard kiểm tra giá trị là chiều sắp xếp hợp lệ ('ascend' | 'descend').
Tham số
| Tham số | Kiểu |
|---|---|
value | unknown |
Trả về
value is TableSortOrder
isValidation()
ts
function isValidation(input): boolean;422 — lỗi validate dữ liệu (thường kèm field errors).
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
boolean
parseTableSettings()
ts
function parseTableSettings(raw): TableSettings | null;Đọc thiết lập từ dữ liệu không tin cậy (JSON trong storage, response server). Sai cấu trúc hoặc khác version → null để bảng dùng cấu hình gốc. Kết quả là object mới, chỉ gồm các field đã biết.
Tham số
| Tham số | Kiểu |
|---|---|
raw | unknown |
Trả về
TableSettings | null
setTableSettings()
ts
function setTableSettings(
settingsKey,
settings,
options?
): void;Lưu thiết lập của một bảng (kèm version). Storage đầy hoặc bị chặn (vd Safari private) → bỏ qua: thiết lập vẫn áp dụng trong phiên, chỉ không nhớ được cho lần mở sau.
Tham số
| Tham số | Kiểu |
|---|---|
settingsKey | string |
settings | TableSettings |
options | TableSettingsStorageOptions |
Trả về
void
tableSettingsKeyOf()
ts
function tableSettingsKeyOf(settingsKey): string;Key trong storage của một bảng: tasco:table:<settingsKey>.
Tham số
| Tham số | Kiểu |
|---|---|
settingsKey | string |
Trả về
string
toAppError()
ts
function toAppError(input): AppError;Chuẩn hoá bất kỳ giá trị lỗi nào (ofetch response error, Error, string...) thành AppError.
Tham số
| Tham số | Kiểu |
|---|---|
input | unknown |
Trả về
Interface
AppErrorOptions
Tuỳ chọn khi tạo AppError.
Thuộc tính
Paginated
Một trang dữ liệu danh sách — hình dạng chuẩn API danh sách trả về và fetcher của useTable phải trả.
Tham số kiểu
| Tham số kiểu |
|---|
T |
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
items | T[] | Bản ghi của trang đang xem. |
total | number | Tổng số bản ghi khớp truy vấn trên mọi trang — dùng để tính số trang. |
TableSettings
Thiết lập bảng của người dùng. Key cột = key → dataIndex của cột.
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
columnOrder | string[] | Key các cột cấu hình được theo thứ tự hiển thị; rỗng = đúng thứ tự khai báo trong columns. |
defaultSort | TableSort | null | Sắp xếp áp dụng khi mở bảng; null = tắt (dữ liệu theo thứ tự mặc định của backend). |
hiddenColumns | string[] | Key các cột đang ẩn. |
TableSettingsStorageOptions
Tuỳ chọn chung của các hàm đọc/ghi thiết lập bảng.
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
storage? | TableSettingsStorage | Nơi đọc/ghi; mặc định localStorage của trình duyệt. |
TableSort
Sắp xếp theo một cột.
Thuộc tính
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
field | string | dataIndex của cột — giá trị a-table phát ở sorter.field, useTable gửi lên qua sortField. |
order | TableSortOrder | Chiều sắp xếp. |
Kiểu
ErrorSeverity
ts
type ErrorSeverity = "info" | "warning" | "error";Mức độ nghiêm trọng của lỗi, dùng để chọn cách hiển thị.
Maybe
ts
type Maybe<T> = T | null | undefined;Giá trị có thể null hoặc undefined, thường là input chưa chuẩn hoá.
Tham số kiểu
| Tham số kiểu |
|---|
T |
Nullable
ts
type Nullable<T> = T | null;Giá trị có thể vắng, biểu diễn bằng null — quy ước DTO: "không có" là T | null.
Tham số kiểu
| Tham số kiểu |
|---|
T |
TableSettingsStorage
ts
type TableSettingsStorage = Pick<Storage, "getItem" | "setItem" | "removeItem">;Phần Web Storage cần dùng — localStorage, sessionStorage hoặc bản giả khi test.
TableSortOrder
ts
type TableSortOrder = "ascend" | "descend";Chiều sắp xếp — cùng giá trị với TableQuery.sortOrder và sorter của a-table.
Lớp
AppError
Lỗi chuẩn hoá của framework. Ở client, mọi lỗi quy về lớp này qua toAppError; phân loại bằng isAuthError, isForbidden, isValidation, isServerError, isNetworkError.
Kế thừa
Error
Hàm khởi tạo
Hàm khởi tạo
ts
new AppError(message, options?): AppError;Tham số
| Tham số | Kiểu |
|---|---|
message | string |
options | AppErrorOptions |
Trả về
Ghi đè
ts
Error.constructor