コード例 #1
0
export default function PromiseCache(cache, key, ttl, fn) {
  if (!t.Str.is(key)) {
    throw new TypeError('key');
  }
  if (!t.Num.is(ttl)) {
    throw new TypeError('ttl');
  }

  var promise = new Promise(
    function(resolve, reject) {
      var previouslyCached = cache.get(key);

      if (null !== previouslyCached) {
        resolve(previouslyCached);
        return;
      }

      fn().then(
        (res) => {
          cache.put(key, res, ttl);
          resolve(res);
        },

        (err) => {
          reject(err);
        }
      );
    });

  return promise;
}
コード例 #2
0
ファイル: Checkbox.js プロジェクト: Coobaha/tcomb-form
 format: function (value) {
   return t.Str.is(value) ? value : value === true ? '1' : '0';
 },
コード例 #3
0
ファイル: pantry-types.js プロジェクト: beckyconning/pantry
T.Doc    = T.subtype(T.Obj, function (o) { return T.Str.is(o._id) && T.Str.is(o._rev); }, 'Doc');