immunity
🧱What is the Immunity?
Immunity is a set of helper methods in order to construct a new version of data without mutating/updating existing data structure in-place.
Compared to its alternatives, immunity only provides utility functions instead of delivering new data types/structures as a solution.
Additionally, as a library, Immunity is completely tree-shaking-friendly. Your favorite module bundler can easily inline the functionality you need with no extra configuration, instead of bundling the whole Immunity package.
Quick start
Execute npm install immunity
or yarn add immunity
to install immunity and its dependencies into your project directory.
Usage of modules
appendToArray(source, ...items)
appends new item(s) to an array or a generator.
; const source = 'a' 'b' ;const newOne = ; // output: Result: ['a','b','c']console;// output: Is Same: falseconsole;
appendToObject(source, ...items)
appends new item(s) to an object.
; const source = a: 1 b: 2 ;const newOne = ; // output: Result: {'a':1,'b':2,'c':3}console;// output: Is Same: falseconsole;
copy(source)
copies an instance with its constructor.
; {} const source = ;const newOne = ; // output: Result: class dummy {}console;// output: Is Same: falseconsole;
dropFromArray(source, number)
skips first n items from an array or a generator.
; const source = 'a' 'b' 'c' ;const newOne = ; // output: Result: ['b','c']console;// output: Is Same: falseconsole;
dropFromObject(source, number)
skips first n items from an object.
; const source = a: 1 b: 2 c: 3 ;const newOne = ; // output: Result: {'b':2,'c':3}console;// output: Is Same: falseconsole;
filterArray(instance, predicate)
returns matching items from an array or a generator.
; const source = 1 2 3 4 5 ;const newOne = ; // output: Result: [1,2,3]console;// output: Is Same: falseconsole;
filterObject(instance, predicate)
returns matching items from an object.
; const source = a: 1 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'a':1,'b':2,'c':3}console;// output: Is Same: falseconsole;
mapArray(instance, predicate)
creates a new array with the results of calling a provided function on every element in the calling array.
; const source = 1 2 3 4 5 ;const newOne = ; // output: Result: [0,1,2,3,4]console;// output: Is Same: falseconsole;
mapObject(instance, predicate)
creates a new object with the results of calling a provided function on every element in the calling object.
; const source = a: 1 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'a':0,'b':1,'c':2,'d':3,'e':4}console;// output: Is Same: falseconsole;
mergeArrays(...sources)
merges two or more arrays into one.
; const source1 = 1 2 3 ;const source2 = 4 5 ;const newOne = ; // output: Result: [1,2,3,4,5]console;// output: Is Same: falseconsole;
mergeObjects(...sources)
merges two or more objects into one.
; const source1 = a: 1 b: 2 c: 3 ;const source2 = d: 4 e: 5 ;const newOne = ; // output: Result: {'a':1,'b':2,'c':3,'d':4,'e':5}console;// output: Is Same: falseconsole;
pickFromArray(source, items)
returns matching and not matching items from an array or a generator.
; const source = 1 2 3 4 5 ;const newOne = ; // output: Result: {'items':[2,3],'rest':[1,4,5]}console;// output: Is Same: falseconsole;
pickFromObject(source, keys)
returns matching and not matching items from an object.
; const source = a: 1 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'items':{'b':2,'c':3},'rest':{'a':1,'d':4,'e':5}}console;// output: Is Same: falseconsole;
prependToArray(source, ...items)
prepends new item(s) to an array or a generator.
; const source = 'b' 'c' ;const newOne = ; // output: Result: ['a','b','c']console;// output: Is Same: falseconsole;
prependToObject(source, ...items)
prepends new item(s) to an object.
; const source = b: 2 c: 3 ;const newOne = ; // output: Result: {'a':1,'b':2,'c':3}console;// output: Is Same: falseconsole;
removeFirstMatchFromArray(source, predicate)
removes first matching item from an array or a generator.
; const source = 1 5 2 3 4 5 ;const newOne = ; // output: Result: [1,2,3,4,5]console;// output: Is Same: falseconsole;
removeFirstMatchFromObject(source, predicate)
removes first matching item from an object.
; const source = a: 1 f: 5 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'a':1,'b':2,'c':3,'d':4,'e':5}console;// output: Is Same: falseconsole;
removeFromArray(source, ...items)
removes specified item(s) from an array or a generator.
; const source = 1 2 3 4 5 ;const newOne = ; // output: Result: [1,4,5]console;// output: Is Same: falseconsole;
removeKeyFromObject(source, ...keys)
removes items with specified key(s) from an object.
; const source = a: 1 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'a':1,'d':4,'e':5}console;// output: Is Same: falseconsole;
removeValueFromObject(source, ...values)
removes items with specified value(s) from an object or a generator.
; const source = a: 1 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'a':1,'d':4,'e':5}console;// output: Is Same: falseconsole;
reverseArray(source)
reverses an array or a generator content.
; const source = 1 2 3 4 5 ;const newOne = ; // output: Result: [5,4,3,2,1]console;// output: Is Same: falseconsole;
reverseObject(source)
reverses an object content.
; const source = a: 1 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'e':5,'d':4,'c':3,'b':2,'a':1}console;// output: Is Same: falseconsole;
splitArray(source, number)
splits an array or a generator content from specified index.
; const source = 1 2 3 4 5 ;const newOne = ; // output: Result: {'items':[1,2,3],'rest':[4,5]}console;// output: Is Same: falseconsole;
splitLastArray(source, number)
splits an array or a generator content from specified last index.
; const source = 1 2 3 4 5 ;const newOne = ; // output: Result: {'items':[4,5],'rest':[1,2,3]}console;// output: Is Same: falseconsole;
splitObject(source, number)
splits an object content from specified index.
; const source = a: 1 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'items':{'a':1,'b':2,'c':3},'rest':{'d':4,'e':5}}console;// output: Is Same: falseconsole;
splitLastObject(source, number)
splits an object content from specified last index.
; const source = a: 1 b: 2 c: 3 d: 4 e: 5 ;const newOne = ; // output: Result: {'items':{'d':4,'e':5},'rest':{'a':1,'b':2,'c':3}}console;// output: Is Same: falseconsole;
takeFromArray(source, number)
takes first n items from an array or a generator.
; const source = 'a' 'b' 'c' ;const newOne = ; // output: Result: ['a','b']console;// output: Is Same: falseconsole;
takeFromObject(source, number)
takes first n items from an object.
; const source = a: 1 b: 2 c: 3 ;const newOne = ; // output: Result: {'a':1,'b':2}console;// output: Is Same: falseconsole;
Todo List
See GitHub Projects for more.
Requirements
- node.js (https://nodejs.org/)
License
Apache 2.0, for further details, please see LICENSE file
Contributing
See contributors.md
It is publicly open for any contribution. Bugfixes, new features and extra modules are welcome.
- To contribute to code: Fork the repo, push your changes to your fork, and submit a pull request.
- To report a bug: If something does not work, please report it using GitHub Issues.