@stamp/arg-over-prop

Assign properties passed to the stamp factory

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
@stamp/arg-over-prop
Minified + gzip package size for @stamp/arg-over-prop in KB

Readme

@stamp/arg-over-prop

Assign properties passed to the stamp factory

Usage

import ArgOverProp from '@stamp/arg-over-prop';

const StampA = compose({
    properties: {
        foo: 1
    }
})
.compose(ArgOverProp).argOverProp('foo');

const instance1 = StampA(); // { foo: 1 }
const instance2 = StampA({ foo: 999 }); // { foo: 999 }

A shorter but identical version of the same StampA:

const StampA = ArgOverProp.argOverProp({foo: 1});

Or if you don't want to import the stamp you can import only the method:

import {argOverProp} from '@stamp/arg-over-prop';
const StampA = argOverProp({foo: 1});

Basically, the arg-over-prop stamp sets properties in an initializer. The code below is what the StampA becomes.

const StampA = compose({
    properties: {
        foo: 1
    },
    initializers: [function (opts) {
        this.foo = opts.foo;
    }]
})

Example

import ArgOverProp from '@stamp/arg-over-prop';

const HasColor = ArgOverProp.argOverProp('color', 'background');
const HasPoint = ArgOverProp.argOverProp({ x: 0, y: 0 });

const ColorPoint = compose(HasColor, HasPoint);

const point = ColorPoint({ color: 'blue', x: 15 });

console.log(point.color); // "blue"
console.log(point.background); // undefined
console.log(point.x); // 15
console.log(point.y); // 0

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.