{% hint style="info" %}
This stamp (aka behaviour) is built into the stampit since stampit@4.2.0
and @stamp/it@1.1
.
{% endhint %}
Changes the Stamp.name
property using the new ES6 feature.
Supported platforms: node>=4, iOS>=10, Edge, FF, Chrome, Safari
If used in a non-supported environment (node <v4, or IE any version) then nothing will throw. But the Stamp.name
will always be "Stamp"
.
Default behaviour (without this stamp):
const MyRegularStamp = compose(...);
console.log(MyRegularStamp.name); // 'Stamp'
New behaviour:
import Named from '@stamp/named';
const MyNamedStamp = MyRegularStamp.compose(Named).setName('MyNamedStamp');
Or if you don't want to import the stamp you can import only the method:
import {setName} from '@stamp/named';
const MyNamedStamp = MyRegularStamp.compose(setName('MyNamedStamp'));
Then stamp receives a different name instead of the default "Stamp":
console.log(MyNamedStamp.name); // 'MyNamedStamp'
Derived stamps behaviour:
// All derived stamps will also be named 'MyNamedStamp' until changed:
let Stamp2 = compose(..., MyNamedStamp, ...);
console.log(Stamp2.name); // WARNING! Still 'MyNamedStamp' !!!
// Overwriting the name
Stamp2 = Stamp2.setName('Stamp2');
console.log(Stamp2.name); // 'Stamp2' :)