You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailchat/server/lib/utils.ts

69 lines
1.3 KiB
TypeScript

import randomString from 'crypto-random-string';
import _ from 'lodash';
/**
*
* @param email
* @returns
*/
export function getEmailAddress(email: string) {
return email.split('@')[0];
}
/**
*
* @param length
*/
export function generateRandomStr(length = 10): string {
return randomString({ length });
}
export function generateRandomNumStr(length = 6) {
return randomString({
length,
type: 'numeric',
});
}
/**
*
*
*/
export function isValidStr(str: unknown): str is string {
return typeof str == 'string' && str !== '';
}
/**
*
*/
export function isValidStaticAssetsUrl(str: unknown): str is string {
if (typeof str !== 'string') {
return false;
}
const filename = _.last(str.split('/'));
if (filename.indexOf('.') === -1) {
return false;
}
return true;
}
/**
*
*/
export function sleep(ms: number): Promise<void> {
return new Promise((resolve) =>
setTimeout(() => {
resolve();
}, ms)
);
}
/**
* url
*/
export function checkPathMatch(urlList: string[], url: string): boolean {
return urlList.includes(url.split('?')[0]);
}