x-utils-es v2.4.0
x-utils-es
Statements | Branches | Functions | Lines |
---|---|---|---|
Simple javascript utility, lodash alternative, to help with type validation, with no dependencies.
- esmodule supports
esnext
,es2015
andumd
- Lightweight, minified \
Documentation
Website docs at: utils.eaglex.net \
Coverage
Full coverage details at: utils.eaglex.net/coverage \
Install
$/ npm i x-utils-es
Why use it
- Validate data
- Good with naming conventions
- Similar to lodash
- No dependencies
- UMD support so you can use in most environments: (AMD, common.js/Node, or browser)
- @types supported, can be used with typescript \
@types
Definitly typed (DT) support on all version \
Version support
For production with gulp/webpack ..etc, use source (1) version, otherwise use any other.
import {} from 'x-utils-es' // src e-module (1)
import {} from 'x-utils-es/esm' // (minified) (2)
import {} from 'x-utils-es/umd' // for browser and commonjs support (minified) (3)
const {} require('x-utils-es/umd') // with node/commonjs support
// browser
<script src="..path/umd"></script>
<script>
const {...} = window.xutils // get access to all utils
</script>
\
Example overview
For full detail refer to website docs: utils.eaglex.net
import { ... } from 'x-utils-es'
# objectSize()
id:1: https://utils.eaglex.net/module-x-utils.html#~objectSize "Detailed in docs" Check item is an array
# stringSize()
id:2: https://utils.eaglex.net/module-x-utils.html#~stringSize "Detailed in docs" Test the length of string
# head()
id:3: https://utils.eaglex.net/module-x-utils.html#~head "Detailed in docs" Get first item from array
# shuffle()
id:4: https://utils.eaglex.net/module-x-utils.html#~shuffle "Detailed in docs" Randomise items in array
# flatten()
id:5: https://utils.eaglex.net/module-x-utils.html#~flatten "Detailed in docs" Flatten 2 level array to 1 level
# flattenDeep()
id:6: https://utils.eaglex.net/module-x-utils.html#~flattenDeep "Detailed in docs" Flatten all array levels to 1
# last()
id:7: https://utils.eaglex.net/module-x-utils.html#~last "Detailed in docs" Gets last item from array
# copy()
id:8: https://utils.eaglex.net/module-x-utils.html#~copy "Detailed in docs" Makes item copy
# copyBy()
id:9: https://utils.eaglex.net/module-x-utils.html#~copyBy "Detailed in docs" Copy object by property name
# copyDeep()
id:10: https://utils.eaglex.net/module-x-utils.html#~copyDeep "Detailed in docs" Makes deep copy including nested items
# asJson()
id:11: https://utils.eaglex.net/module-x-utils.html#~asJson "Detailed in docs" Returns in pretty json fromat
# isFunction()
id:12: https://utils.eaglex.net/module-x-utils.html#~isFunction "Detailed in docs" Check if item is a function
# timer()
id:13: https://utils.eaglex.net/module-x-utils.html#~timer "Detailed in docs" Timer callback executes on timeout
# interval()
id:14: https://utils.eaglex.net/module-x-utils.html#~interval "Detailed in docs" Execute callback every interval, then exit on endTime
# validID()
id:15: https://utils.eaglex.net/module-x-utils.html#~validID "Detailed in docs" Convert to string, remove spaces, toLowerCase
# isNumber()
id:16: https://utils.eaglex.net/module-x-utils.html#~isNumber "Detailed in docs" Check item is a number
# sq()
id:17: https://utils.eaglex.net/module-x-utils.html#~sq "Detailed in docs" SimpleQ / instanceof Promise, deferred simplified promise
# isPromise()
id:18: https://utils.eaglex.net/module-x-utils.html#~isPromise "Detailed in docs" Check for
Promise
/q.defer
/ and xutils promisesq()
# isQPromise()
id:19: https://utils.eaglex.net/module-x-utils.html#~isQPromise "Detailed in docs" Tests for the
q.defer()
node.js promise version
# cancelPromise()
id:20: https://utils.eaglex.net/module-x-utils.html#~cancelPromise "Detailed in docs" Cancelable synchronous process, determines how long to wait before we exit
# uniq()
id:21: https://utils.eaglex.net/module-x-utils.html#~uniq "Detailed in docs" Returns new array of unique values
# uniqBy()
id:22: https://utils.eaglex.net/module-x-utils.html#~uniqBy "Detailed in docs" Selects first match ignoring others of those which prop values are repeated
# isObject()
id:23: https://utils.eaglex.net/module-x-utils.html#~isObject "Detailed in docs" Test item is a true object, and not array
# isArray()
id:24: https://utils.eaglex.net/module-x-utils.html#~isArray "Detailed in docs" Test item is a true array, and not object
# arraySize()
id:25: https://utils.eaglex.net/module-x-utils.html#~arraySize "Detailed in docs" Test item is an array, and check the size
# chunks()
id:26: https://utils.eaglex.net/module-x-utils.html#~chunks "Detailed in docs" Split array to chunks by providing size number
# isString()
id:27: https://utils.eaglex.net/module-x-utils.html#~isString "Detailed in docs" Test item is a string type
# isRegExp()
id:27a: https://utils.eaglex.net/module-x-utils.html#~isRegExp "Detailed in docs" Check pattern is an expression of RegExp
# isFalsy()
id:28: https://utils.eaglex.net/module-x-utils.html#~isFalsy "Detailed in docs" Check if any item type is falsy, object, array, class/instance, having no props set
# isTrue()
id:29: https://utils.eaglex.net/module-x-utils.html#~isTrue "Detailed in docs" Check if item is
gth > 0
,true
, basically opposite ofisFalse()
# isFalse()
id:30: https://utils.eaglex.net/module-x-utils.html#~isFalse "Detailed in docs" Check if item is
lt < 1
,false
,null
orundefined
# isBoolean()
id:31: https://utils.eaglex.net/module-x-utils.html#~isBoolean "Detailed in docs" Check if item is a boolean
# isNull()
id:32: https://utils.eaglex.net/module-x-utils.html#~isNull "Detailed in docs" Check if item is
===null
# isUndefined()
id:33: https://utils.eaglex.net/module-x-utils.html#~isUndefined "Detailed in docs" Check if item is
===undefined
# delay()
id:34: https://utils.eaglex.net/module-x-utils.html#~delay "Detailed in docs" Delay a sync/async process, to be executed after
delay
is resolved
# truthFul()
id:35: https://utils.eaglex.net/module-x-utils.html#~truthFul "Detailed in docs" Return new object excluding all undefined values in top level
# inIndex()
id:36: https://utils.eaglex.net/module-x-utils.html#~inIndex "Detailed in docs" Test accuracy of a
match[x]
in a string
# matched()
id:37: https://utils.eaglex.net/module-x-utils.html#~matched "Detailed in docs" Match string value by expression
# someKeyMatch()
id:38: https://utils.eaglex.net/module-x-utils.html#~someKeyMatch "Detailed in docs" Test if ANY keys match between
object{}
andsource{}
# exactKeyMatch()
id:39: https://utils.eaglex.net/module-x-utils.html#~exactKeyMatch "Detailed in docs" Test if ALL keys match between
object{}
andsource{}
# trueVal()
id:40: https://utils.eaglex.net/module-x-utils.html#~trueVal "Detailed in docs" Exclude any falsy values from array, such as:
[0,null,false,{},undefined, -1,'',[]]
# trueValDeep()
id:41: https://utils.eaglex.net/module-x-utils.html#~trueValDeep "Detailed in docs" Exclude any falsy values from array:
[0,null,false,{},undefined, -1,'',[]]
, but testing 1 level deeper, compared totrueVal()
# trueProp()
id:42: https://utils.eaglex.net/module-x-utils.html#~trueProp "Detailed in docs" Object with true entities will be returned
# typeCheck()
id:43: https://utils.eaglex.net/module-x-utils.html#~typeCheck "Detailed in docs" Examines element for its
type
, providedvalue
, andprimitive value
# isEmpty()
id:44: https://utils.eaglex.net/module-x-utils.html#~isEmpty "Detailed in docs" Check item has some
value
, set ofprops
, orlength
# isError()
id:45: https://utils.eaglex.net/module-x-utils.html#~isError "Detailed in docs" Check item is of Error object family
# isInstance()
id:46: https://utils.eaglex.net/module-x-utils.html#~isInstance "Detailed in docs" Testing if item{} is a
new Item{}
, instance of a class
# isClass()
id:47: https://utils.eaglex.net/module-x-utils.html#~isClass "Detailed in docs" Test item is a class{} constractor, that can be initiated
# hasPrototype()
id:48: https://utils.eaglex.net/module-x-utils.html#~hasPrototype "Detailed in docs" Test item is a class{} constractor, that can be initiated, ( alias of isClass() )
# hasProto()
id:50: https://utils.eaglex.net/module-x-utils.html#~hasProto "Detailed in docs" Check if item has access to
__proto__
# validDate()
id:51: https://utils.eaglex.net/module-x-utils.html#~validDate "Detailed in docs" Evaluate if data is an actual
Date
# selectiveArray()
id:52: https://utils.eaglex.net/module-x-utils.html#~selectiveArray "Detailed in docs" Select data from array of objects by reference, and go down recursively in order of selectBy
['a.b']
ref
# arrayWith()
id:53: https://utils.eaglex.net/module-x-utils.html#~arrayWith "Detailed in docs" Mixed array of objects and values, grab
items[]
that include specific prop.
# exFromArray()
id:54: https://utils.eaglex.net/module-x-utils.html#~exFromArray "Detailed in docs" Exclude items from array matchd by
excludes[]
, and replace withundefined
keeping index position
# pickFromArray()
id:55: https://utils.eaglex.net/module-x-utils.html#~pickFromArray "Detailed in docs" Array selection tool. Filter items in
array[item,item]
bypicks[Types|primitives,values]
conditions
# dispatcher()
id:56: https://utils.eaglex.net/module-x-utils.html#~dispatcher "Detailed in docs" Lightweight Event Dispatcher, allowing dispatch anywhere in code, very handy in
callback/hell
situations, deep promises, or other computations.
# withHoc()
id:57: https://utils.eaglex.net/module-x-utils.html#~withHoc "Detailed in docs" High order caller, concept taken from React HOC. Supports promises
# resolver()
id:58: https://utils.eaglex.net/module-x-utils.html#~resolver "Detailed in docs" Run some method that returns value in future, checking updates until timeout, or exit when data becomes available.
# dupes()
id:59: https://utils.eaglex.net/module-x-utils.html#~dupes "Detailed in docs" Duplicate item x:number of times
# loop()
id:60: https://utils.eaglex.net/module-x-utils.html#~loop "Detailed in docs" Looping each item inside of callback
# noop()
id:60a: https://utils.eaglex.net/module-x-utils.html#~noop "Detailed in docs" No operation function
# trim()
id:60b: https://utils.eaglex.net/module-x-utils.html#~trim "Detailed in docs" Trim boths sides of string, including new lines, and multiple spaces to single space
# xError()
id:61: https://utils.eaglex.net/module-x-utils.html#~xError "Detailed in docs" Extended Error(...) with extra
{id,name,fileName,lineNumber}
used to throw exception.
# referenceError()
id:62: https://utils.eaglex.net/module-x-utils.html#~referenceError "Detailed in docs" Extended ReferenceError(...) with extra
{name,fileName,lineNumber,columnNumber}
, used to throw exception.
# xrequire()
id:63: https://utils.eaglex.net/module-x-utils.html#~xrequire "Detailed in docs" Extended NodeRequire, does not throw when argument
ref=ERR_NO_THROW
is provided. THIS METHOD ONLY WORK FOR COMMON.JS modules, and not for browser
# loggerSetting()
id:64: https://utils.eaglex.net/module-x-utils.html#~loggerSetting "Detailed in docs" Allow enabling and disabling of loggers:
log/warn/error/onerror/attention/debug/alert
# resetLogging()
id:65: https://utils.eaglex.net/module-x-utils.html#~resetLogging "Detailed in docs" Change state of xutils loggers when calling at top of hoist level. Effects:
log/warn/error/onerror/attention/debug/alert
# log()
id:66: https://utils.eaglex.net/module-x-utils.html#~log "Detailed in docs" Extends console.log with
[log]
prefix
# debug()
id:67: https://utils.eaglex.net/module-x-utils.html#~debug "Detailed in docs" Extends console.log with
[debug]
prefix, producesgreen
color output
# onerror()
id:68: https://utils.eaglex.net/module-x-utils.html#~onerror "Detailed in docs" Extends console.error with
[error]
prefix, producesred
color output
# warn()
id:69: https://utils.eaglex.net/module-x-utils.html#~warn "Detailed in docs" Extends console.log with
[warn]
prefix, produces brightwhite
color output
# attention()
id:70: https://utils.eaglex.net/module-x-utils.html#~attention "Detailed in docs" Extends console.log with
[attention]
prefix, producesblue
color output
# alert()
id:71: https://utils.eaglex.net/module-x-utils.html#~alert "Detailed in docs" Extends console.log with
[alert]
prefix, producesyellow
color output. Does not work on window object ( for obvious reasons! )
# stack()
id:72: https://utils.eaglex.net/module-x-utils.html#~stack "Detailed in docs" For stack tracing, prefixed with
[STACK TRACE]
# errorTrace()
id:73: https://utils.eaglex.net/module-x-utils.html#~errorTrace "Detailed in docs" For stack tracing, prefixed with
[ERROR]
# unsubscribe()
id:74: https://utils.eaglex.net/module-x-utils.html#~unsubscribe "Detailed in docs" Unsubscribe from an RX/subscription, by providing array of active subs
# includes()
id:75: https://utils.eaglex.net/module-x-utils.html#~includes "Detailed in docs" Compare match array items with the id, if any were found return true
# spread()
id:76: https://utils.eaglex.net/module-x-utils.html#~spread "Detailed in docs" Spread data of an object as you would ...data, but with selected prop names that match the object
# spreadWith()
id:76: https://utils.eaglex.net/module-x-utils.html#~spreadWith "Detailed in docs" Spread only selected array items matching index number
Contact
Have questions, or would like to submit feedback contact eaglex.net
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago