Files
yaak-mountain-loop/plugins/template-function-cookie/src/index.ts
2026-05-07 15:50:10 -07:00

38 lines
1.1 KiB
TypeScript

import type { CallTemplateFunctionArgs, Context, PluginDefinition } from "@yaakapp/api";
export const plugin: PluginDefinition = {
templateFunctions: [
{
name: "cookie.value",
description: "Read the value of a cookie in the jar, by name",
previewArgs: ["name"],
args: [
{
type: "text",
name: "name",
label: "Cookie Name",
placeholder: "cookie_name",
},
{
type: "text",
name: "domain",
label: "Domain",
placeholder: "example.com",
description: "Optionally filter by domain, useful if multiple cookies with the same name.",
optional: true,
},
],
async onRender(ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null> {
// The legacy name was cookie_name, but we changed it
const name = args.values.cookie_name ?? args.values.name;
const domain = String(args.values.domain ?? "").trim();
return ctx.cookies.getValue({
name: String(name),
...(domain.length > 0 ? { domain } : {}),
});
},
},
],
};