@jswork/next
Version:
A javascript OOP toolkit for mobile & modern web.
274 lines (237 loc) • 5.2 kB
TypeScript
interface NxStatic {
/**
* Current version of next.
*/
VERSION: string;
/**
* Debug mode for next.
*/
DEBUG: boolean;
/**
* A symbol for break.
*/
BREAKER: {};
/**
* A symbol for nil.
*/
NIL: {};
/**
* Stub code for void function.
*/
noop(): void;
/**
* Stub code will get boolean true value.
*/
stubTrue(): true;
/**
* Stub code will get boolean false value.
*/
stubFalse(): false;
/**
* Pass value will get the same value.
* @param v any value.
*/
stubValue(v: any): any;
/**
* Create a promise with value.
* @param v any value.
*/
stubPromise(v?: any): Promise<any>;
/**
* If value is boolean, return true, else return false.
* @param v
*/
isBoolean(v: any): boolean;
/**
* If value is string, return true, else return false.
* @param v
*/
isString(v: any): boolean;
/**
* If value is number, return true, else return false.
* NaN is not a number.
* @param v
*/
isNumber(v: any): boolean;
/**
* If value is function, return true, else return false.
* @param v
*/
isFunction(v: any): boolean;
/**
* If value is undefined OR null, return true, else return false.
* @param v
*/
isNil(v: any): boolean;
/**
* If value is array, return true, else return false.
* @param v
*/
isArray(v: any): boolean;
/**
* If value is object, return true, else return false.
* Array is not a object.
* @param v
*/
isObject(v: any): boolean;
/**
* If value is promise, return true, else return false.
* @param v
*/
isThenable(v: any): boolean;
/**
* Throw a Standard error.
* @param msg
*/
error(msg: string): never;
/**
* Nice try for fn.
* @param fn
* @param cb
*/
try(fn: Function, cb: (err) => void): any;
/**
* ForEach but have break(nx.BREAK).
* @param target The list target.
* @param callback The iterator.
* @param context The execute context.
*/
forEach(target: any[], callback: Nx.ArrayIterator, context?): void;
/**
* ForIn for js object with break.
* @param target The js object.
* @param callback The iterator.
* @param context The execute context.
*/
forIn(target: any, callback: Nx.ObjectIterator, context?): void;
/**
* Each for enumerable object.
* @param target
* @param callback
* @param context
*/
each(
target: any,
callback: Nx.ArrayIterator | Nx.ObjectIterator,
context?
): void;
/**
* Get mapped array.
* @param target
* @param callback
* @param context
*/
map(target: any, callback: Nx.MapIterator, context?): any[];
/**
* Merge object.
* @param args
*/
mix(...args): any;
/**
* Slice for any enumerable target.
* @param target
* @param start
* @param end
*/
slice<T>(target: T[], start?: number, end?: number): T[];
/**
* Set value by dot path(string or dot string).
* @param target
* @param path
* @param value
*/
set(target: any, path: string, value: any): any;
/**
* Get value by path(string or dot string).
* @param target
* @param path
* @param default
*/
get(target: any, path: string | string[], defaults?: any): any;
/**
* Delete by path(string or dot string), return boolean value.
* @param target
* @param path
*/
del(target: any, path: string): boolean;
/**
* Get/set method.
* @deprecated Will be delete in future.
* @param target
* @param path
* @param value
*/
path(target: any, path: string, value?: any): any;
/**
* Async await wrapper for easy error handling without try-catch.
* @param promise
* @example
* const [err, res] = await to(fetch('https://api.github.com/users/github'));
* if (err) throw err;
* console.log(res);
*/
to<T>(promise: Promise<T>): Promise<[any, undefined] | [undefined, T]>;
/**
* Create overload function.
*/
createOverload(): Nx.OverloadResult;
/**
* Root class of nx.Class.
*/
RootClass(): any;
/**
* Define static member for target.
* @param target
* @param name
* @param meta
* @param isStatic
*/
defineProperty(target: any, name: string, meta: any, isStatic?: boolean): any;
/**
* Define method for target.
* @param target
* @param name
* @param meta
* @param isStatic
*/
defineMethod(target: any, name: string, meta: any, isStatic?: boolean): any;
/**
* Define a series method from name with comma for a target.
* @param target
* @param name
* @param meta
* @param isStatic
*/
defineBombMethod(
target: any,
name: string,
meta: any,
isStatic?: boolean
): any;
/**
* Define a member for nx.
* @param member
* @param target
* @param obj
* @param isStatic
*/
defineMembers(
member: Nx.DefinedMemember,
target: any,
obj: any,
isStatic?: boolean
): any;
/**
* Define es5 class.
* @deprecated Will be delete in future.
* @param type
* @param meta
*/
declare(type: string, meta?): any;
/**
* Define es5 class.
* @param type
* @param meta
*/
define(type: string, meta?): any;
}