kt-template-online-api/src/qqbot/qqbot.utils.ts

42 lines
1.3 KiB
TypeScript

import {
QQBOT_DEFAULT_PAGE_NO,
QQBOT_DEFAULT_PAGE_SIZE,
} from './qqbot.constants';
export type QqbotPageQuery = {
pageNo?: number | string;
pageSize?: number | string;
};
export function toStringId(value: number | string | undefined) {
return value === undefined || value === null ? '' : `${value}`;
}
export function toNumber(value: number | string | undefined, fallback: number) {
const nextValue = Number(value);
return Number.isFinite(nextValue) && nextValue > 0 ? nextValue : fallback;
}
export function getPageParams(query: QqbotPageQuery = {}) {
const pageNo = toNumber(query.pageNo, QQBOT_DEFAULT_PAGE_NO);
const pageSize = toNumber(query.pageSize, QQBOT_DEFAULT_PAGE_SIZE);
return {
pageNo,
pageSize,
skip: (pageNo - 1) * pageSize,
};
}
export function normalizeBoolean(value: any, fallback = false) {
if (value === undefined || value === null || value === '') return fallback;
if (typeof value === 'boolean') return value;
if (typeof value === 'number') return value === 1;
return ['1', 'true', 'yes'].includes(`${value}`.toLowerCase());
}
export function normalizeNullableString(value: any) {
if (value === undefined || value === null) return null;
const nextValue = `${value}`.trim();
return nextValue ? nextValue : null;
}