0
0
mirror of https://github.com/honojs/hono.git synced 2024-11-23 17:57:29 +01:00

chore(lint): ESLint v9 (#3393)

* chore(lint): ESLint v9

* run prettier
This commit is contained in:
Yusuke Wada 2024-09-12 12:05:41 +09:00 committed by GitHub
parent e0d17a3955
commit 5f78e4e1b3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
60 changed files with 419 additions and 801 deletions

View File

@ -1 +0,0 @@
.eslintrc.cjs

View File

@ -1,9 +0,0 @@
module.exports = {
extends: ['@hono/eslint-config'],
rules: {
'@typescript-eslint/unbound-method': 'error',
},
parserOptions: {
project: ['./tsconfig.json', './runtime_tests/tsconfig.json'],
},
}

BIN
bun.lockb

Binary file not shown.

3
eslint.config.mjs Normal file
View File

@ -0,0 +1,3 @@
import baseConfig from '@hono/eslint-config'
export default [...baseConfig]

View File

@ -20,8 +20,8 @@
"test:lambda": "vitest --run --config ./runtime_tests/lambda/vitest.config.ts",
"test:lambda-edge": "vitest --run --config ./runtime_tests/lambda-edge/vitest.config.ts",
"test:all": "bun run test && bun test:deno && bun test:bun && bun test:fastly && bun test:node && bun test:workerd && bun test:lambda && bun test:lambda-edge",
"lint": "eslint --ext js,ts,tsx src runtime_tests",
"lint:fix": "eslint --ext js,ts,tsx src runtime_tests --fix",
"lint": "eslint src runtime_tests",
"lint:fix": "eslint src runtime_tests --fix",
"format": "prettier --check --cache \"src/**/*.{js,ts,tsx}\" \"runtime_tests/**/*.{js,ts,tsx}\"",
"format:fix": "prettier --write --cache --cache-strategy metadata \"src/**/*.{js,ts,tsx}\" \"runtime_tests/**/*.{js,ts,tsx}\"",
"copy:package.cjs.json": "cp ./package.cjs.json ./dist/cjs/package.json && cp ./package.cjs.json ./dist/types/package.json ",
@ -618,7 +618,7 @@
"nodejs"
],
"devDependencies": {
"@hono/eslint-config": "^0.0.6",
"@hono/eslint-config": "^1.0.1",
"@hono/node-server": "^1.8.2",
"@types/crypto-js": "^4.1.1",
"@types/glob": "^8.0.0",
@ -629,7 +629,7 @@
"arg": "^5.0.2",
"crypto-js": "^4.1.1",
"esbuild": "^0.15.12",
"eslint": "^8.55.0",
"eslint": "^9.10.0",
"glob": "7.2.3",
"jsdom": "^22.1.0",
"msw": "^2.3.0",
@ -645,6 +645,6 @@
"zod": "^3.20.2"
},
"engines": {
"node": ">=16.0.0"
"node": ">=16.9.0"
}
}
}

View File

