More Premium Hugo Themes Premium React Themes

Remix Pages Context

A module to make using Cloudflare Pages environment variables and KV-backed sessions easier with Remix.

Remix Pages Context

A module to make using Cloudflare Pages environment variables and KV-backed sessions easier with Remix.

Author Avatar Theme by brandonpittman
Github Stars Github Stars: 12
Last Commit Last Commit: Apr 29, 2023 -
First Commit Created: Jan 15, 2024 -
Remix Pages Context screenshot

Overview

The remix-pages-context package is designed to simplify the usage of Cloudflare Pages’ environment variables and KV-backed sessions. It provides a convenient way to set up server configuration and access typed environment variables and session values.

Features

  • Easy Usage: This package allows for easier utilization of Cloudflare Pages’ environment variables and KV-backed sessions.
  • Typed Context: Create a typed context object by passing in Zod schemas for your environment variables and session values, ensuring strong typing and improved code quality.
  • Flexible Access: Use the provided helper functions, such as getLoadContext and getPagesContext, to access your typed environment variables and session values anywhere within your codebase.

Installation

To install and use the remix-pages-context package, follow these steps:

Step 1: Set up server.ts:

// Import required modules and packages
import { createRequestHandler } from "@remix-run/express";
import { createSessionsLoader } from "@remix-run/cookie-session";
import { createRequestValidator } from "@remix-run/validator";
import { yourSchemas } from "./schemas"; // Import your Zod schemas

// Create a typed context object
const context = {
  // Define your environment variables and session values schemas using Zod
  env: yourSchemas.envSchema,
  session: yourSchemas.sessionSchema,
  // Other properties...
};

// Set up the request handler
export default createRequestHandler({
  getLoadContext() {
    // Return the typed context object
    return context;
  },
  session: createSessionsLoader(), // Optional session loader
  // Other options...
});

Step 2: Destructure getLoadContext and getPagesContext off the context object:

import { getLoadContext, getPagesContext } from "remix-pages-context";

// Use getLoadContext to create the Pages function handler
const pagesHandler = getLoadContext().createPagesFunctionHandler();

// Use getPagesContext to access typed environment variables and session values
const { env, session } = getPagesContext();

Step 3: Use getPagesContext anywhere you want to access your typed environment variables and session values:

// Example usage
console.log(env.MY_ENV_VARIABLE);
console.log(session.MY_SESSION_VALUE);

Summary

The remix-pages-context package provides a convenient and efficient way to work with Cloudflare Pages’ environment variables and KV-backed sessions. By utilizing typed contexts and helper functions, developers can easily access and manage their environment variables and session values with confidence.