x-utils-es
Version:
helper tools for javascript validation
182 lines (159 loc) • 7.82 kB
TypeScript
declare namespace xutils {
export type TlogTypes = "log" | "warn" | "error" | "onerror" | "attention" | "debug" | "alert" | "stack" | "errorTrace"
export type TlogMode = "on" | "off"
export type TloopCallback = (index: number) => any
export type CB = () => any
export interface WithHoc extends FunctionConstructor{
(...args:any):any
}
export type CallbackEval = () => boolean
export interface TypeCheck {
type: string
value: number
primitiveValue: any
}
export interface SimpleQ extends Promise<any> {
// [name?:string]: Promise<any>
entity?: string
progress(cb: (value: "resolved" | "rejected" | "in_progress" | "timeout", time?:number) => void, every?: number, timeout?: number): SimpleQ
resolve(arg: any): SimpleQ
reject(arg: any): SimpleQ
promise: Promise<any>
}
export interface CancelPromiseProps {
//{ error, defer, id }
defer: Promise<any>
checkEvery: number
maxWait: number
id: string | number
message?: string
logging?: boolean
cbErr(arg: { error: string, defer: { resolve: ()=>any, reject: ()=>any }, id: string | number }): void
}
export interface Dispatcher {
subscribe(cb: (data: any, uid: string, index: number) => void): Dispatcher
onComplete(cb: (uid: string) => void): Dispatcher
next(data: any): Dispatcher
delete(): Dispatcher
isActive(): boolean
}
export interface Xrequire{
(id:string | URL, dir?:string, ref?: 'ERR_NO_THROW' | undefined): any
}
export interface XReferenceOpts{
name?:string
message?:string
fileName?:string
lineNumber?:number
columnNumber?:number
}
export interface TXReferenceError extends ReferenceErrorConstructor{
lineNumber?:number
fileName?:string
columnNumber?:number
}
export interface IXErrorOpts{
id?:string|number
name?:string
message?:string
fileName?:string
lineNumber?:number
}
export interface TXError extends ErrorConstructor{
id?:string|number
name?:string
message?:string
fileName?:string
lineNumber?:number
}
// logging types
export function disableLogging(): boolean
export function resetLogging(): boolean
export function loggerSetting(logType: TlogTypes, logMode?: TlogMode): boolean
export function checkLoggerSetting(logType: TlogTypes): TlogMode
export function loggingON(): boolean
export function log(...any:any): any
export function attention(...any:any): any
export function debug(...any:any): any
export function alert(...any:any): any
export function stack(data: any, asArray: boolean): any
export function errorTrace(data: any, asArray: boolean): any
export function warn(...any:any): any
export function error(...any:any): any
export function onerror(...any:any): any
export function isFunction(el: any): boolean
export function isArray(arr: any, cbEval?: CallbackEval): boolean
export function isBigInt(n: any): boolean
export function loop(size: number, cb: TloopCallback): Array<any>
export function validDate(dt: any, cbEval?: CallbackEval): boolean
export function arraySize(arr: any): number
export function typeCheck(el: any, standard?: boolean): TypeCheck
export function isError(el: any): boolean
export function isFalse(el: any): boolean
export function isTrue(el: any): boolean
export function isBoolean(el: any): boolean
export function isNull(el: any): boolean
export function isUndefined(el): boolean
export function isEmpty(value: any): boolean
export function head(arr: Array<any>): any
export function last(arr: Array<any>): any
export function timer(cb: CB, time?: number): void
export function interval(cb: CB, every?: number, endTime?: number): void
export function sq(): SimpleQ
export function cancelPromise(options: CancelPromiseProps): Promise<any>
export function validID(id: string): string
export function isNumber(n: any): boolean
export function isDate(d: any): boolean
export function stringSize(str: string): number
export function isQPromise(defer: any): boolean
export function isSQ(defer: any): boolean
export function isPromise(defer: any): boolean
export function isObject(obj: any, cbEval?: CallbackEval): boolean
export function uniq(arr: Array<any>): Array<any>
export function shuffle(arr: Array<any>): Array<any>
export function selectiveArray(selectBy: Array<string>, data: Array<any>): Array<[]>
export function isClass(obj: object, cbEval?: CallbackEval): boolean
export function hasPrototype(obj: object, cbEval?: CallbackEval): boolean
export function hasProto(el: object, cbEval?: CallbackEval): boolean
export function isRegExp(expression: RegExp): boolean
export function isInstance(obj: any, cbEval?: CallbackEval): boolean
export function objectSize(obj: any): number
export function isFalsy(el: any): boolean
export function isString(str: any, cbEval?: CallbackEval): boolean
export function copyBy(obj: object, refs: Array<string>): object
export function copy(data: any): any
export function asJson(data: any): string
export function copyDeep(data: any): any
export function delay(time?: number): Promise<any>
export function someKeyMatch(object: object, source: object, cbEval?: CallbackEval): boolean
export function exactKeyMatch(object: object, source: object, cbEval?: CallbackEval): boolean
export function trueVal(arr: Array<any>): Array<any>
export function trueValDeep(arr: Array<any>): Array<any>
export function trueProp(obj: object): object
export function resolver(fn: CB, timeout?: number, testEvery?: number): Promise<any>
export function flatten(arr: Array<any>): Array<any>
export function flattenDeep(arr: Array<any>): Array<any>
export function chunks(arr: Array<any>, size: number): Array<[]>
export function dupes(item: any, index: number): Array<any>
export function uniqBy(arr: Array<any>, propName: string): Array<any>
export function arrayWith(arr: Array<any>, prop: string): Array<any>
export function exFromArray(arr: Array<any>, excludes: Array<string>): Array<any>
export function pickFromArray(arr: Array<any>, picks: Array<any>): Array<any>
export function dispatcher(uid?: string | number, debug?: boolean): Dispatcher
export function withHoc(item: WithHoc, ...args: any): WithHoc
export function truthFul(obj: object): object
export const xrequire:Xrequire
export function inIndex(str: string, patterns: Array<RegExp>): number
export function matched(str: string, expression: RegExp): boolean
export function referenceError(opts?:XReferenceOpts):TXReferenceError
export function xError(opts?:IXErrorOpts):TXError
export function noop():void
export function trim(str:string):string
export function includes(id:any, arr:Array<any>):boolean
export function unsubscribe(subscriptions:Array<any>, message?:string):boolean
export function objectIterateWith(obj:object,props:Array<string>):object
export function spread(obj:object,props:Array<string>):object
export function spreadWith(arr:Array<any>,props:Array<number>):Array<any>
}
export as namespace xutils
export {xutils}