snapshot of https://github.com/mountain-loop/yaak.git (main, 2026-09-23; blobs > 131072B omitted)
Some checks failed
Lint and Test / Lint/Test (push) Has been cancelled
Generate Sponsors README / deploy (push) Has been skipped

This commit is contained in:
upstream-mirror
2026-09-23 17:39:41 +05:00
commit 906fb231cc
1544 changed files with 164131 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
{
"name": "@yaak/template-function-fs",
"displayName": "File System Template Functions",
"version": "0.1.0",
"private": true,
"description": "Template functions for working with the file system",
"scripts": {
"build": "yaakcli build",
"dev": "yaakcli dev"
}
}

View File

@@ -0,0 +1,51 @@
import fs from "node:fs";
import type { CallTemplateFunctionArgs, Context, PluginDefinition } from "@yaakapp/api";
const UTF8 = "utf8";
const options = [
{ label: "ASCII", value: "ascii" },
{ label: "UTF-8", value: UTF8 },
{ label: "UTF-16 LE", value: "utf16le" },
{ label: "Base64", value: "base64" },
{ label: "Base64 URL-safe", value: "base64url" },
{ label: "Latin-1", value: "latin1" },
{ label: "Hexadecimal", value: "hex" },
];
export const plugin: PluginDefinition = {
templateFunctions: [
{
name: "fs.readFile",
description: "Read the contents of a file as utf-8",
previewArgs: ["encoding"],
args: [
{ title: "Select File", type: "file", name: "path", label: "File" },
{
type: "select",
name: "encoding",
label: "Encoding",
defaultValue: UTF8,
description: "Specifies how the file's bytes are decoded into text when read",
options,
},
{
type: "checkbox",
name: "trim",
label: "Trim Whitespace",
description: "Remove leading and trailing whitespace from the file contents",
},
],
async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null> {
if (!args.values.path || !args.values.encoding) return null;
try {
const v = await fs.promises.readFile(String(args.values.path ?? ""), {
encoding: String(args.values.encoding ?? "utf-8") as BufferEncoding,
});
return args.values.trim ? v.trim() : v;
} catch {
return null;
}
},
},
],
};

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}