UNPKG

chain-able

Version:

interfaces that describe their intentions.

31 lines (27 loc) 2.72 kB
var isFunction = require('../deps/is/function') // @TODO optimize size here ez module.exports = function(methods, name) { var this$1 = this; var obj = methods[name] if (isFunction(obj)) { return function () { // @TODO: IS THIS THE BEST DEFAULT?! this$1.define(false) this$1.onCall(obj) // .onSet(obj).onGet(obj) } } else { return function () { this$1.from(obj) // @NOTE: this is reserved if (obj.set) { this$1.onSet(obj.set) } if (obj.get) { this$1.onGet(obj.get) } if (obj.call) { this$1.onCall(obj.call) } if (obj.set && obj.get) { this$1.define().getSet() } } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqLmpzIiwic291cmNlcyI6WyJvYmouanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2RlcHMvaXMvZnVuY3Rpb24nKVxuXG4vLyBAVE9ETyBvcHRpbWl6ZSBzaXplIGhlcmUgZXpcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obWV0aG9kcywgbmFtZSkge1xuICBjb25zdCBvYmogPSBtZXRob2RzW25hbWVdXG5cbiAgaWYgKGlzRnVuY3Rpb24ob2JqKSkge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAvLyBAVE9ETzogSVMgVEhJUyBUSEUgQkVTVCBERUZBVUxUPyFcbiAgICAgIHRoaXMuZGVmaW5lKGZhbHNlKVxuICAgICAgdGhpcy5vbkNhbGwob2JqKVxuICAgICAgLy8gLm9uU2V0KG9iaikub25HZXQob2JqKVxuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhpcy5mcm9tKG9iailcbiAgICAgIC8vIEBOT1RFOiB0aGlzIGlzIHJlc2VydmVkXG4gICAgICBpZiAob2JqLnNldCkgdGhpcy5vblNldChvYmouc2V0KVxuICAgICAgaWYgKG9iai5nZXQpIHRoaXMub25HZXQob2JqLmdldClcbiAgICAgIGlmIChvYmouY2FsbCkgdGhpcy5vbkNhbGwob2JqLmNhbGwpXG4gICAgICBpZiAob2JqLnNldCAmJiBvYmouZ2V0KSB7XG4gICAgICAgIHRoaXMuZGVmaW5lKCkuZ2V0U2V0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjb25zdCIsInRoaXMiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQzs7O0FBR2pELE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7O0FBQUE7RUFDeENBLEdBQUssQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQzs7RUFFekIsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDbkIsT0FBTyxTQUFBLEdBQUcsQUFBRzs7TUFFWEMsTUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7TUFDbEJBLE1BQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDOztLQUVqQjtHQUNGO09BQ0k7SUFDSCxPQUFPLFNBQUEsR0FBRyxBQUFHO01BQ1hBLE1BQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDOztNQUVkLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFBQSxNQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBQTtNQUNoQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBQUEsTUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUE7TUFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUFBLE1BQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFBO01BQ25DLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFO1FBQ3RCQSxNQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFO09BQ3ZCO0tBQ0Y7R0FDRjtDQUNGOyJ9