UNPKG

aztec

Version:

Node Js Framework for creating API Services

107 lines (95 loc) 2.21 kB
import { last } from 'lodash'; import { Handler } from '../handler.class'; /** * @example ( //user to /user ) or ( /user/ to /user ) * @param url * @return {string} */ export function slashValid(url: string): string { if (url[0] === '/' && url[1] === '/') url = url.slice(1); if (url.length > 1 && last(url) === '/') { return url.substring(0, url.length - 1); } else { return url; } } /** * @example ( /user to user ) or ( user/ to user ) * @param url * @return {string} */ export function slashUnwrap(url: string): string { return url.replace('/', ''); } /** * @example ( /user to /user/ ) or ( user/ to /user/ ) * @param url * @return {string} */ export function slashWrap(url: string): string { if (url[0] !== '/' && last(url) === '/') { return `/${url}`; } else if (url[0] === '/' && last(url) !== '/') { return `${url}/`; } return url; } /** * @example ( user to /user ) or ( user/ to /user ) * @param url * @return {string} */ export function slashAdd(url: string): string { let pattern = `/${url}`; if (url.indexOf('/') && last(url) === '/') { return pattern; } else if (url.indexOf('/')) { return pattern; } else { return url; } } /** * @description wait for all components * @param description * @param callback * @param delay */ export function wait(description: string, callback: any, delay: number = 0): string { setTimeout(() => { callback(); }, delay); return description; } /** * @example "73453021571897729" * @return {string} */ export function generateId(): string { return Math.random().toString().slice(2); } /** * @description try to require default * @param path * @return {any} */ export function tryDefault(path: string) { try { return require(path).default; } catch(err) { Handler.warning(`${path} has no export default. Require without "default" can lead to errors.`); return require(path); } } /** * @description drop if not exists "export default" * @param path * @return {any} */ export function dropIfNotDefault(path: string) { try { return require(path).default; } catch(err) { Handler.error(`${path} has no "export default".`); } }