2.4.0 • Published 4 years ago

x-utils-es v2.4.0

Weekly downloads
59
License
MIT
Repository
github
Last release
4 years ago

x-utils-es

StatementsBranchesFunctionsLines
StatementsBranchesFunctionsLines

  Simple javascript utility, lodash alternative, to help with type validation, with no dependencies.

  • esmodule supports esnext, es2015 and umd
  • 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 promise sq()

# 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 of isFalse()

# isFalse()

id:30: https://utils.eaglex.net/module-x-utils.html#~isFalse "Detailed in docs" Check if item is lt < 1, false, null or undefined

# 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{} and source{}

# exactKeyMatch()

id:39: https://utils.eaglex.net/module-x-utils.html#~exactKeyMatch "Detailed in docs" Test if ALL keys match between object{} and source{}

# 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 to trueVal()

# 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, provided value, and primitive value

# isEmpty()

id:44: https://utils.eaglex.net/module-x-utils.html#~isEmpty "Detailed in docs" Check item has some value, set of props, or length

# 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 with undefined 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] by picks[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, produces green color output

# onerror()

id:68: https://utils.eaglex.net/module-x-utils.html#~onerror "Detailed in docs" Extends console.error with [error] prefix, produces red color output

# warn()

id:69: https://utils.eaglex.net/module-x-utils.html#~warn "Detailed in docs" Extends console.log with [warn] prefix, produces bright white color output

# attention()

id:70: https://utils.eaglex.net/module-x-utils.html#~attention "Detailed in docs" Extends console.log with [attention] prefix, produces blue color output

# alert()

id:71: https://utils.eaglex.net/module-x-utils.html#~alert "Detailed in docs" Extends console.log with [alert] prefix, produces yellow 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

2.4.0

4 years ago

2.3.1

4 years ago

2.3.0

4 years ago

2.2.1

4 years ago

2.2.2

4 years ago

1.8.2

4 years ago

1.8.0

4 years ago

2.2.0

4 years ago

2.0.2

4 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.7

4 years ago

2.0.6

4 years ago

2.0.9

4 years ago

2.0.8

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

2.1.9

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.4

4 years ago

2.1.3

4 years ago

2.1.6

4 years ago

2.1.5

4 years ago

2.1.8

4 years ago

2.1.7

4 years ago

2.1.0

4 years ago

1.8.4

4 years ago

1.8.3

4 years ago

1.7.6

4 years ago

1.7.5

4 years ago

1.7.4

4 years ago

1.7.3

4 years ago

1.7.2

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.9

4 years ago

1.6.8

4 years ago

1.6.7

4 years ago

1.6.6

4 years ago

1.6.5

4 years ago

1.6.4

4 years ago

1.6.3

4 years ago

1.6.2

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.5.9

4 years ago

1.5.8

4 years ago

1.5.7

4 years ago

1.5.6

4 years ago

1.5.5

4 years ago

1.5.4

4 years ago

1.5.3

4 years ago

1.5.2

5 years ago

1.5.1

5 years ago

1.5.0

5 years ago

1.4.6

5 years ago

1.4.5

5 years ago

1.4.4

5 years ago

1.4.3

5 years ago

1.4.2

5 years ago

1.4.1

5 years ago

1.3.7

5 years ago

1.3.6

5 years ago

1.3.5

5 years ago

1.3.4

5 years ago

1.4.0

5 years ago

1.3.9

5 years ago

1.3.8

5 years ago

1.3.3

5 years ago

1.3.2

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.9

5 years ago

1.2.8

5 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.0

5 years ago

1.2.1

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.1

5 years ago

1.0.0-beta

5 years ago

1.0.0

5 years ago