Contains core functions for Griffon.
- Source:
 
Methods
(static) combineAll(matchers) → {string}
Takes a set of JMESPath matchers and combines together with a &&. The result
is that all of the provided matchers must match for the resulting matcher to evaluate true
Parameters:
| Name | Type | Description | 
|---|---|---|
matchers | 
        
        Array.<string> | 
           valid JMESPath comparator expression  | 
      
- Source:
 
(static) combineAny(matchers) → {string}
Takes a set of JMESPath matchers and combines together with a ||. The result
is that any of the provided matchers can match for the resulting matcher to evaluate true
Parameters:
| Name | Type | Description | 
|---|---|---|
matchers | 
        
        Array.<string> | 
           valid JMESPath comparator expression  | 
      
- Source:
 
(static) combineNone(matchers) → {string}
Takes a set of JMESPath matchers and combines together with a &&. The result
is that all of the provided matchers must match for the resulting matcher to evaluate true
Parameters:
| Name | Type | Description | 
|---|---|---|
matchers | 
        
        Array.<string> | 
           valid JMESPath comparator expression  | 
      
- Source:
 
(static) convertPath(path) → {Array}
Takes a path and coverts it to an array by splitting the periods.
Parameters:
| Name | Type | Description | 
|---|---|---|
path | 
        
        string | 
           A valid JMESPath  | 
      
- Source:
 
(static) expand(kvps) → {object}
Expands all the provided path/value pairs, converting JMESPaths into actual object paths.
Parameters:
| Name | Type | Description | 
|---|---|---|
kvps | 
        
        object | 
           Flat object where keys are JMESPaths  | 
      
Example
import core from 'griffon-toolkit/core';
// returns { size: 's' }
core.expand({ size: 's' });
// returns { size: { width: 200, height: 300 } }
core.expand({ 'size.width': 200, 'size.height': 300 });
  - Source:
 - See:
 - 
      
- core.convertPath
 
 
(static) expandWithPaths(paths, kvps) → {object}
Expands with paths. Calls expand, but first will map the provided datas keys using the provided path map.
Parameters:
| Name | Type | Description | 
|---|---|---|
paths | 
        
        object | 
           Flat object that maps keys to JMESPaths  | 
      
kvps | 
        
        object | 
           Flat object where keys are JMESPaths or path keys  | 
      
Example
import core from 'griffon-toolkit/core';
const path = {
  width: 'size.width',
  height: 'size.height'
};
// returns { size: { width: 200, height: 300 } }
core.expandWithPath({ width: 200, height: 300 });
  - Source:
 - See:
 - 
      
- kit.expand
 
 
(static) isMatch(matcher, data) → {*}
Tests to see if the specified data matches the specified JMESPath filter.
Parameters:
| Name | Type | Description | 
|---|---|---|
matcher | 
        
        string | 
           A valid JMESPath comparator expression  | 
      
data | 
        
        Array.<object> | 
           Item to match against  | 
      
- Source:
 
(static) match(matcher, data) → {*}
Performs a JMESPath filter using the provided expression.
Parameters:
| Name | Type | Description | 
|---|---|---|
matcher | 
        
        string | 
           A valid JMESPath comparator expression  | 
      
data | 
        
        Array.<object> | 
           Data to search  | 
      
- Source:
 
(static) modify(modifications, matcher, data) → {*}
Matches data from the event list and performs operations on the results. You can provide an object that will be merged into the resulting data.
Parameters:
| Name | Type | Description | 
|---|---|---|
modifications | 
        
        object | 
           An object that gets merged with the result. Optionally can be a function that takes the matching data and returns and object  | 
      
matcher | 
        
        string | 
           A valid JMESPath comparator expression  | 
      
data | 
        
        Array.<object> | 
           Data to search  | 
      
Examples
// takes all objects and adds a red color
const makeRed = modify({ color: 'red' }, '*');
const result = makeRed([{ color: 'yellow' }, { name: 'Joe' } ]);
// result is [{ color: 'red' }, { name: 'Joe', color: 'red' } ]
  // can provide a modification function
const applyGender = modify((data) => {
 if (data.name === 'Joe') { return { gender: 'male' }; }
 return { gender: 'female' };
}, '*');
const result = applyGender([{ name: 'Jill' }, { name: 'Joe' } ]);
// result is [{ color: 'red', gender: 'female' }, { name: 'Joe', gender: 'male' } ]
  - Source:
 - See:
 - 
      
- core.modifyBulk
 
 
(static) modifyBulk(instructions, data) → {*}
Performs a series of match and modify operations on the data. Takes an array
of { matcher, modifications } and will perform each on the provided data.
Note you can use mods as an alias for modifications.
Parameters:
| Name | Type | Description | 
|---|---|---|
instructions | 
        
        string | 
           { matcher, modifications }  | 
      
data | 
        
        Array.<object> | 
           Data to search  | 
      
Example
// takes all objects and adds a red color
const instructions = [
  { matcher: "*", modification: { color: 'red' } }
  { matcher: "name=='Joe'", mods: { gender: 'male' } }
];
const result = bulkModify(instructions, [{ color: 'yellow' }, { name: 'Joe' } ]);
// result is [{ color: 'red' }, { name: 'Joe', color: 'red', gender: 'male' } ]
  - Source:
 - See:
 - 
      
- core.modify
 
 
(static) not(matcher) → {string}
Takes a matcher and returns the opposite (!) matcher.
Parameters:
| Name | Type | Description | 
|---|---|---|
matcher | 
        
        string | 
           valid JMESPath comparator expression  | 
      
- Source:
 
(static) search(path, data) → {*}
Performs a JMESPath lookup on the provided data.
Parameters:
| Name | Type | Description | 
|---|---|---|
path | 
        
        string | 
           A valid JMESPath  | 
      
data | 
        
        * | 
           Data to search  | 
      
- Source: