Server runtime

API references extracted from the Gracile code base.
Examples, functions, classes, constants, type declarations…

Function: nodeAdapter()

function nodeAdapter(handler, options?): GracileNodeHandler;

Defined in: packages/engine/dist/server/adapters/node.d.ts:24

Parameters

Parameter Type Description

handler

GracileHandler

Takes a pre-built Gracile handler from ./dist/server/entrypoint.js.

options?

NodeAdapterOptions

Returns

GracileNodeHandler

Example

/src/server.js

import express from 'express';

import * as gracile from '@gracile/gracile/node';

import { handler } from './dist/server/entrypoint.js';

const app = express();

app.use(gracile.nodeAdapter(handler));

const server = app.listen();

Function: getClientBuildPath()

function getClientBuildPath(root): string;

Defined in: packages/engine/dist/server/adapters/hono.d.ts:46

Parameters

Parameter Type Description

root

string

resolve dist/client from this file path.

Returns

string

Example

/src/server.js

import * as gracile from '@gracile/gracile/node';
import { Hono } from 'hono';
import { serveStatic } from '@hono/node-server/serve-static';

const app = new Hono();

app.get('*', serveStatic({ root: gracile.getClientBuildPath(import.meta.url) }));

Function: printUrls()

function printUrls(server): void;

Defined in: packages/engine/dist/server/utilities.d.ts:20

Pretty print your server instance address as soon as it is listening. Matches the dev. server CLI output style.

Parameters

Parameter Type Description

server

string | AddressInfo | null

Takes an node:net AddressInfo like object (address, family, port) or just a provided, pre-constructed string.

Returns

void

Example

import * as gracile from '@gracile/gracile/hono';
import { serve } from '@hono/node-server';

// ...

serve(
	{ fetch: app.fetch, port: 3030, hostname: 'localhost' },
	(address) => gracile.printUrls(address),
);

Variable: server

const server: Readonly<{
  CLIENT_DIST_DIR: "./dist/client";
  IP_EXPOSED: "0.0.0.0";
  IP_LOCALHOST: "127.0.0.1";
  LOCALHOST: "localhost";
  PUBLIC_DIR: "public";
  RANDOM_PORT: 0;
}>;

Defined in: packages/engine/dist/server/constants.d.ts:19

Server constants. Useful for setting up your HTTP framework options.

Example

/src/server.js


import * as gracile from '@gracile/gracile/hono';
import { serve } from '@hono/node-server';

// ...

serve(
	{ fetch: app.fetch, port: 3030, hostname: gracile.server.LOCALHOST },
);

Variable: nodeCondition

const nodeCondition: Readonly<{
  BROWSER: boolean;
  DEV: boolean;
  PREVIEW: boolean;
  TEST: boolean;
}>;

Defined in: packages/internal/utils/dist/node-condition/production-ssr.d.ts:16

Resolve environment from Node export conditions.

Example

📄 /src/lib/my-lib.ts

import { nodeCondition } from '@gracile/gracile/node-condition';

if (nodeCondition.BROWSER) {
   Do stuff…
}

Type Alias: GracileHandler

type GracileHandler = (request, locals?) => Promise<HandlerResult>;

Defined in: packages/engine/dist/server/request.d.ts:11

The underlying handler interface that you can use to build your own adapter.

Parameters

Parameter Type

request

Request

locals?

unknown

Returns

Promise<HandlerResult>

Type Alias: GracileNodeHandler

type GracileNodeHandler = (request, response, locals?) => Promise<ServerResponse<IncomingMessage> | null | void>;

Defined in: packages/engine/dist/server/adapters/node.d.ts:3

Parameters

Parameter Type

request

IncomingMessage

response

ServerResponse

locals?

unknown

Returns

Promise<ServerResponse<IncomingMessage> | null | void>

Type Alias: GracileHonoHandler

type GracileHonoHandler = (context) => Promise<Response>;

Defined in: packages/engine/dist/server/adapters/hono.d.ts:2

Parameters

Parameter Type

context

{ req: { raw: Request; }; var: unknown; }

context.req

{ raw: Request; }

context.req.raw

Request

context.var

unknown

Returns

Promise<Response>