Skip to content
This repository was archived by the owner on Jul 29, 2025. It is now read-only.

Commit ed0850e

Browse files
committed
feat: makePagesFunction helper
1 parent c262476 commit ed0850e

File tree

7 files changed

+26
-17
lines changed

7 files changed

+26
-17
lines changed

packages/vite-plugin-cloudflare-functions/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,18 @@
4444
"require": "./dist/client.cjs",
4545
"import": "./dist/client.mjs",
4646
"types": "./dist/client.d.ts"
47+
},
48+
"./types": {
49+
"types": "./types.d.ts"
4750
}
4851
},
4952
"main": "./dist/index.cjs",
5053
"module": "./dist/index.mjs",
5154
"types": "./dist/index.d.ts",
5255
"files": [
5356
"dist",
54-
"script"
57+
"script",
58+
"*.d.ts"
5559
],
5660
"scripts": {
5761
"build": "unbuild",

packages/vite-plugin-cloudflare-functions/src/vite/template.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,8 @@ export function getDefaultTsconfig() {
2424
export function getDts() {
2525
return [
2626
'// Generated by vite-plugin-cloudflare-functions\n',
27-
`/// <reference types="@cloudflare/workers-types" />\n`,
28-
`declare global {`,
29-
` const CloudflareResponse: typeof import('vite-plugin-cloudflare-functions/worker')['CloudflareResponse'];`,
30-
` type CloudflarePagesFunction<
31-
T = unknown,
32-
Env = unknown,
33-
Params extends string = any,
34-
Data extends Record<string, unknown> = Record<string, unknown>
35-
> = (
36-
context: Parameters<PagesFunction<Env, Params, Data>>[0]
37-
) => CloudflareResponse<T> | Promise<CloudflareResponse<T>>;`,
38-
`}\n`,
39-
'export {}'
27+
`/// <reference types="@cloudflare/workers-types" />`,
28+
`/// <reference types="vite-plugin-cloudflare-functions/types" />\n`,
29+
`export {}`
4030
].join('\n');
4131
}

packages/vite-plugin-cloudflare-functions/src/worker/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import { CloudflareResponse, type CloudflarePagesFunction } from './types';
22

33
export { CloudflareResponse, type CloudflarePagesFunction };
44

5+
export function makePagesFunction<T = any>(fn: CloudflarePagesFunction<T>) {
6+
return fn;
7+
}
8+
59
export function makeResponse<T = any>(body: T, init: ResponseInit = {}): CloudflareResponse<T> {
610
return new CloudflareResponse(JSON.stringify(body), {
711
...init,
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
declare global {
2+
import type {
3+
CloudflareResponse as _CloudflareResponse,
4+
CloudflarePagesFunction as _CloudflarePagesFunction
5+
} from './dist/worker';
6+
7+
export type CloudflareResponse = _CloudflareResponse;
8+
9+
export type CloudflarePagesFunction = _CloudflarePagesFunction;
10+
}

playground/functions/api/[msg].ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { makeResponse } from 'vite-plugin-cloudflare-functions/worker';
1+
import { makePagesFunction, makeResponse } from 'vite-plugin-cloudflare-functions/worker';
22

3-
export const onRequestGet: CloudflarePagesFunction = () =>
4-
makeResponse({ status: 'OK', data: 'Hello' });
3+
export const onRequestGet = makePagesFunction(() => makeResponse({ status: 'OK', data: 'Hello' }));

playground/functions/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"compilerOptions": {
44
"paths": {
55
"vite-plugin-cloudflare-functions": ["../../packages/vite-plugin-cloudflare-functions/src/index.ts"],
6+
"vite-plugin-cloudflare-functions/types": ["../../packages/vite-plugin-cloudflare-functions/types.d.ts"],
67
"vite-plugin-cloudflare-functions/worker": ["../../packages/vite-plugin-cloudflare-functions/src/worker.ts"],
78
"vite-plugin-cloudflare-functions/client": ["../../packages/vite-plugin-cloudflare-functions/src/client.ts"]
89
}

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"skipDefaultLibCheck": true,
1616
"paths": {
1717
"vite-plugin-cloudflare-functions": ["./packages/vite-plugin-cloudflare-functions/src/index.ts"],
18+
"vite-plugin-cloudflare-functions/types": ["./packages/vite-plugin-cloudflare-functions/types.d.ts"],
1819
"vite-plugin-cloudflare-functions/worker": ["./packages/vite-plugin-cloudflare-functions/src/worker.ts"],
1920
"vite-plugin-cloudflare-functions/client": ["./packages/vite-plugin-cloudflare-functions/src/client.ts"]
2021
}

0 commit comments

Comments
 (0)