index.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. ;(function(define){define(function(require,exports,module){
  2. function denodeify(nodeStyleFunction, filter) {
  3. 'use strict';
  4. return function() {
  5. var self = this;
  6. var functionArguments = new Array(arguments.length + 1);
  7. for (var i = 0; i < arguments.length; i += 1) {
  8. functionArguments[i] = arguments[i];
  9. }
  10. function promiseHandler(resolve, reject) {
  11. function callbackFunction() {
  12. var args = new Array(arguments.length);
  13. for (var i = 0; i < args.length; i += 1) {
  14. args[i] = arguments[i];
  15. }
  16. if (filter) {
  17. args = filter.apply(self, args);
  18. }
  19. var error = args[0];
  20. var result = args[1];
  21. if (error) {
  22. return reject(error);
  23. }
  24. return resolve(result);
  25. }
  26. functionArguments[functionArguments.length - 1] = callbackFunction;
  27. nodeStyleFunction.apply(self, functionArguments);
  28. }
  29. return new Promise(promiseHandler);
  30. };
  31. }
  32. module.exports = denodeify;
  33. });})(typeof define=='function'&&define.amd?define
  34. :(function(n,w){'use strict';return typeof module=='object'?function(c){
  35. c(require,exports,module);}:function(c){var m={exports:{}};c(function(n){
  36. return w[n];},m.exports,m);w[n]=m.exports;};})('denodeify',this));