angular-meteor-promiser
Advanced tools
+41
| # angular-meteor-promiser | ||
| Turns Meteor subscribe, call, apply callbacks into promises | ||
| ## Install | ||
| ```bash | ||
| npm install angular-meteor-promiser | ||
| ``` | ||
| ### `$promiser` | ||
| #### subscribe : *Promise* | ||
| Same arguments as `Meteor.subscribe` but without callback. | ||
| `resolve()` receives a handle that provides `stop()` and `ready()` methods. | ||
| #### call : *Promise* | ||
| Same arguments as `Meteor.call`. | ||
| #### apply : *Promise* | ||
| Same arguments as `Meteor.apply`. | ||
| #### any : *Promise* | ||
| ```js | ||
| function foo(bar) { | ||
| if (!bar) { | ||
| throw new Error('Bar, we need you!'); | ||
| } | ||
| return bar; | ||
| } | ||
| $promiser.any(() => foo('bar')) | ||
| .then((data) => { ... }) | ||
| .catch((error) => { ... }); | ||
| ``` |
@@ -14,14 +14,8 @@ "use strict"; | ||
| return this._promise(function (resolve, reject) { | ||
| console.log('sub'); | ||
| var handle = meteor_1.Meteor.subscribe.apply(meteor_1.Meteor, [name].concat(args, [{ | ||
| onReady: function () { | ||
| console.log('onready'); | ||
| resolve(handle); | ||
| }, | ||
| onStop: function () { | ||
| console.log('onstop'); | ||
| reject(); | ||
| }, | ||
| onError: function () { | ||
| console.log('onerror'); | ||
| } | ||
@@ -63,6 +57,14 @@ }])); | ||
| }; | ||
| Promiser.prototype.any = function (fn) { | ||
| return this._promise(function (resolve, reject) { | ||
| try { | ||
| resolve(fn()); | ||
| } | ||
| catch (error) { | ||
| reject(error); | ||
| } | ||
| }); | ||
| }; | ||
| Promiser.prototype._promise = function (fn) { | ||
| var d = this.$q.defer(); | ||
| fn(d.resolve, d.reject); | ||
| return d.promise; | ||
| return this.$q(fn); | ||
| }; | ||
@@ -69,0 +71,0 @@ return Promiser; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"angular-meteor-promiser.js","sourceRoot":"","sources":["angular-meteor-promiser.ts"],"names":[],"mappings":";AAAA,IAAY,OAAO,WAAM,SAAS,CAAC,CAAA;AAEnC,uBAEO,eAAe,CAAC,CAAA;AAEvB;IAGE,kBAAY,EAAO;QACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAEM,4BAAS,GAAhB,UAAiB,IAAI;QAAE,cAAO;aAAP,WAAO,CAAP,sBAAO,CAAP,IAAO;YAAP,6BAAO;;QAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAC,OAAO,EAAE,MAAM;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,IAAM,MAAM,GAAG,eAAM,CAAC,SAAS,OAAhB,eAAM,GAAW,IAAI,SAAK,IAAI,GAAE;gBAC7C,OAAO;oBACL,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACvB,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM;oBACJ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;oBACrB,MAAM,EAAE,CAAC;gBACX,CAAC;gBACD,OAAO;oBACL,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACzB,CAAC;aACF,GAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,uBAAI,GAAX,UAAY,IAAI;QAAE,cAAO;aAAP,WAAO,CAAP,sBAAO,CAAP,IAAO;YAAP,6BAAO;;QACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAC,OAAO,EAAE,MAAM;YACnC,eAAM,CAAC,IAAI,OAAX,eAAM,GAAM,IAAI,SAAK,IAAI,GAAE,UAAC,KAAK,EAAE,IAAI;gBACrC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,GAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,wBAAK,GAAZ,UAAa,IAAI;QAAE,cAAO;aAAP,WAAO,CAAP,sBAAO,CAAP,IAAO;YAAP,6BAAO;;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAC,OAAO,EAAE,MAAM;YACnC,eAAM,CAAC,KAAK,OAAZ,eAAM,GAAO,IAAI,SAAK,IAAI,GAAE,UAAC,KAAK,EAAE,IAAI;gBACtC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,GAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,2BAAQ,GAAhB,UAAiB,EAAE;QACjB,IAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAE1B,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAExB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IACH,eAAC;AAAD,CAAC,AAzDD,IAyDC;AAED,IAAM,IAAI,GAAG,yBAAyB,CAAC;AACvC;kBAAe,IAAI,CAAC;AAEpB,OAAO;KACJ,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;KAChB,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC"} | ||
| {"version":3,"file":"angular-meteor-promiser.js","sourceRoot":"","sources":["angular-meteor-promiser.ts"],"names":[],"mappings":";AAAA,IAAY,OAAO,WAAM,SAAS,CAAC,CAAA;AAEnC,uBAEO,eAAe,CAAC,CAAA;AAEvB;IAGE,kBAAY,EAAO;QACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAEM,4BAAS,GAAhB,UAAiB,IAAI;QAAE,cAAO;aAAP,WAAO,CAAP,sBAAO,CAAP,IAAO;YAAP,6BAAO;;QAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAC,OAAO,EAAE,MAAM;YACnC,IAAM,MAAM,GAAG,eAAM,CAAC,SAAS,OAAhB,eAAM,GAAW,IAAI,SAAK,IAAI,GAAE;gBAC7C,OAAO;oBACL,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM;oBACJ,MAAM,EAAE,CAAC;gBACX,CAAC;aACF,GAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,uBAAI,GAAX,UAAY,IAAI;QAAE,cAAO;aAAP,WAAO,CAAP,sBAAO,CAAP,IAAO;YAAP,6BAAO;;QACvB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAC,OAAO,EAAE,MAAM;YACnC,eAAM,CAAC,IAAI,OAAX,eAAM,GAAM,IAAI,SAAK,IAAI,GAAE,UAAC,KAAK,EAAE,IAAI;gBACrC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,GAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,wBAAK,GAAZ,UAAa,IAAI;QAAE,cAAO;aAAP,WAAO,CAAP,sBAAO,CAAP,IAAO;YAAP,6BAAO;;QACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAC,OAAO,EAAE,MAAM;YACnC,eAAM,CAAC,KAAK,OAAZ,eAAM,GAAO,IAAI,SAAK,IAAI,GAAE,UAAC,KAAK,EAAE,IAAI;gBACtC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;oBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,GAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,sBAAG,GAAV,UAAW,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAC,OAAO,EAAE,MAAM;YACnC,IAAI,CAAC;gBACH,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAChB,CAAE;YAAA,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,2BAAQ,GAAhB,UAAiB,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IACH,eAAC;AAAD,CAAC,AAzDD,IAyDC;AAED,IAAM,IAAI,GAAG,yBAAyB,CAAC;AACvC;kBAAe,IAAI,CAAC;AAEpB,OAAO;KACJ,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;KAChB,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC"} |
@@ -16,14 +16,8 @@ import * as angular from 'angular'; | ||
| return this._promise((resolve, reject) => { | ||
| console.log('sub'); | ||
| const handle = Meteor.subscribe(name, ...args, { | ||
| onReady() { | ||
| console.log('onready'); | ||
| resolve(handle); | ||
| }, | ||
| onStop() { | ||
| console.log('onstop') | ||
| reject(); | ||
| }, | ||
| onError() { | ||
| console.log('onerror'); | ||
| } | ||
@@ -58,8 +52,14 @@ }); | ||
| public any(fn) { | ||
| return this._promise((resolve, reject) => { | ||
| try { | ||
| resolve(fn()); | ||
| } catch (error) { | ||
| reject(error); | ||
| } | ||
| }); | ||
| } | ||
| private _promise(fn) { | ||
| const d = this.$q.defer(); | ||
| fn(d.resolve, d.reject); | ||
| return d.promise; | ||
| return this.$q(fn); | ||
| } | ||
@@ -66,0 +66,0 @@ } |
+1
-1
| { | ||
| "name": "angular-meteor-promiser", | ||
| "version": "0.0.1", | ||
| "version": "0.1.0", | ||
| "description": "Turns Meteor subscribe, call, apply callbacks into promises", | ||
@@ -5,0 +5,0 @@ "main": "angular-meteor-promiser.js", |
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
7269
8.3%8
14.29%149
2.05%1
-50%42
Infinity%