Skip to content

Commit bd40378

Browse files
committed
fix: update koa types in dev server config
1 parent 727e7d0 commit bd40378

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

tools/pfe-tools/dev-server/plugins/dev-server-router.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import type { PfeDevServerInternalConfig } from './pfe-dev-server.js';
22

3-
import Router, { type Middleware } from '@koa/router';
3+
import Router, { type RouterMiddleware } from '@koa/router';
4+
import type { DefaultState, DefaultContext, Middleware } from 'koa';
45

56
import { makeDemoEnv } from '../../environment.js';
67
import { deslugify } from '../../config.js';
78

8-
type PfeMiddleware = (config: PfeDevServerInternalConfig) => Middleware;
9+
type PfeMiddleware =
10+
(config: PfeDevServerInternalConfig) => RouterMiddleware<DefaultState, DefaultContext>;
911

1012
/**
1113
* The environment file contains information from the serverside
@@ -91,11 +93,13 @@ const demoSubresourceMiddleware: PfeMiddleware = config => (ctx, next) => {
9193
*/
9294
export function pfeDevServerRouterMiddleware(
9395
config: PfeDevServerInternalConfig,
94-
): Router.Middleware {
96+
): Middleware {
9597
const { elementsDir, site: { componentSubpath } } = config;
9698
const router = new Router();
9799
const shim = lightdomShimMiddleware(config);
98100
const demo = demoSubresourceMiddleware(config);
101+
// RouterComposedMiddleware (from router.routes()) is compatible with Middleware at runtime
102+
// but TypeScript can't infer this because RouterComposedMiddleware isn't exported
99103
return router
100104
.get('/tools/pfe-tools/environment.js(.js)?', environmentMiddleware(config))
101105
.get(`/core/pfe-core/:splatPath*.js`, coreMiddleware(config))
@@ -107,5 +111,5 @@ export function pfeDevServerRouterMiddleware(
107111
.get(`/${componentSubpath}/:unprefixedElementSlug/:sheetName-lightdom.css`, shim)
108112
.get(`/${componentSubpath}/:unprefixedElementSlug/demo/:demoName/:fileName.:ext`, demo)
109113
.get(`/${componentSubpath}/:unprefixedElementSlug/demo/:fileName.:ext`, demo)
110-
.routes();
114+
.routes() as Middleware;
111115
}

tools/pfe-tools/test/create-fixture.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { TemplateResult } from 'lit';
22
import { chai, fixtureCleanup, fixture } from '@open-wc/testing';
3+
// @ts-expect-error: colorjs.io types not resolved with Node moduleResolution
34
import Color from 'colorjs.io';
45

56
/**

0 commit comments

Comments
 (0)