UNPKG

class-o-mat

Version:

ALPHA VERSION ONLY: class-o-mats will help to create getter-setter functionality with validations that can be attached to a container class for easier coding. Some basic validations are included. class-o-mats also has the ability to store params as bloc

39 lines (31 loc) 932 B
import Bunyan from 'bunyan'; const log = Bunyan.createLogger({name: "EventMethodsOMat"}); import { NONE } from '../constants/types'; const eventMethods = { onDelete(...callbacks) { // HAH! I don't exist yet! }, onGet(...callbacks) { const {key} = this._params; callbacks.forEach((callback)=>this._appendEvent(callback, key, 'ON_GET')); return this; }, onSet(...callbacks) { const {key} = this._params; callbacks.forEach((callback)=>this._appendEvent(callback, key, 'ON_SET')); return this; }, _appendEvent(callback, key, EVENT_KEY) { const currentCallback = this._params[EVENT_KEY]; if (currentCallback === NONE) { this._params[EVENT_KEY] = callback; } else { this._params[EVENT_KEY] = (self, key, value)=>{ currentCallback(self, key, value); callback(self, key, value); } } } } export default eventMethods;