UNPKG

foop

Version:

interfaces that describe their intentions.

21 lines (17 loc) 1.92 kB
var isUndefined = require('../deps/is/undefined') function copySetIntoFunction(name, parent) { var auto = function (arg) { if (isUndefined(arg)) { parent.get(name) } else { parent.set(name, arg) Object.assign(parent[name], arg) } } // so we know if we defaulted them auto.getterOnSet = true return this.onSet(auto).onGet(auto).onCall(auto) } module.exports = copySetIntoFunction //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0dGVyT25TZXQuanMiLCJzb3VyY2VzIjpbImdldHRlck9uU2V0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzVW5kZWZpbmVkID0gcmVxdWlyZSgnLi4vZGVwcy9pcy91bmRlZmluZWQnKVxuXG5mdW5jdGlvbiBjb3B5U2V0SW50b0Z1bmN0aW9uKG5hbWUsIHBhcmVudCkge1xuICBjb25zdCBhdXRvID0gYXJnID0+IHtcbiAgICBpZiAoaXNVbmRlZmluZWQoYXJnKSkge1xuICAgICAgcGFyZW50LmdldChuYW1lKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHBhcmVudC5zZXQobmFtZSwgYXJnKVxuICAgICAgT2JqZWN0LmFzc2lnbihwYXJlbnRbbmFtZV0sIGFyZylcbiAgICB9XG4gIH1cblxuICAvLyBzbyB3ZSBrbm93IGlmIHdlIGRlZmF1bHRlZCB0aGVtXG4gIGF1dG8uZ2V0dGVyT25TZXQgPSB0cnVlXG4gIHJldHVybiB0aGlzLm9uU2V0KGF1dG8pLm9uR2V0KGF1dG8pLm9uQ2FsbChhdXRvKVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcHlTZXRJbnRvRnVuY3Rpb25cbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDOztBQUVuRCxTQUFTLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7RUFDekNBLEdBQUssQ0FBQyxJQUFJLEdBQUcsVUFBQSxHQUFHLENBQUEsQ0FBQyxBQUFHO0lBQ2xCLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO01BQ3BCLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0tBQ2pCO1NBQ0k7TUFDSCxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUM7TUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDO0tBQ2pDO0dBQ0Y7OztFQUdELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSTtFQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Q0FDakQ7O0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxtQkFBbUI7In0=