All Projects → TooTallNate → Vercel Deno

TooTallNate / Vercel Deno

Licence: mit
▲ Vercel Runtime for 🦕 Deno serverless functions

Programming Languages

typescript
32286 projects

The Deno Runtime compiles a TypeScript or JavaScript function into a serverless function powered by Deno, running on Vercel.

Usage

Your serverless function file is expected to export default the HTTP handler function, and then vercel-deno takes care of invoking that handler function every time an HTTP request is received.

Note: Check out the api directory to see examples of using popular Deno web frameworks with vercel-deno. Feel free to send a pull request to add additional examples!

Example

Create a file called api/hello.ts with the following contents:

import { ServerRequest } from 'https://deno.land/[email protected]/http/server.ts';

export default async (req: ServerRequest) => {
	req.respond({ body: `Hello, from Deno v${Deno.version.deno}!` });
};

Next, define the vercel-deno runtime within the "functions" object in your vercel.json file:

{
	"functions": {
		"api/**/*.[jt]s": { "runtime": "[email protected]" }
	}
}

Demo: https://vercel-deno.vercel.app/api/hello

Configuration

There are a few build environment variables that you may configure for your serverless functions:

Name Description Default
DEBUG Enables additional logging during build-time. false
DENO_TSCONFIG Passes the --config flag to specify a tsconfig.json file that Deno will use. None
DENO_UNSTABLE Passes the --unstable flag to deno cache (at build-time) and deno run (at runtime). false
DENO_VERSION Version of deno that the serverless function will use. 1.8.1

Development

The vercel dev command is supported on Windows, macOS, and Linux:

  • Vercel CLI v19.1.0 or newer is required.
  • Uses the deno binary installed on the system (does not download deno).
  • Specifying a specific version of Deno via DENO_VERSION env var is not supported.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].