当前位置: 首页>>代码示例>>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;未经允许,请勿转载。