chain-able
Version:
interfaces that describe their intentions.
31 lines (27 loc) • 2.72 kB
JavaScript
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