1.0.1 • Published 6 years ago

decorate-properties v1.0.1

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

decorate-properties

build status Test coverage NPM version NPM Downloads

The repo is forked from the decorate API of mobxjs@5.

Usage

import * as decorate from 'decorate-properties' 
import { observable, computed, action } from 'mobx'
 
class Person {
    name = "John"
    age = 42
    showAge = false

    get labelText() {
        return this.showAge ? `${this.name} (age: ${this.age})` : this.name;
    }

    setAge(age) {
        this.age = age;
    }
}
// when using decorate, all fields should be specified (a class might have many more non-observable internal fields after all)
decorate(Person, {
    name: observable,
    age: observable,
    showAge: observable,
    labelText: computed,
    setAge: action,
    // array of decorator function
    foo: [computed, observable]
})

// or
decorate(new Person(), {
    name: observable,
    age: observable,
    showAge: observable,
    labelText: computed,
    setAge: action
})