INTEGRITY Dokumentace

Podpora modulů

Pages Functions podporuje několik typů modulů, podobně jako Workers. To znamená, že můžete importovat a používat externí moduly, jako je WebAssembly (Wasm), text a binary soubory uvnitř kódu vašich Functions.

Tento průvodce vás naučí, jak tyto různé typy modulů používat ve vašich Pages Functions.

Moduly ECMAScript

Moduly ECMAScript (zkráceně ES Modules) jsou oficiální standardizované modulový systém pro JavaScript. Jde o doporučený mechanismus pro psaní modulárního a znovupoužitelného kódu JavaScriptu.

ES Modules jsou definovány použitím import a export příkazy. Níže je uveden příklad skriptu napsaného ve formátu ES Modules a Pages Function, která tento modul importuje:

export function greeting(name: string): string {
  return `Hello ${name}!`;
}
import { greeting } from "../src/greeting.ts";

export async function onRequest(context) {
	return new Response(`${greeting("Pages Functions")}`);
}

Moduly WebAssembly

WebAssembly (zkráceně Wasm) umožňuje kompilovat jazyky jako Rust, Go nebo C do binárního formátu, který lze spustit v celé řadě prostředí, včetně webových prohlížečů, Cloudflare Workers, Cloudflare Pages Functions a dalších běhových prostředí WebAssembly.

Distribuovatelná, načitatelná a spustitelná jednotka kódu ve WebAssembly se nazývá modul.

Níže je základní příklad, jak importovat Wasm Modules do kódu Pages Functions:

import addModule from "add.wasm";

export async function onRequest() {
	const addInstance = await WebAssembly.instantiate(addModule);
	return new Response(
		`The meaning of life is ${addInstance.exports.add(20, 1)}`,
	);
}

Text Modules

Text Modules jsou nestandardizovaný způsob importu prostředků, jako jsou soubory HTML, ve formě String.

Chcete-li importovat níže uvedený soubor HTML do kódu Pages Functions:

<!DOCTYPE html>
<html>
	<body>
		<h1>Hello Pages Functions!</h1>
	</body>
</html>

Použijte následující skript:

import html from "../index.html";

export async function onRequest() {
	return new Response(html, {
		headers: { "Content-Type": "text/html" },
	});
}

Binární moduly

Binární moduly představují nestandardizovaný způsob importu binárních dat, například obrázků, jako ArrayBuffer.

Níže je základní příklad, jak importovat data z binárního souboru do kódu Pages Functions:

import data from "../my-data.bin";

export async function onRequest() {
	return new Response(data, {
		headers: { "Content-Type": "application/octet-stream" },
	});
}