@momsfriendlydevco/sort-keys
v1.1.0
Published
Deep object normalization + prettification
Readme
@MomsFriendlyDevCo/Sort-Keys
Deeply sort object keys based on first/middle/last key orders.
import sortKeys from '@momsfriendlydevco/sort-keys';
sortKeys({
foo: '1',
bar: '2',
id: '123',
comment: 'Stuff',
}, {
first: ['id'],
last: ['comment'],
}); //= {id: '123', bar: '2', foo: '1', comment: 'Stuff'}API
sortKeys(val, options)
Syncronously shallow-clone an input value (from val), sorting objecy keys by criteria.
Returns a syncronous shallow clone of the input.
Options are:
| Option | Type | Default | Description |
|--------------------------|---------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| first | Array / Set | | Collection of keys to sort first, in the order specified |
| last | Array / Set | | Collection of keys to sort last, in the order specified |
| keys | Object<String,Function> | {} | Key priority lookup. Each entry should have the key as the key and the value as a two digit string prefix to use for sorting. If the lookup os a function it will be called as (key:String,val:*) and expected to return a two character prefix. Numeric values are converted into two digit strings automatically |
| defaultOrder='50' | String | '50' | Default sort order applied to items not matching any other criteria or options.key lookup |
| defaultOrderFirst='10' | String | '10' | Default sort order applied to simple Arrays/Sets within options.first |
| defaultOrderLast='90' | String | '90' | Default sort order applied to simple Arrays/Sets within options.last |
hash(val, options)
Asyncronously (due to limitations with the native crypto output) hash an incoming object.
Returns a Async computed String hash of the input.
Options are:
| Option | Type | Default | Description |
|-----------------------|-------------------------------------------------------|-------------|-------------------------------------------------------------|
| algorithm='SHA-256' | 'SHA-1' / 'SHA-256' / 'SHA-384' / 'SHA-512' | 'SHA-256' | The algorithm to use, effects output string size and format |
| encoding='base64' | 'hex' / 'base64' / 'base64Url' / 'uint8array' | 'base64' | Encoding standard for the output function |
| trimBase64=true | Boolean | true | Trim Base64 encoded output, removing padding suffixes |
