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
JavaScript
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;