當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript prelude.just函數代碼示例

本文整理匯總了TypeScript中@jonggrang/prelude.just函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript just函數的具體用法?TypeScript just怎麽用?TypeScript just使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了just函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: getContentStream

function getContentStream(stream: Readable, headers: RequestHeaders): Maybe<Readable> {
  const ce = String(headers['content-encoding'] || 'identity').toLowerCase();

  return ce === 'identity' ? just(stream)
    : ce === 'gzip' ? just(stream.pipe(createGunzip()))
      : ce === 'deflate' ? just(stream.pipe(createInflate()))
        : nothing;
}
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:8,代碼來源:parser.ts

示例2: toPiece

export function toPiece(t: string): Maybe<Piece> {
  if (t.length === 0) return just(t);
  if (t.charAt(0) === '.') return nothing;
  for (let i = 0, len = t.length; i < len; i++) {
    if (t.charAt(i) === '/') return nothing;
  }
  return just(t);
}
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:8,代碼來源:types.ts

示例3: sendRsp

function sendRsp(
  conn: Z.Connection,
  ii: Z.InternalInfo,
  status: H.Status,
  headers: H.ResponseHeaders,
  rsp: Rsp
): T.Task<[P.Maybe<H.Status>, P.Maybe<number>]> {
  switch (rsp.tag) {
    case RspType.RSPBUFFER:
      return conn.writeHead(status, headers)
        .chain(() => conn.sendAll(rsp.buffer))
        .then(T.pure([P.just(status), P.just(Buffer.byteLength(rsp.buffer))] as [P.Maybe<H.Status>, P.Maybe<number>]));

    case RspType.RSPREADABLE:
      return conn.writeHead(status, headers)
        .chain(_ => conn.sendStream(rsp.readable))
        .map(_ => [P.just(status), P.nothing] as [P.Maybe<H.Status>, P.Maybe<number>]);

    case RspType.RSPNOBODY:
      return conn.writeHead(status, headers)
        .then(T.pure([P.just(status), P.nothing] as [P.Maybe<H.Status>, P.Maybe<number>]));

    case RspType.RSPFILE:
      if (rsp.part != null) {
        const part = rsp.part;
        return sendRspFile2XX(conn, ii, status, addContentHeadersForFilePart(headers, part),
                              rsp.path, part.offset, part.byteCount, rsp.isHead);
      }
      return T.attempt(ii.getFinfo(rsp.path))
        .chain(efinfo => {
          if (P.isLeft(efinfo)) {
            return sendRspFile404(conn, ii, headers);
          }
          const rspFile = conditionalRequest(efinfo.value, headers, rsp.header);
          switch (rspFile.tag) {
            case  RspFileInfoType.WITHBODY:
              return sendRspFile2XX(conn, ii, rspFile.status, rspFile.header, rsp.path,
                                    rspFile.offset, rspFile.length, rsp.isHead);

            case RspFileInfoType.WITHOUTBODY:
              return sendRsp(conn, ii, rspFile.status, headers, { tag: RspType.RSPNOBODY });
          }
        });

    case RspType.RSPSTREAM:
      return conn.writeHead(status, headers)
        .chain(_ => rsp.body(buff => conn.sendAll(buff)))
        .map(_ => [P.just(status), P.nothing] as [P.Maybe<H.Status>, P.Maybe<number>]);

    /* istanbul ignore next */
    default:
      throw new TypeError('last argument to sendRsp must be Rsp');
  }
}
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:54,代碼來源:response.ts

示例4: getRequestBodyType

export function getRequestBodyType(req: Request): Maybe<RequestBodyType> {
  const parsed = safeParseContentType(req);
  if (isNothing(parsed)) return nothing;

  const { type, parameters } = parsed.value;

  if (type && type.indexOf('multipart') === 0)
    return just({ tag: 'multipart', boundary: parameters.boundary || '' } as RequestBodyType);

  if (type === 'application/x-www-form-urlencoded')
    return just({ tag: 'urlencoded', charset: parameters.charset } as RequestBodyType);

  return nothing;
}
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:14,代碼來源:parser.ts

示例5: calculateCookieLife

export function calculateCookieLife(now: number, clife: CookieLife): E.Maybe<[number, Date]> {
  switch (clife.tag) {
    case CookieLifeType.SESSION:
      return E.nothing;

    case CookieLifeType.MAXAGE:
      return E.just([clife.maxAge, new Date(now + (clife.maxAge * 1000))] as [number, Date]);

    case CookieLifeType.EXPIRES:
      return E.just([ (clife.expires.getTime() - now) / 1000, clife.expires ] as [number, Date]);

    case CookieLifeType.EXPIRED:
      return E.just([ 0, new Date(0) ] as [number, Date]);
  }
}
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:15,代碼來源:cookie.ts

示例6: just

 .map(mstate => {
   if (isLeft(mstate)) return nothing;
   const stat = mstate.value;
   // check if this is regular file
   if (stat.isFile()) {
     return just(mkFile(
       stat.size,
       (s, h) => W.responseFile(s, h, fp),
       name,
       hashFn(stat, weakEtags),
       just(stat.mtime)
     ));
   }
   return nothing;
 });
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:15,代碼來源:fs.ts

示例7: while

export function lookup<A>(k: number, im: IntMap<A>): P.Maybe<A> {
  while (true) {
    if (im.tag === IntMapType.NIL) {
      return P.nothing;
    }

    if (im.tag === IntMapType.TIP) {
      if (k === im.key) {
        return P.just(im.value);
      }
      return P.nothing;
    }

    if (im.tag === IntMapType.BIN) {
      if (!I.matchPrefix(im.prefix, im.mask, k)) {
        return P.nothing;
      }
      if (I.branchLeft(im.mask, k)) {
        im = im.left;
        continue;
      }
      im = im.right;
      continue;
    }
    throw new TypeError('invalid invariant IntMap detected in lookup function');
  }
}
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:27,代碼來源:index.ts

示例8: it

 it('return the cookie in array', () => {
   const ret = CO.lookupCookieValue('foo', [
     CO.createCookieKV('foo', 'bar'),
     CO.createCookieKV('baz', 'bazz')
   ]);
   assert.deepEqual(ret, P.just('bar'));
 });
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:7,代碼來源:cookie.ts

示例9: parseHTTPDate

export function parseHTTPDate(str: string): P.Maybe<HttpDate> {
  const ret = PS.runParser(rfc1123Date, str);
  if (P.isRight(ret)) {
    return P.just(ret.value);
  }
  return P.nothing;
}
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:7,代碼來源:date.ts

示例10: safeParseContentType

/**
 * wrap parse content type, as it may throw exception
 */
function safeParseContentType(req: Request) {
  try {
    return just(parseContentType(req));
  } catch {
    return nothing;
  }
}
開發者ID:syaiful6,項目名稱:jonggrang,代碼行數:10,代碼來源:parser.ts


注:本文中的@jonggrang/prelude.just函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。