UNPKG

823 BJavaScriptView Raw
1'use strict';
2
3var Promise = require('bluebird');
4
5var generateId = require('./generate-id');
6
7var ID_LENGTH = 8;
8var ID_PREFIX = '__aSyNcId_<_';
9var ID_SUFFIX = '__';
10
11function resolve(cache, fn, context) {
12 var id = ID_PREFIX + generateId(ID_LENGTH) + ID_SUFFIX;
13 cache[id] = new Promise(function(passed, failed) {
14 try {
15 fn(context, function(res) {
16 passed(res);
17 });
18 } catch (error) {
19 failed(error);
20 }
21 });
22 return id;
23}
24
25function done(cache, callback) {
26 Promise.props(cache).then(function(values) {
27 callback(null, values);
28 }).catch(function(error) {
29 callback(error);
30 });
31}
32
33function hasResolvers(text) {
34 if (text.search(ID_PREFIX) > 0) {
35 return true;
36 }
37 return false;
38}
39
40module.exports = {
41 done: done,
42 hasResolvers: hasResolvers,
43 resolve: resolve
44};