edgeone-makers-edge-functions
V8-based lightweight edge functions on EdgeOne Makers. Covers routing, KV storage access, request/response handling, and environment variables at the edge.
How do I install this agent skill?
npx skills add https://github.com/tencentedgeone/edgeone-makers-tools --skill edgeone-makers-edge-functionsIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides technical documentation and code examples for the EdgeOne Makers edge function runtime. It demonstrates standard practices for request handling, routing, and storage access within a V8 environment. No malicious patterns or security vulnerabilities were identified.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · 1 issue
What does this agent skill do?
Edge Functions
V8-based lightweight functions running at the edge. Ideal for simple APIs, KV storage access, and ultra-low latency responses.
Runtime: V8 (like Cloudflare Workers) — NOT Node.js. Do NOT use Node.js built-ins or npm packages.
⚠️
Response.json()is NOT available in this V8 runtime. Always usenew Response(JSON.stringify(data), { headers: { 'Content-Type': 'application/json' } })instead.
Basic function
File: edge-functions/api/hello.js
export default function onRequest(context) {
return new Response('Hello from Edge Functions!');
}
Access: GET /api/hello
HTTP method handlers
// edge-functions/api/users.js
// Handle all methods
export function onRequest(context) {
return new Response('Any method');
}
// Or use specific method handlers:
export function onRequestGet(context) {
return new Response(JSON.stringify({ users: [] }), {
headers: { 'Content-Type': 'application/json' },
});
}
export async function onRequestPost(context) {
const body = await context.request.json();
return new Response(JSON.stringify({ created: true }), {
status: 201,
headers: { 'Content-Type': 'application/json' },
});
}
EventContext object
export function onRequest(context) {
const {
request, // Standard Request object
params, // Dynamic route params, e.g. { id: "123" }
env, // Environment variables from Makers console
waitUntil, // Extend function lifetime for async tasks
} = context;
// GEO info available via:
const geo = context.request.eo;
// geo.geo.countryName, geo.geo.cityName, geo.geo.latitude, etc.
return new Response('OK');
}
Dynamic routes
// edge-functions/api/users/[id].js
// Matches: /api/users/123, /api/users/abc
export function onRequestGet(context) {
const userId = context.params.id;
return new Response(JSON.stringify({ userId }), {
headers: { 'Content-Type': 'application/json' },
});
}
// edge-functions/api/[[default]].js
// Catches all unmatched routes under /api/
export function onRequest(context) {
return new Response('Catch-all route', { status: 404 });
}
KV Storage (Edge Functions only)
Cross-reference: if your code uses
context.storeor KV APIs, also read../makers-storage/SKILL.md.
⚠️ Prerequisites: You must enable KV Storage in the EdgeOne Makers console, create a namespace, and bind it to your project before using KV. See ../makers-storage/references/kv.md for full setup instructions.
The KV namespace is a global variable (name is set when binding in the console) — it is NOT on context.env.
// edge-functions/api/counter.js
export async function onRequest(context) {
// ⚠️ my_kv is a GLOBAL variable (name set when binding namespace in console)
// Do NOT use context.env.KV ❌
// Read
const count = await my_kv.get('page_views') || '0';
const newCount = parseInt(count) + 1;
// Write
await my_kv.put('page_views', String(newCount));
return new Response(JSON.stringify({ views: newCount }), {
headers: { 'Content-Type': 'application/json' },
});
}
For full KV Storage API reference and usage guide, see: ../makers-storage/references/kv.md.
Supported Runtime APIs
Edge Functions run on V8 and support these Web Standard APIs:
- Fetch API —
fetch()for outbound HTTP requests - Cache API —
caches.open(),cache.match(),cache.put() - Headers / Request / Response — standard Web API objects
- Streams —
ReadableStream,WritableStream,TransformStream - Web Crypto —
crypto.subtlefor encryption/signing - Encoding —
TextEncoder,TextDecoder - URL / URLSearchParams — URL parsing
⚠️ NOT available: Node.js built-ins (fs, path, http, crypto from Node), require(), npm packages.
Limits
| Resource | Limit |
|---|---|
| Code package size | 5 MB |
| Request body | 1 MB |
| CPU time per invocation | 200 ms |
| Language | JavaScript (ES2023+) only |
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/tencentedgeone/edgeone-makers-tools/edgeone-makers-edge-functions">View edgeone-makers-edge-functions on skillZs</a>