dart-compile
Compile Dart code to various executable formats including EXE, AOT/JIT snapshots, kernel files, and JavaScript for deployment or execution.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | Output format for the compilation | |
| path | Yes | Path to the Dart file to compile | |
| output | No | Output file path | |
| options | No | Additional compilation options |
Implementation Reference
- src/tools/compile.ts:13-35 (handler)The main handler function for the 'dart-compile' tool. It processes input arguments, constructs the dart compile command with format, path, output, and options, executes it via dart-executor, and returns the result with error status.export async function compile(args: z.infer<typeof compileSchema>) { const { format, path, output, options = [] } = args; // Convert relative paths to absolute paths const absolutePath = toAbsolutePath(path); const absoluteOutput = output ? toAbsolutePath(output) : undefined; const cmdArgs = [ format, absolutePath, ...(absoluteOutput ? ['-o', absoluteOutput] : []), ...options ]; const { stdout, stderr } = await executeDartCommand('compile', cmdArgs); return { content: [ { type: "text" as const, text: stdout || stderr } ], isError: !!stderr }; }
- src/tools/compile.ts:5-11 (schema)Zod schema defining the input parameters for the dart-compile tool: format (enum), path (string), optional output (string), and optional options (array of strings).export const compileSchema = z.object({ format: z.enum(['exe', 'aot-snapshot', 'jit-snapshot', 'kernel', 'js']) .describe('Output format for the compilation'), path: z.string().describe('Path to the Dart file to compile'), output: z.string().optional().describe('Output file path'), options: z.array(z.string()).optional().describe('Additional compilation options') });
- src/index.ts:34-34 (registration)Registration of the 'dart-compile' tool with the MCP server, associating the tool name with its schema and handler function.server.tool('dart-compile', compileSchema.shape, compile);