0.1.22 â€ĸ Published 9 days ago

@cf-wasm/og v0.1.22

Weekly downloads
-
License
MPL-2.0
Repository
github
Last release
9 days ago

@cf-wasm/og

Generate Open Graph Images dynamically from HTML/CSS without a browser.
Powered by @vercel/og.

Installation

Install the package by running the following command in terminal:

npm install @cf-wasm/og

Usage

  • Cloudflare workers:
    import * as og from "@cf-wasm/og";
  • Next.js (Webpack):
    import * as og from "@cf-wasm/og/next";
  • CJS (file base):
    import * as og from "@cf-wasm/og/node";

Examples

Here are some examples for using this library.

Cloudflare Workers

If you are using Cloudflare Workers, you can use it as shown below:

// src/index.tsx
import React from "react";
import { ImageResponse, GoogleFont, cache, defaultFont } from "@cf-wasm/og";

export type Env = Readonly<{}>;

const worker: ExportedHandler<Env> = {
  async fetch(request, env, ctx) {
    // Make sure to overwrite the cache.waitUntil function
    cache.waitUntil = ctx.waitUntil.bind(ctx);

    // Sets default font to `Inter` from Google Fonts
    // defaultFont.set(
    //   new GoogleFont("Inter")
    // );

    const { searchParams } = new URL(request.url);
    const parameters = Object.fromEntries(searchParams.entries());

    const response = new ImageResponse(
      (
        <div
          style={{
            display: "flex",
            flexDirection: "column",
            width: "100%",
            height: "100%",
            alignItems: "center",
            justifyContent: "center",
            backgroundColor: "#6f90ab",
            fontSize: "2rem",
            color: "#fff"
          }}
        >
          <span>Noto Sans (Default Font)</span>
          <span
            style={{
              fontFamily: "JetBrains Mono"
            }}
          >
            JetBrains Mono (using GoogleFont class)
          </span>
          <span>These are emojis: 😎🌩ī¸</span>
          <span
            style={{
              fontFamily: "JetBrains Mono"
            }}
          >
            Parameters: {JSON.stringify(parameters)}
          </span>
        </div>
      ),
      {
        fonts: [new GoogleFont("JetBrains Mono")],
        emoji: "fluent"
      }
    );

    return response;
  }
};

export default worker;

Notes: If you are using @cf-wasm/og on Cloudflare Workers, you may hit the CPU time limit as well as the 1MiB script size limit (Workers Free Plan). Even when using the original project @vercel/og on Cloudflare Pages, you hit the CPU time limit.

0.1.22

9 days ago

0.1.21

13 days ago

0.1.20

16 days ago

0.1.19

16 days ago

0.1.18

19 days ago

0.1.17

26 days ago

0.1.13

28 days ago

0.1.14

28 days ago

0.1.15

27 days ago

0.1.16

27 days ago

0.1.12

2 months ago

0.1.11

2 months ago