UNPKG

mustard-app

Version:

个人前端微应用建设中。。。

64 lines (53 loc) 1.74 kB
import { State } from '../proxy/proxyHistory'; import { APPStAtUSCNKEYS, IAppStatusCN } from '../typings'; type Tfunction = (...arg:unknown[])=>unknown; export function isString (value:unknown):value is string { return typeof value === 'string'; } export function isNumber (value:unknown):value is number { return typeof value === 'number'; } export function isBoolean (value:unknown):value is boolean { return typeof value === 'boolean'; } export function isFunction (value:unknown):value is Tfunction { return value instanceof Function; } export function isObject (value:unknown): value is ObjectConstructor { return value instanceof Object; } export function isURL (value:unknown): value is URL { return value instanceof URL; } /** * 是否是子应用的state * @param value * @returns */ export function isMustardState (value: unknown):value is State { return (value as State)?.isMustard === 'MustardApp'; } /** * 是否是生命周期的key * @param value * @returns */ export function isIAppStatusKey (value: unknown):value is IAppStatusCN { return APPStAtUSCNKEYS.includes(value as IAppStatusCN); } /** * 是否是远程类型资源 * @param dom * @returns boolean */ export function isRemotezElement (dom: Element):dom is HTMLImageElement|HTMLVideoElement|HTMLAudioElement|HTMLSourceElement { return dom instanceof HTMLImageElement || dom instanceof HTMLVideoElement || dom instanceof HTMLAudioElement || dom instanceof HTMLSourceElement; } /** * 是否是相对地址 * @param src * @returns boolean */ export function isRelativePath (src: string = '') { return /^(\.){0,2}\//.test(src); }