|
|
- export = utility;
- export as namespace utility;
-
-
- // ---------------------------------
- /**
- * @description Types definition by github@ddzy
- * @see https://github.com/node-modules/utility
- */
- // ------------------------------------
-
-
- declare namespace utility {
-
- /**
- * ---------------0_0----------------
- * @description Defines For Array
- * @see https://github.com/node-modules/utility
- * ---------------0^0----------------
- */
-
-
- /**
- * Static object define
- */
- type ObjStatic = { [key: string]: any };
-
-
- /**
- * Array random slice with items count.
- * @param {Array} arr
- * @param {Number} num, number of sub items.
- * @return {Array}
- */
- function randomSlice(
- arr: any[],
- num?: number,
- ): any[];
-
- /**
- * Remove one exists element from an array
- * @param {Array} arr
- * @param {Number} index - remove element index
- * @return {Array} the array instance
- */
- function spliceOne(
- arr: any[],
- index: number,
- ): any[];
-
-
- /**
- * --------------------0_0----------------
- * @description Defines For Crypto
- * @see https://github.com/node-modules/utility#md5
- * --------------0^0------------------
- */
-
-
- /**
- * hash
- *
- * @param {String} method hash method, e.g.: 'md5', 'sha1'
- * @param {String|Buffer|Object} s
- * @param {String} [format] output string format, could be 'hex' or 'base64'. default is 'hex'.
- * @return {String} md5 hash string
- * @public
- */
- function hash(
- method: 'md5' | 'sha1',
- s: string | Buffer | Object,
- format?: 'hex' | 'base64',
- ): string;
-
- /**
- * md5 hash
- *
- * @param {String|Buffer|Object} s
- * @param {String} [format] output string format, could be 'hex' or 'base64'. default is 'hex'.
- * @return {String} md5 hash string
- * @public
- */
- function md5(
- s: string | Buffer | Object,
- format?: 'hex' | 'base64',
- ): string;
-
- /**
- * sha1 hash
- *
- * @param {String|Buffer|Object} s
- * @param {String} [format] output string format, could be 'hex' or 'base64'. default is 'hex'.
- * @return {String} sha1 hash string
- * @public
- */
- function sha1(
- s: string | Buffer | Object,
- format?: 'hex' | 'base64',
- ): string;
-
- /**
- * sha256 hash
- *
- * @param {String|Buffer|Object} s
- * @param {String} [format] output string format, could be 'hex' or 'base64'. default is 'hex'.
- * @return {String} sha256 hash string
- * @public
- */
- function sha256(
- s: string | Buffer | Object,
- format?: 'hex' | 'base64',
- ): string;
-
- /**
- * HMAC algorithm.
- *
- * Equal bash:
- *
- * ```bash
- * $ echo -n "$data" | openssl dgst -binary -$algorithm -hmac "$key" | openssl $encoding
- * ```
- *
- * @param {String} algorithm, dependent on the available algorithms supported by the version of OpenSSL on the platform.
- * Examples are 'sha1', 'md5', 'sha256', 'sha512', etc.
- * On recent releases, `openssl list-message-digest-algorithms` will display the available digest algorithms.
- * @param {String} key, the hmac key to be used.
- * @param {String|Buffer} data, content string.
- * @param {String} [encoding='base64']
- * @return {String} digest string.
- */
- function hmac(
- algorithm: string,
- key: string,
- data: string | Buffer,
- encoding?: 'base64' | string,
- ): string;
-
- /**
- * Base64 encode string.
- *
- * @param {String|Buffer} s
- * @param {Boolean} [urlsafe=false] Encode string s using a URL-safe alphabet,
- * which substitutes - instead of + and _ instead of / in the standard Base64 alphabet.
- * @return {String} base64 encode format string.
- */
- function base64encode(
- s: string | Buffer,
- urlsafe?: boolean,
- ): string;
-
- /**
- * Base64 string decode.
- *
- * @param {String} encode, base64 encoding string.
- * @param {Boolean} [urlsafe=false] Decode string s using a URL-safe alphabet,
- * which substitutes - instead of + and _ instead of / in the standard Base64 alphabet.
- * @param {encoding} [encoding=utf8] if encoding = buffer, will return Buffer instance
- * @return {String|Buffer} plain text.
- */
- function base64decode(
- encode: string,
- urlsafe?: boolean,
- encoding?: 'utf8' | 'buffer',
- ): string | Buffer;
-
-
- /**
- * ----------------0_0-----------------
- * @description Defines For Date
- * @see https://github.com/node-modules/utility#date-utils
- * ---------------0^0------------------
- */
-
-
- interface IYYYYMMDDHHmmssStaticOptions {
- dateSep?: string,
- timeSep?: string,
- }
- interface IDateStructStaticReturns {
- YYYYMMDD: number,
- H: number,
- }
-
- /**
- * Access log format date. format: `moment().format('DD/MMM/YYYY:HH:mm:ss ZZ')`
- *
- * @return {String}
- */
- function accessLogDate(d: Date): string;
-
- /**
- * Normal log format date. format: `moment().format('YYYY-MM-DD HH:mm:ss.SSS')`
- *
- * @return {String}
- */
- function logDate(
- d: string | Date,
- msSep?: string,
- ): string;
-
- /**
- * `moment().format('YYYY-MM-DD HH:mm:ss')` format date string.
- *
- * @return {String}
- */
- function YYYYMMDDHHmmss(
- d: Date | string,
- options?: IYYYYMMDDHHmmssStaticOptions,
- ): string;
-
- /**
- * `moment().format('YYYY-MM-DD')` format date string.
- *
- * @return {String}
- */
- function YYYYMMDD(
- d: string | Date,
- sep?: string,
- ): string;
-
- /**
- * return datetime struct.
- *
- * @return {Object} date
- * - {Number} YYYYMMDD, 20130401
- * - {Number} H, 0, 1, 9, 12, 23
- */
- function datestruct(
- now?: Date,
- ): IDateStructStaticReturns;
-
- /**
- * Get Unix's timestamp in seconds.
- * @return {Number}
- */
- function timestamp(
- t?: string | number,
- ): number | Date;
-
-
- /**
- * ---------------0_0-------------------
- * @description Defines For Function Method
- * @see https://github.com/node-modules/utility#others
- * ---------------0^0--------------------
- */
-
-
- /**
- * A empty function.
- *
- * @return {Function}
- * @public
- */
- function noop(): () => any;
-
- /**
- * Get a function parameter's names.
- *
- * @param {Function} func
- * @param {Boolean} [useCache], default is true
- * @return {Array} names
- */
- function getParamNames(
- func: (...args: any[]) => any,
- cache?: boolean,
- ): string[];
-
-
- /**
- * ----------------0_0-----------------------
- * @description Defines For JSON methods
- * @see https://github.com/node-modules/utility#json
- * -----------------0^0-----------------------
- */
-
-
- interface IJSONStaticOptions {
- space?: number | string,
- replacer?: (
- key: string,
- value: any,
- ) => any,
- }
-
- function strictJSONParse(
- str: string,
- ): ObjStatic;
-
- function readJSONSync(
- filepath: string,
- ): ObjStatic;
-
- function writeJSONSync(
- filepath: string,
- str: string | ObjStatic,
- options?: IJSONStaticOptions,
- ): void;
-
- function readJSON(
- filepath: string,
- ): Promise<any>;
-
- function writeJSON(
- filepath: string,
- str: string | ObjStatic,
- options?: IJSONStaticOptions,
- ): Promise<any>;
-
- function mkdir(
- dir: string,
- ): Promise<any>;
-
-
- /**
- * ------------------0_0------------------------
- * @description Defines For Number Methods
- * @see https://github.com/node-modules/utility#number-utils
- * --------------------0^0----------------------
- */
-
-
- /**
- * CONSTANTS STATIC
- */
- const MAX_SAFE_INTEGER: number;
- const MIN_SAFE_INTEGER: number;
- const MAX_SAFE_INTEGER_STR: string;
- const MAX_SAFE_INTEGER_STR_LENGTH: number;
-
- /**
- * Detect a number string can safe convert to Javascript Number.
- *
- * @param {String} s number format string, like `"123"`, `"-1000123123123123123123"`
- * @return {Boolean}
- */
- function isSafeNumberString(
- s: string,
- ): boolean;
-
- /**
- * Convert string to Number if string in safe Number scope.
- *
- * @param {String} s number format string.
- * @return {Number|String} success will return Number, otherise return the original string.
- */
- function toSafeNumber(
- s: string | number,
- ): number | string;
-
- /**
- * Produces a random integer between the inclusive `lower` and `upper` bounds.
- *
- * @param {Number} lower The lower bound.
- * @param {Number} upper The upper bound.
- * @return {Number} Returns the random number.
- */
- function random(
- lower?: number,
- upper?: number,
- ): number;
-
-
- /**
- * ------------------0_0--------------------------
- * @description Defines For Object Methods
- * @see https://github.com/node-modules/utility#objectassign
- * -------------------0^0------------------------
- */
-
-
- /**
- * High performance assign before node6
- * @param {Object} target - target object
- * @param {Object | Array} objects - object assign from
- * @return {Object} - return target object
- */
- function assign(
- target: ObjStatic,
- objects: ObjStatic | any[],
- ): ObjStatic;
-
- function has(
- obj: ObjStatic,
- prop: string,
- ): boolean;
-
- function getOwnEnumerables(
- obj: ObjStatic,
- ignoreNull?: boolean,
- ): string[];
-
- /**
- * generate a real map object(clean object), no constructor, no __proto__
- * @param {Object} [obj] - init object, optional
- * @return {Object}
- */
- function map(
- obj?: ObjStatic,
- ): ObjStatic;
-
-
- /**
- * -----------------0_0---------------------------
- * @description Defines For Optimize Methods
- * @see https://github.com/node-modules/utility#argumentstoarray
- * -----------------0^0------------------------
- */
-
- interface ITryStaticReturns {
- error: Error | undefined,
- value: any,
- }
-
- const UNSTABLE_METHOD: {
- /**
- * optimize try catch
- * @param {Function} fn
- * @return {Object}
- * - {Error} error
- * - {Mix} value
- */
- try: (
- fn: (...args: any[]) => any,
- ) => ITryStaticReturns,
- };
-
- /**
- * avoid if (a && a.b && a.b.c)
- * @param {Object} obj
- * @param {...String} keys
- * @return {Object}
- */
- function dig(
- obj: ObjStatic,
- ...args: any[],
- ): any;
-
- /**
- * optimize arguments to array
- * @param {Arguments} args
- * @return {Array}
- */
- function argumentsToArray(
- ...args: any[],
- ): any[];
-
-
- /**
- * -------------------0_0---------------------
- * @description Defines For Polyfill Methods
- * @see https://github.com/node-modules/utility#timers
- * -------------------0^0-------------------
- */
-
-
- function setImmediate(
- callback: (...args: any[]) => void,
- ...args: any[],
- ): NodeJS.Immediate;
- function setImmediate(
- fn: (...args: any[]) => any,
- ...args: any[],
- ): void;
-
-
- /**
- * ------------------0_0--------------------
- * @description Defines For String Methods
- * @see https://github.com/node-modules/utility#others
- * -------------------0^0---------------------
- */
-
-
- interface IReplaceInvalidHttpHeaderCharReturns {
- val: string,
- invalid: boolean,
- }
-
- function randomString(
- length?: number,
- charSet?: string | string[],
- ): string;
-
- /**
- * split string to array
- * @param {String} str
- * @param {String} [sep] default is ','
- * @return {Array}
- */
- function split(
- str: string,
- sep?: string,
- ): string[];
-
- /**
- * always optimized
- */
- function splitAlwaysOptimized(
- ...args: any[],
- ): string[];
-
- /**
- * Replace string
- *
- * @param {String} str
- * @param {String|RegExp} substr
- * @param {String|Function} newSubstr
- * @return {String}
- */
- function replace(
- str: string,
- substr: string | RegExp,
- newSubstr: string | ((...args: any[]) => any),
- ): string;
-
- /**
- * Replace invalid http header characters with replacement
- *
- * @param {String} val
- * @param {String|Function} replacement - can be `function(char)`
- * @return {Object}
- */
- function replaceInvalidHttpHeaderChar(
- val: string,
- replacement?: string | ((...args: any[]) => any)
- ): IReplaceInvalidHttpHeaderCharReturns;
-
- /**
- * Detect invalid http header characters in a string
- *
- * @param {String} val
- * @return {Boolean}
- */
- function includesInvalidHttpHeaderChar(
- val: string,
- ): boolean;
-
-
- /**
- * ------------------0_0----------------------
- * @description Defines For Web Methods
- * @see https://github.com/node-modules/utility#decode-and-encode
- * ------------------0^0------------------------
- */
-
-
- /**
- * Escape the given string of `html`.
- *
- * @param {String} html
- * @return {String}
- * @public
- */
- function escape(
- test: string,
- ): string;
-
- /**
- * Unescape the given string from html
- * @param {String} html
- * @param {String} type
- * @return {String}
- * @public
- */
- function unescape(
- html: string,
- type?: string,
- ): string | ObjStatic;
-
- /**
- * Safe encodeURIComponent, won't throw any error.
- * If `encodeURIComponent` error happen, just return the original value.
- *
- * @param {String} text
- * @return {String} URL encode string.
- */
- function encodeURIComponent(
- text: string,
- ): string;
-
- /**
- * Safe decodeURIComponent, won't throw any error.
- * If `decodeURIComponent` error happen, just return the original value.
- *
- * @param {String} encodeText
- * @return {String} URL decode original string.
- */
- function decodeURIComponent(
- encodeText: string,
- ): string;
- }
|