UNPKG

logan-web

Version:

Web SDK for Logan, supports log and report in H5 and browser environment.

62 lines (56 loc) 1.67 kB
type MiliSeconds = number; export const K_BYTE = 1024; export const M_BYTE = 1024 * K_BYTE; export function sizeOf (str: string): number { let total = 0; for (let i = 0, len = str.length; i < len; i++) { const charCode = str.charCodeAt(i); if (charCode <= 0x007f) { total += 1; } else if (charCode <= 0x07ff) { total += 2; } else if (charCode <= 0xffff) { total += 3; } else { total += 4; } } return total; } export function isValidDay (day: string): boolean { if (typeof day !== 'string') { return false; } else { const dayParts = day.split('-'); const M = parseInt(dayParts[1]); const D = parseInt(dayParts[2]); return ( M > 0 && M <= 12 && D > 0 && D <= 31 && new Date(day).toString() !== 'Invalid Date' ); } } export function dateFormat2Day (date: Date): string { const Y = date.getFullYear(); const M = date.getMonth() + 1; const D = date.getDate(); return `${Y}-${M < 10 ? '0' + M : M}-${D < 10 ? '0' + D : D}`; } export function getStartOfDay (date: Date): MiliSeconds { return new Date( date.getFullYear(), date.getMonth(), date.getDate() ).getTime(); } export function dayFormat2Date (day: string): Date { const [year, month, date] = (day.match(/(\d+)/g) || []).map(n => parseInt(n)); if (year < 1000) { throw new Error(`Invalid dayString: ${day}`); } return new Date(year, month - 1, date); } export const ONE_DAY_TIME_SPAN = 24 * 60 * 60 * 1000;