u-proto

7.1.9 • Public • Published

proto Build Status Coverage Status

apply

var Setter = require('y-setter'),
    apply = require('u-proto/apply'),
    Detacher = require('detacher'),
 
    setter = new Setter(),
    getter = setter.getter,
    c = new Detacher(),
 
    check = document.createElement('input'),
    info = document.createElement('span'),
    button = document.createElement('input');
 
check[apply]({
  type: 'checkbox',
  checked: setter
});
 
info[apply]({
  textContent: getter.to(v => v ? 'Checked' : 'Not checked'),
  style: {
    color: 'blue'
  }
},c);
 
button[apply]({
  type: 'button',
  value: 'Unbind',
  onclick: () => c.detach()
});
 
document.body.appendChild(check);
document.body.appendChild(info);
document.body.appendChild(document.createElement('br'));
document.body.appendChild(button);

The apply method copies properties from one object to another recursively, applying prefixes if necessary when dealing with CSSStyleDeclarations. When using y-setter's Getters, a connection will be established. When using Setters, if the object has an addEventListener method it will be used to update the value of the Setter accordingly.

Hybrids can be used to maintain a double binding. Connections can be terminated by passing a Detacher as the second argument, to which the connections will be added. Values are updated on common events such as click and input. You may dispatch any of these events manually if you want to force the update process.

define

var define = require('u-proto/define');
 
function Foo(){}
Foo.prototype[define]({
 
  get value(){ return 'bar'; },
  set value(v){ throw new Error() },
 
  doNothing: function(){
    <!-- :D
  }
 
},{configurable: true});

Copies properties descriptors from an object to another, making them non-enumerable, non-writable and non-configurable by default. The second argument may be used to override those defaults.

prefix

var prefix = require('u-proto/prefix');
 
navigator[prefix]('getUserMedia',[
  {audio: true},function(){},function(){}
]);

Automatically guesses the correct prefix for a given property of a given object. The first argument is the name of the property and the second the list of arguments with which it will be called. If the second argument is not present, the value of the property will be returned instead.

Readme

Keywords

none

Package Sidebar

Install

npm i u-proto

Weekly Downloads

27

Version

7.1.9

License

Apache-2.0

Last publish

Collaborators

  • manvalls