Skip to content

Commit aa19b39

Browse files
authored
feat: export compat types from /compat export (denoland#2478)
1 parent 2fb8606 commit aa19b39

File tree

10 files changed

+182
-139
lines changed

10 files changed

+182
-139
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ vendor/
44
node_modules/
55
.docs/
66
.DS_Store
7+
tmp-*

deno.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"exports": {
55
".": "./src/mod.ts",
66
"./runtime": "./src/runtime/shared.ts",
7-
"./dev": "./src/dev/mod.ts"
7+
"./dev": "./src/dev/mod.ts",
8+
"./compat": "./src/compat/mod.ts"
89
},
910
"lock": false,
1011
"tasks": {
@@ -39,6 +40,7 @@
3940
"@fresh/core": "./src/mod.ts",
4041
"@fresh/core/dev": "./src/dev/mod.ts",
4142
"@fresh/core/runtime": "./src/runtime/shared.ts",
43+
"@fresh/core/compat": "./src/compat/mod.ts",
4244
"@fresh/plugin-tailwind": "./plugin-tailwindcss/src/mod.ts",
4345
"@luca/esbuild-deno-loader": "jsr:@luca/esbuild-deno-loader@^0.10.3",
4446
"@preact/signals": "npm:@preact/signals@^1.2.3",
@@ -71,6 +73,7 @@
7173
"twind/": "https://esm.sh/[email protected]/"
7274
},
7375
"compilerOptions": {
76+
"lib": ["dom", "dom.asynciterable", "deno.ns"],
7477
"jsx": "precompile",
7578
"jsxImportSource": "preact",
7679
"jsxPrecompileSkipElements": ["a", "img", "source", "body", "html", "head"]

init/src/init.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,7 @@ if (Deno.args.includes("build")) {
503503
"@preact/signals": "npm:@preact/signals@^1.2.3",
504504
} as Record<string, string>,
505505
compilerOptions: {
506+
lib: ["dom", "dom.asynciterable", "deno.ns"],
506507
jsx: "react-jsx",
507508
jsxImportSource: "preact",
508509
},

src/compat/mod.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Compat with older Fresh versions
2+
export {
3+
type AppProps,
4+
defineApp,
5+
defineLayout,
6+
defineRoute,
7+
type ErrorPageProps,
8+
type Handler,
9+
type Handlers,
10+
type LayoutProps,
11+
type RouteContext,
12+
type UnknownPageProps,
13+
} from "./server.ts";

src/compat/server.ts

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,47 @@
11
import type { VNode } from "preact";
22
import type { FreshContext } from "../context.ts";
3-
import type { HandlerByMethod } from "../handlers.ts";
3+
import type { HandlerFn, RouteHandler } from "../handlers.ts";
44

55
/**
6-
* @deprecated Use {@link FreshContext} instead
6+
* @deprecated Use {@link PageProps} instead.
77
*/
88
export type AppProps<_Data = unknown, T = unknown> = FreshContext<T>;
99
/**
10-
* @deprecated Use {@link FreshContext} instead
10+
* @deprecated Use {@link PageProps} instead.
1111
*/
1212
export type LayoutProps<_Data = unknown, T = unknown> = FreshContext<T>;
1313
/**
14-
* @deprecated Use {@link FreshContext} instead
14+
* @deprecated Use {@link PageProps} instead.
1515
*/
1616
export type UnknownPageProps<_Data = unknown, T = unknown> = FreshContext<T>;
1717
/**
18-
* @deprecated Use {@link FreshContext} instead
18+
* @deprecated Use {@link PageProps} instead.
1919
*/
2020
export type ErrorPageProps<_Data = unknown, T = unknown> = FreshContext<T>;
2121

2222
/**
23-
* @deprecated Use {@link FreshContext} instead
23+
* @deprecated Use {@link FreshContext} instead.
2424
*/
2525
export type RouteContext<_T = never, S = Record<string, unknown>> =
2626
FreshContext<S>;
2727

28+
/**
29+
* @deprecated Use {@link RouteHandler} instead.
30+
*/
31+
// deno-lint-ignore no-explicit-any
32+
export type Handlers<T = any, State = Record<string, unknown>> = RouteHandler<
33+
T,
34+
State
35+
>;
36+
37+
/**
38+
* @deprecated Use {@link HandlerFn} instead.
39+
*/
2840
// deno-lint-ignore no-explicit-any
29-
export type Handlers<T = any, State = Record<string, unknown>> =
30-
HandlerByMethod<T, State>;
41+
export type Handler<T = any, State = Record<string, unknown>> = HandlerFn<
42+
T,
43+
State
44+
>;
3145

3246
function defineFn<State>(
3347
fn: (
@@ -40,14 +54,14 @@ function defineFn<State>(
4054
}
4155

4256
/**
43-
* @deprecated Use {@link definePage} instead
57+
* @deprecated Use {@link [../mod.ts].Define.page|define.page} instead.
4458
*/
4559
export const defineApp = defineFn;
4660
/**
47-
* @deprecated Use {@link definePage} instead
61+
* @deprecated Use {@link [../mod.ts].Define.page|define.page} instead.
4862
*/
4963
export const defineRoute = defineFn;
5064
/**
51-
* @deprecated Use {@link definePage} instead
65+
* @deprecated Use {@link [../mod.ts].Define.page|define.page} instead.
5266
*/
5367
export const defineLayout = defineFn;

src/mod.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,3 @@ export type { FreshContext, Island, PageProps } from "./context.ts";
1818
export { createDefine, type Define } from "./define.ts";
1919
export type { Method } from "./router.ts";
2020
export { HttpError } from "./error.ts";
21-
22-
// Compat with older Fresh versions
23-
export {
24-
type AppProps,
25-
defineApp,
26-
defineLayout,
27-
defineRoute,
28-
type ErrorPageProps,
29-
type Handlers,
30-
type Handlers as Handler,
31-
type LayoutProps,
32-
type RouteContext,
33-
type UnknownPageProps,
34-
} from "./compat/server.ts";

0 commit comments

Comments
 (0)