run_code_rmcp 0.2.8

云函数服务,执行JS/TS/Python语言代码,脚本必须有约定的函数名称(handler/main),会调用约定的函数名称结果和日志返回.
Documentation
import { join, basename } from "https://deno.land/std/path/mod.ts";
import { readLines } from "https://deno.land/std/io/mod.ts";
import { format } from "https://deno.land/std/datetime/mod.ts";

// 使用Deno标准库处理路径和文件
async function processPath(path) {
    console.log(`: ${path}`);
    
    // 使用path模块处理路径
    const fileName = basename(path);
    console.log(`: ${fileName}`);
    
    const fullPath = join("/tmp", fileName);
    console.log(`: ${fullPath}`);
    
    // 获取当前时间并格式化
    const now = new Date();
    const formattedDate = format(now, "yyyy-MM-dd HH:mm:ss");
    console.log(`: ${formattedDate}`);
    
    return {
        originalPath: path,
        fileName: fileName,
        fullPath: fullPath,
        timestamp: formattedDate
    };
}

// 模拟读取文件内容
async function simulateFileReading() {
    const text = `


`;
    
    // 使用TextEncoder和StringReader代替Deno.Buffer
    const encoder = new TextEncoder();
    const decoder = new TextDecoder();
    const data = encoder.encode(text);
    
    // 创建一个可读流
    const stream = new ReadableStream({
        start(controller) {
            controller.enqueue(data);
            controller.close();
        }
    });
    
    // 将流转换为Reader
    const reader = stream.getReader();
    
    console.log("开始读取文件内容:");
    
    // 手动处理文本行
    const lines = text.split('\n');
    for (let i = 0; i < lines.length; i++) {
        console.log(`${i+1}: ${lines[i]}`);
    }
    
    return lines;
}

export default async function handler(input) {
    console.log("开始处理");
    
    // 处理路径
    const path = input.path || "example.txt";
    const pathInfo = await processPath(path);
    
    // 模拟读取文件
    const fileLines = await simulateFileReading();
    
    return {
        message: '处理完成',
        pathInfo: pathInfo,
        fileContent: fileLines,
        linesCount: fileLines.length
    };
}