0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-23 21:53:55 -05:00
astro/packages/integrations/deno
Juan Martín Seery d10c3dea21
fix: --experimental-ssr fixes (#2937)
* Replaced `--experimental-ssr` with `isBuildingToSSR`

* changest

* Improved `isBuildingToSSR` a bit

* Added `isBuildingToSSR` to more places!!1!

* Added `@deprecated` tag

* Replaced missing experimentalSsr

* Added failing test

* Removed test

* Re-added experimental ssr flag

* Fixed typo

Co-authored-by: Matthew Phillips <matthew@skypack.dev>

* Fixed deno tests

Co-authored-by: Matthew Phillips <matthew@skypack.dev>
2022-03-31 13:58:03 -04:00
..
src [ci] format 2022-03-30 12:43:13 +00:00
test fix: --experimental-ssr fixes (#2937) 2022-03-31 13:58:03 -04:00
CHANGELOG.md Deno adapter (#2934) 2022-03-30 08:42:19 -04:00
package.json Deno adapter (#2934) 2022-03-30 08:42:19 -04:00
readme.md Deno adapter (#2934) 2022-03-30 08:42:19 -04:00
tsconfig.json Deno adapter (#2934) 2022-03-30 08:42:19 -04:00

@astrojs/deno

A server-side rendering adapter for use with Deno targets. Write your code in Astro/Node and deploy to Deno servers.

In your astro.config.mjs use:

import { defineConfig } from 'astro/config';
import deno from '@astrojs/deno';

export default defineConfig({
  adapter: deno()
});

After performing a build there will be a dist/server/entry.mjs module. You can start a server simply by importing this module:

import './dist/entry.mjs';

API

Adapter options

This adapter automatically starts a server when it is imported. You can configure this through options:

import { defineConfig } from 'astro/config';
import deno from '@astrojs/deno';

export default defineConfig({
  adapter: deno({
    start: false
  })
});

If disabling start you need to write your own web server and use handle to render requests:

import { serve } from "https://deno.land/std@0.132.0/http/server.ts";
import { handle } from './dist/entry.mjs';

serve((req: Request) => {
  // Check the request, maybe do static file handling here.

  return handle(req);
});

You an also pass in a port/hostname to use:

import { defineConfig } from 'astro/config';
import deno from '@astrojs/deno';

export default defineConfig({
  adapter: deno({
    port: 8081,
    hostname: 'myhost'
  })
});