2 * @fileoverview A sample file to test type-checking
5 var kew = require('../kew')
6 var Promise = kew.Promise
8 var allSettled = kew.allSettled
10 var nfcall = kew.nfcall
11 var bindPromise = kew.bindPromise
16 var callback = function (result) {};
20 @param {Array} context
22 var callbackWithContext = function (result, context) {};
28 var callbackNeedsBind = function (n, result) {};
33 var errorCallback = function (error) {};
37 @param {Array} context
39 var errorCallbackWithContext = function (error, context) {};
41 /** @return {kew.Promise.<string>} */
42 var stringPromise = function () {
43 return kew.resolve('string')
46 var exampleThen = function () {
47 var examplePromise = new Promise();
48 examplePromise.then(callback);
49 examplePromise.setContext([]);
50 examplePromise.then(callbackWithContext);
52 examplePromise.then(null, errorCallback);
53 examplePromise.then(null, errorCallbackWithContext);
57 var thenBound = function () {
58 stringPromise().thenBound(callbackNeedsBind, null, 3).failBound(callbackNeedsBind, null, 3);
61 var examplePromise = function () {
62 var promise = new Promise(callback);
63 promise = new Promise(callbackWithContext);
64 promise = new Promise(null, errorCallback);
65 promise = new Promise(null, errorCallbackWithContext);
68 var exampleFail = function () {
69 var promise = new Promise();
70 promise.fail(errorCallback);
71 promise.fail(errorCallbackWithContext);
74 var exampleResolver = function () {
75 var promise = new Promise();
76 var resolver = promise.makeNodeResolver();
80 resolver(new Error(), null);
83 var exampleAll = function () {
84 // should not compile, but does
88 all([new Promise(), {}]);
89 all([new Promise(), null]);
92 var promise = all([]);
93 all([new Promise(), new Promise()]);
96 var exampleAllSettled = function () {
98 allSettled([5, {}, null, 'string']);
99 var promise = allSettled([new Promise()]);
100 promise.then(function(results){});
103 var exampleTimeout = function () {
104 var promise = new Promise();
105 var timeoutPromise = promise.timeout(50);
106 timeoutPromise.then(function(result){});
109 var noArgsFunction = function () {};
111 var exampleFcall = function () {
112 fcall(noArgsFunction);
114 fcall(callbackWithContext, [], 5);
117 /** @param {function(Error, *)} nodeCallback */
118 var noArgsWithNodeCallback = function (nodeCallback) {};
121 @param {!Array} argument
122 @param {function(Error, *)} nodeCallback
124 var oneArgWithNodeCallback = function (argument, nodeCallback) {};
126 var exampleNfcall = function () {
127 var promise = nfcall(noArgsWithNodeCallback);
128 promise = nfcall(oneArgWithNodeCallback, []);
131 var exampleBindPromise = function () {
132 callback = bindPromise(noArgsWithNodeCallback, null);
133 callback = bindPromise(noArgsWithNodeCallback, {});
134 callback = bindPromise(oneArgWithNodeCallback, null, []);