@kingjs/descriptor.filter
v1.0.6
Published
Filters and renames properties.
Downloads
19
Readme
@kingjs/descriptor.filter
Filters and renames properties.
Usage
Create a new descriptor and the copy values in properties $alpha, $bravo, and $delta from an existing descriptor into properties with names alpha, bravo, and delta like this:
var filter = require('@kingjs/descriptor.filter');
filter.call({
$alpha: 0,
$bravo: 1,
$delta: 2,
value: 3
}, {
$alpha: 'alpha',
$bravo: 'bravo',
$delta: 'delta'
});result:
{
alpha: 0,
bravo: 1,
delta: 2
}The same result can also be achieved procedurally like this:
var filter = require('@kingjs/descriptor.filter');
filter.call({
$alpha: 0,
$bravo: 1,
$delta: 2,
value: 3
}, function(name) {
if (name == 'value')
return undefined;
return name.substr(1);
});result:
{
alpha: 0,
bravo: 1,
delta: 2
}API
declare function filter(
this: Descriptor,
source: Descriptor,
map: {
[index: string]: string | number,
[index: number]: string | number
} | {
(name: string): string | number
},
thisArgs?
): DescriptorInterfaces
Descriptor: see @kingjs/descriptor
Parameters
this: The descriptor whose renamed properties will be copied to a new descriptor.map: Either- A descriptor containing a mapping of property names on
thisto names on the new descriptor. Properties onthisnot included inmapwill not be copied. - A callback which maps names on
thisto names on the new descriptor. If the callback returnsundefinedthen the property value is not copied.
- A descriptor containing a mapping of property names on
thisArg: Thethisargument to pass tomapshouldmapbe a function.
Returns
A new descriptor with a copy of a subset of properties from this but with different property names according to map or null if no properties were copied.
Remarks
No check is made to ensure mapped names are unique. Behavior is undefined when if duplicate names are provided.
Install
With npm installed, run
$ npm install @kingjs/descriptor.filterLicense
MIT