@ -1,4 +1,5 @@
import { afterAll, afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
import { stream, streamSSE } from '../..//src/helper/streaming'
import { serveStatic, toSSG } from '../../src/adapter/bun'
import { createBunWebSocket } from '../../src/adapter/bun/websocket'
import type { BunWebSocketData } from '../../src/adapter/bun/websocket'
@ -11,7 +12,6 @@ import { jsx } from '../../src/jsx'
import { basicAuth } from '../../src/middleware/basic-auth'
import { jwt } from '../../src/middleware/jwt'
import { HonoRequest } from '../../src/request'
import { stream, streamSSE } from '../..//src/helper/streaming'
// Test just only minimal patterns.
// Because others are tested well in Cloudflare Workers environment already.

View File

@ -1,9 +1,9 @@
/** @jsxImportSource ../../src/jsx */
import { assertEquals } from '@std/assert'
import { Style, css } from '../../src/helper/css/index.ts'
import { Suspense, renderToReadableStream } from '../../src/jsx/streaming.ts'
import type { HtmlEscapedString } from '../../src/utils/html.ts'
import { HtmlEscapedCallbackPhase, resolveCallback } from '../../src/utils/html.ts'
import { assertEquals } from '@std/assert'
Deno.test('JSX', () => {
const Component = ({ name }: { name: string }) => <span>{name}</span>

View File

@ -1,7 +1,7 @@
import { assertEquals } from '@std/assert'
import { Context } from '../../src/context.ts'
import { env, getRuntimeKey } from '../../src/helper/adapter/index.ts'
import { Hono } from '../../src/hono.ts'
import { assertEquals } from '@std/assert'
// Test just only minimal patterns.
// Because others are tested well in Cloudflare Workers environment already.

View File

@ -1,9 +1,9 @@
import { assertEquals, assertMatch } from '@std/assert'
import { assertSpyCall, assertSpyCalls, spy } from '@std/testing/mock'
import { serveStatic } from '../../src/adapter/deno/index.ts'
import { Hono } from '../../src/hono.ts'
import { basicAuth } from '../../src/middleware/basic-auth/index.ts'
import { jwt } from '../../src/middleware/jwt/index.ts'
import { assertSpyCall, assertSpyCalls, spy } from '@std/testing/mock'
import { assertEquals, assertMatch } from '@std/assert'
// Test just only minimal patterns.
// Because others are already tested well in Cloudflare Workers environment.

View File

@ -1,6 +1,6 @@
import { assertEquals } from '@std/assert'
import { toSSG } from '../../src/adapter/deno/ssg.ts'
import { Hono } from '../../src/hono.ts'
import { assertEquals } from '@std/assert'
Deno.test('toSSG function', async () => {
const app = new Hono()

View File

@ -1,6 +1,6 @@
import { Hono } from '../../src/hono.ts'
import { stream, streamSSE } from '../../src/helper/streaming/index.ts'
import { assertEquals } from '@std/assert'
import { stream, streamSSE } from '../../src/helper/streaming/index.ts'
import { Hono } from '../../src/hono.ts'
Deno.test('Shuld call onAbort via stream', async () => {
const app = new Hono()

View File

@ -1,5 +1,5 @@
import { Writable } from 'node:stream'
import { vi } from 'vitest'
import { Writable } from 'node:stream'
import type {
APIGatewayProxyEvent,
APIGatewayProxyEventV2,

View File

@ -1,14 +1,14 @@
import type { Server } from 'node:http'
import { createAdaptorServer, serve } from '@hono/node-server'
import request from 'supertest'
import type { Server } from 'node:http'
import type { AddressInfo } from 'node:net'
import { Hono } from '../../src'
import { Context } from '../../src/context'
import { env, getRuntimeKey } from '../../src/helper/adapter'
import { basicAuth } from '../../src/middleware/basic-auth'
import { jwt } from '../../src/middleware/jwt'
import { compress } from '../../src/middleware/compress'
import { stream, streamSSE } from '../../src/helper/streaming'
import type { AddressInfo } from 'node:net'
import { basicAuth } from '../../src/middleware/basic-auth'
import { compress } from '../../src/middleware/compress'
import { jwt } from '../../src/middleware/jwt'
// Test only minimal patterns.
// See <https://github.com/honojs/node-server> for more tests and information.

View File

@ -1,5 +1,5 @@
import { env, getRuntimeKey } from '../../src/helper/adapter'
import { upgradeWebSocket } from '../../src/adapter/cloudflare-workers'
import { env, getRuntimeKey } from '../../src/helper/adapter'
import { Hono } from '../../src/hono'
const app = new Hono()

View File

@ -7,7 +7,7 @@ export interface CognitoIdentity {
export interface ClientContext {
client: ClientContextClient
// eslint-disable-next-line @typescript-eslint/no-explicit-any
Custom?: any
env: ClientContextEnv
}

View File

@ -1,6 +1,6 @@
import { Context } from '../../context'
import { getConnInfo } from './conninfo'
import type { AddressType } from '../../helper/conninfo'
import { getConnInfo } from './conninfo'
const createRandomBunServer = ({
address = Math.random().toString(),

View File

@ -1,8 +1,8 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
import { stat } from 'node:fs/promises'
import { serveStatic as baseServeStatic } from '../../middleware/serve-static'
import type { ServeStaticOptions } from '../../middleware/serve-static'
import type { Env, MiddlewareHandler } from '../../types'
import { stat } from 'node:fs/promises'
export const serveStatic = <E extends Env = Env>(
options: ServeStaticOptions<E>

View File

@ -1,6 +1,6 @@
import { Context } from '../../context'
import type { CloudFrontEdgeEvent } from './handler'
import { getConnInfo } from './conninfo'
import type { CloudFrontEdgeEvent } from './handler'
describe('getConnInfo', () => {
it('Should info is valid', () => {

View File

@ -1,6 +1,6 @@
import type { Context } from '../../context'
import type { GetConnInfo } from '../../helper/conninfo'
import type { CloudFrontEdgeEvent } from './handler'
import type { Context } from '../../context'
type Env = {
Bindings: {

View File

@ -1,5 +1,5 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/ban-ts-comment */
import { HttpResponse, http } from 'msw'
import { setupServer } from 'msw/node'

View File

@ -553,7 +553,7 @@ describe('Compose', function () {
arr.push(6)
await next()
arr.push(7)
} catch (err) {
} catch {
arr.push(2)
}
arr.push(3)

View File

@ -11,6 +11,7 @@ import type {
} from './types'
import { HtmlEscapedCallbackPhase, resolveCallback } from './utils/html'
import type { RedirectStatusCode, StatusCode } from './utils/http-status'
import type { BaseMime } from './utils/mime'
import type {
InvalidJSONValue,
IsAny,
@ -18,7 +19,6 @@ import type {
JSONValue,
SimplifyDeepArray,
} from './utils/types'
import type { BaseMime } from './utils/mime'
type HeaderRecord =
| Record<'Content-Type', BaseMime>

View File

@ -1,4 +1,3 @@
/* eslint-disable quotes */
/** @jsxImportSource ../../jsx */
import { Hono } from '../../'
import { html } from '../../helper/html'

View File

@ -130,7 +130,7 @@ export const createCssContext = ({ id }: { id: Readonly<string> }): DefaultConte
;(className as HtmlEscapedString).callbacks = [addClassNameToContext]
const promise = Promise.resolve(className)
Object.assign(promise, cssClassName)
// eslint-disable-next-line @typescript-eslint/unbound-method
promise.toString = cssJsxDomObject.toString
return promise
}

View File

@ -15,7 +15,7 @@ export const SSG_DISABLED_RESPONSE = (() => {
status: 404,
headers: { [X_HONO_DISABLE_SSG_HEADER_KEY]: 'true' },
})
} catch (e) {
} catch {
return null
}
})() as Response

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/unbound-method */
/** @jsxImportSource ../../jsx */
import { Hono } from '../../hono'
import { poweredBy } from '../../middleware/powered-by'

View File

@ -1,6 +1,6 @@
/** @jsxImportSource ../../jsx */
import { ErrorBoundary } from '../../jsx'
import { Context } from '../../context'
import { ErrorBoundary } from '../../jsx'
import { streamSSE } from '.'
describe('SSE Streaming helper', () => {

View File

@ -1,6 +1,6 @@
import type { Context } from '../../context'
import { StreamingApi } from '../../utils/stream'
import { HtmlEscapedCallbackPhase, resolveCallback } from '../../utils/html'
import { StreamingApi } from '../../utils/stream'
export interface SSEMessage {
data: string | Promise<string>

View File

@ -1599,7 +1599,7 @@ describe('Request methods with custom middleware', () => {
app.use('*', async (c, next) => {
const query = c.req.query('foo')
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const param = c.req.param('foo') // This will cause a type error.
const header = c.req.header('User-Agent')
@ -2210,7 +2210,7 @@ describe('Lack returning response with a single handler', () => {
describe('Context is not finalized', () => {
it('should throw error - lack `await next()`', async () => {
const app = new Hono()
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
app.use('*', () => {})
app.get('/foo', (c) => {
@ -2229,7 +2229,7 @@ describe('Context is not finalized', () => {
app.use('*', async (_c, next) => {
await next()
})
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
app.get('/foo', () => {})
app.onError((err, c) => {
@ -2672,10 +2672,10 @@ describe('app.mount()', () => {
},
{
// Force mocking!
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
waitUntil: 'waitUntil',
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
passThroughOnException: 'passThroughOnException',
}

View File

@ -1,16 +1,16 @@
import { raw } from '../helper/html'
import { escapeToBuffer, resolveCallbackSync, stringBufferToString } from '../utils/html'
import type { HtmlEscaped, HtmlEscapedString, StringBufferWithCallbacks } from '../utils/html'
import { DOM_RENDERER } from './constants'
import type { Context } from './context'
import { createContext, globalContexts, useContext } from './context'
import { DOM_RENDERER } from './constants'
import { domRenderers } from './intrinsic-element/common'
import * as intrinsicElementTags from './intrinsic-element/components'
import type {
JSX as HonoJSX,
IntrinsicElements as IntrinsicElementsDefined,
} from './intrinsic-elements'
import { normalizeIntrinsicElementKey, styleObjectForEach } from './utils'
import * as intrinsicElementTags from './intrinsic-element/components'
import { domRenderers } from './intrinsic-element/common'
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type Props = Record<string, any>

View File

@ -2,7 +2,7 @@
import { JSDOM } from 'jsdom'
// run tests by old style jsx default
// hono/jsx/jsx-runtime and hono/jsx/dom/jsx-runtime are tested in their respective settings
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import type { JSXNode } from '..'
import { Style, createCssContext, css, rawCssString } from '../../helper/css'
import { minify } from '../../helper/css/common'

View File

@ -120,7 +120,6 @@ export const createCssJsxDomObjects: CreateCssJsxDomObjectsType = ({ id }) => {
},
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const Style: FC<PropsWithChildren<void>> = ({ children }) =>
({
tag: 'style',
@ -173,7 +172,6 @@ export const createCssContext = ({ id }: { id: Readonly<string> }): DefaultConte
const [cssObject, Style] = createCssJsxDomObjects({ id })
const newCssClassNameObject = (cssClassName: CssClassName): string => {
// eslint-disable-next-line @typescript-eslint/unbound-method
cssClassName.toString = cssObject.toString
return cssClassName as unknown as string
}

View File

@ -2,11 +2,11 @@
* Provide hooks used only in jsx/dom
*/
import { PERMALINK } from '../../constants'
import type { Context } from '../../context'
import { useContext } from '../../context'
import { createContext } from '../context'
import { useCallback, useState } from '../../hooks'
import { PERMALINK } from '../../constants'
import { createContext } from '../context'
type FormStatus =
| {

View File

@ -29,9 +29,9 @@ import {
useTransition,
useViewTransition,
} from '../hooks'
import { useActionState, useFormStatus, useOptimistic } from './hooks'
import { ErrorBoundary, Suspense } from './components'
import { createContext } from './context'
import { useActionState, useFormStatus, useOptimistic } from './hooks'
import { Fragment, jsx } from './jsx-runtime'
import { createPortal, flushSync } from './render'

View File

@ -1,7 +1,7 @@
/** @jsxImportSource ../../ */
import { JSDOM, ResourceLoader } from 'jsdom'
import { useState } from '../../hooks'
import { Suspense, render } from '..'
import { useState } from '../../hooks'
import { clearCache, composeRef } from './components'
describe('intrinsic element', () => {
@ -10,7 +10,6 @@ describe('intrinsic element', () => {
global.requestAnimationFrame = (cb) => setTimeout(cb)
CustomResourceLoader = class CustomResourceLoader extends ResourceLoader {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
fetch(url: string) {
return url.includes('invalid')
? Promise.reject('Invalid URL')

View File

@ -1,12 +1,12 @@
import type { Props } from '../../base'
import type { FC, JSXNode, PropsWithChildren, RefObject } from '../../types'
import { createPortal, getNameSpaceContext } from '../render'
import type { PreserveNodeType } from '../render'
import { useContext } from '../../context'
import { use, useCallback, useMemo, useState } from '../../hooks'
import { FormContext, registerAction } from '../hooks'
import { dataPrecedenceAttr, deDupeKeyMap, domRenderers } from '../../intrinsic-element/common'
import type { IntrinsicElements } from '../../intrinsic-elements'
import type { FC, JSXNode, PropsWithChildren, RefObject } from '../../types'
import { FormContext, registerAction } from '../hooks'
import type { PreserveNodeType } from '../render'
import { createPortal, getNameSpaceContext } from '../render'
// this function is a testing utility and should not be exported to the user
export const clearCache = () => {

View File

@ -663,7 +663,7 @@ const updateSync = (context: Context, node: NodeObject): void => {
})
try {
build(context, node, undefined)
} catch (e) {
} catch {
return
}
if (node.a) {

View File

@ -3,10 +3,10 @@
* This module provides APIs for `hono/jsx/server`, which is compatible with `react-dom/server`.
*/
import type { HtmlEscapedString } from '../../utils/html'
import type { Child } from '../base'
import { renderToReadableStream as renderToReadableStreamHono } from '../streaming'
import version from './'
import type { HtmlEscapedString } from '../../utils/html'
export interface RenderToStringOptions {
identifierPrefix?: string

View File

@ -1059,7 +1059,6 @@ describe('default export', () => {
'StrictMode',
].forEach((key) => {
it(key, () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
expect((DefaultExport as any)[key]).toBeDefined()
})
})

View File

@ -8,6 +8,7 @@ import type { DOMAttributes } from './base'
import { Children } from './children'
import { ErrorBoundary } from './components'
import { createContext, useContext } from './context'
import { useActionState, useOptimistic } from './dom/hooks'
import {
createRef,
forwardRef,
@ -30,7 +31,6 @@ import {
useTransition,
useViewTransition,
} from './hooks'
import { useActionState, useOptimistic } from './dom/hooks'
import { Suspense } from './streaming'
export {

View File

@ -1,13 +1,13 @@
import { raw } from '../../helper/html'
import type { HtmlEscapedCallback, HtmlEscapedString } from '../../utils/html'
import { JSXNode, getNameSpaceContext } from '../base'
import { useContext } from '../context'
import type { Child, Props } from '../base'
import type { FC, PropsWithChildren } from '../types'
import { raw } from '../../helper/html'
import { dataPrecedenceAttr, deDupeKeyMap } from './common'
import { PERMALINK } from '../constants'
import { toArray } from '../children'
import { PERMALINK } from '../constants'
import { useContext } from '../context'
import type { IntrinsicElements } from '../intrinsic-elements'
import type { FC, PropsWithChildren } from '../types'
import { dataPrecedenceAttr, deDupeKeyMap } from './common'
const metaTagMap: WeakMap<
object,

View File

@ -1,6 +1,6 @@
import { Hono } from '../../hono'
import { every, except, some } from '.'
import type { MiddlewareHandler } from '../../types'
import { every, except, some } from '.'
const nextMiddleware: MiddlewareHandler = async (_, next) => await next()

View File

@ -3,11 +3,11 @@
* Combine Middleware for Hono.
*/
import type { Context } from '../../context'
import type { MiddlewareHandler, Next } from '../../types'
import { TrieRouter } from '../../router/trie-router'
import { METHOD_NAME_ALL } from '../../router'
import { compose } from '../../compose'
import type { Context } from '../../context'
import { METHOD_NAME_ALL } from '../../router'
import { TrieRouter } from '../../router/trie-router'
import type { MiddlewareHandler, Next } from '../../types'
type Condition = (c: Context) => boolean

View File

@ -1,6 +1,6 @@
import { compress } from '.'
import { stream } from '../../helper/streaming'
import { Hono } from '../../hono'
import { compress } from '.'
describe('Compress Middleware', () => {
const app = new Hono()

View File

@ -3,9 +3,9 @@
* Context Storage Middleware for Hono.
*/
import { AsyncLocalStorage } from 'node:async_hooks'
import type { Context } from '../../context'
import type { Env, MiddlewareHandler } from '../../types'
import { AsyncLocalStorage } from 'node:async_hooks'
const asyncLocalStorage = new AsyncLocalStorage<Context>()

View File

@ -1,6 +1,6 @@
import { Hono } from '../../hono'
import { Context } from '../../context'
import type { AddressType, GetConnInfo } from '../../helper/conninfo'
import { Hono } from '../../hono'
import { ipRestriction } from '.'
import type { IPRestrictionRule } from '.'
@ -78,7 +78,7 @@ describe('isMatchForRule', () => {
try {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
await middleware(undefined as any, () => Promise.resolve())
} catch (e) {
} catch {
return false
}
return true

View File

@ -79,7 +79,7 @@ function log(
export const logger = (fn: PrintFunc = console.log): MiddlewareHandler => {
return async function logger(c, next) {
const { method } = c.req
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const path = getPath(c.req.raw)
log(fn, LogPrefix.Incoming, method, path)

View File

@ -1,5 +1,5 @@
import { Hono } from './quick'
import { getRouterName } from '../helper/dev'
import { Hono } from './quick'
describe('hono/quick preset', () => {
it('Should have SmartRouter + LinearRouter', async () => {

View File

@ -1,5 +1,5 @@
import { Hono } from './tiny'
import { getRouterName } from '../helper/dev'
import { Hono } from './tiny'
describe('hono/tiny preset', () => {
it('Should have PatternRouter', async () => {

View File

@ -31,7 +31,7 @@ export class PatternRouter<T> implements Router<T> {
let re
try {
re = new RegExp(`^${parts.join('')}${endsWithWildcard ? '' : '/?$'}`)
} catch (e) {
} catch {
throw new UnsupportedPathError()
}
this.routes.push([re, method, handler])

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
import type { ParamIndexMap, Result, Router } from '../../router'
import {
MESSAGE_MATCHER_IS_ALREADY_BUILT,
@ -247,7 +246,7 @@ export class RegExpRouter<T> implements Router<T> {
const routes: [string, HandlerWithMetadata<T>[]][] = []
let hasOwnRoute = method === METHOD_NAME_ALL
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
;[this.middleware!, this.routes!].forEach((r) => {
const ownRoute = r[method]
? Object.keys(r[method]).map((path) => [path, r[method][path]])

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
import type { Result, Router } from '../../router'
import { MESSAGE_MATCHER_IS_ALREADY_BUILT, UnsupportedPathError } from '../../router'

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/ban-types */
/* eslint-disable @typescript-eslint/no-unused-vars */
import { expectTypeOf } from 'vitest'
import { Context } from './context'

View File

@ -5,7 +5,6 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/ban-types */
import type { Context } from './context'
import type { Hono } from './hono'
import type { StatusCode } from './utils/http-status'

View File

@ -1,4 +1,3 @@
import { HonoRequest } from '../request'
import { auth } from './basic-auth'
describe('auth', () => {

View File

@ -60,7 +60,7 @@ const verifySignature = async (
signature[i] = signatureBinStr.charCodeAt(i)
}
return await crypto.subtle.verify(algorithm, secret, signature, new TextEncoder().encode(value))
} catch (e) {
} catch {
return false
}
}

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
import { decodeBase64Url, encodeBase64Url } from './encode'
const toURLBase64 = (base64String: string): string =>

View File

@ -108,7 +108,7 @@ export const decode = (token: string): { header: TokenHeader; payload: JWTPayloa
header,
payload,
}
} catch (e) {
} catch {
throw new JwtTokenInvalid(token)
}
}

View File

@ -49,7 +49,7 @@ export class StreamingApi {
input = this.encoder.encode(input)
}
await this.writer.write(input)
} catch (e) {
} catch {
// Do nothing. If you want to handle errors, create a stream by yourself.
}
return this
@ -67,7 +67,7 @@ export class StreamingApi {
async close() {
try {
await this.writer.close()
} catch (e) {
} catch {
// Do nothing. If you want to handle errors, create a stream by yourself.
}
this.closed = true

1043
yarn.lock

File diff suppressed because it is too large Load Diff