thin-wrap
v0.0.3
Published
Thin Class Wrapper
Readme
thin-wrap
Thin Class Wrapper (experimental)
function loggerForwarder(prop, f, args, self, newTarget) {
console.log('wrap: ' + (newTarget ? 'new ' : '') + f.name + ' is called for ', (self && self.name ? self.name : self), 'with arguments', args);
return newTarget ? Reflect.construct(f, args) : f.apply(self, args);
}
wrap(XMLHttpRequest, loggerForwarder);
wrap(EventTarget, loggerForwarder);Install
Browsers
bower install --save thin-wrapNodeJS
npm install --save thin-wrapImport
Browsers
<script src="path/to/bower_components/thin-wrap/wrap.js"></script>NodeJS
const wrap = require('thin-wrap/wrap.js');API
TBD
Advantages
- Small overheads (Significantly faster than ES6 Proxy)
thisis unique and identical for each instance
Known Limitations
Architectural Limitations
Class !== Class.prototype.constructornew Class()is not trackablenew Class.prototype.constructor()ornew (wrap(Class))()is trackable- Properties without setter/getter are not trackable
Current Design Limitations
- Inherited properties are not tracked
- Generation of setter/getter for properties are not implemented
