NodeUtils.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. * @author sunag / http://www.sunag.com.br/
  3. */
  4. var NodeUtils = {
  5. elements: [ 'x', 'y', 'z', 'w' ],
  6. addShortcuts: function () {
  7. function applyShortcut( proxy, property, subProperty ) {
  8. if ( subProperty ) {
  9. return {
  10. get: function () {
  11. return this[ proxy ][ property ][ subProperty ];
  12. },
  13. set: function ( val ) {
  14. this[ proxy ][ property ][ subProperty ] = val;
  15. }
  16. };
  17. } else {
  18. return {
  19. get: function () {
  20. return this[ proxy ][ property ];
  21. },
  22. set: function ( val ) {
  23. this[ proxy ][ property ] = val;
  24. }
  25. };
  26. }
  27. }
  28. return function addShortcuts( proto, proxy, list ) {
  29. var shortcuts = {};
  30. for ( var i = 0; i < list.length; ++ i ) {
  31. var data = list[ i ].split( "." ),
  32. property = data[0],
  33. subProperty = data[1];
  34. shortcuts[ property ] = applyShortcut( proxy, property, subProperty );
  35. }
  36. Object.defineProperties( proto, shortcuts );
  37. };
  38. }()
  39. };
  40. export { NodeUtils };