UNPKG

@nomyx/assistant

Version:

A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)

107 lines (106 loc) 4.61 kB
"use strict"; // LOCKED: TRUE // All content in this file is locked and cannot be edited. var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const worker_threads_1 = require("worker_threads"); const acorn = __importStar(require("acorn")); const astring = __importStar(require("astring")); const eslint_1 = require("eslint"); const estree_walker_1 = require("estree-walker"); if (worker_threads_1.parentPort) { worker_threads_1.parentPort.on('message', async (message) => { let result; try { switch (message.task) { case 'parse': result = { success: true, result: acorn.parse(message.data, { ecmaVersion: message.options?.ecmaVersion || 2020, sourceType: message.options?.sourceType || 'module' }) }; break; case 'walk': const identifiers = []; (0, estree_walker_1.walk)(acorn.parse(message.data, { ecmaVersion: 2020, sourceType: 'module' }), { enter(node) { if (node.type === 'Identifier') { identifiers.push(node.name); } } }); result = { success: true, result: identifiers }; case 'generate': result = { success: true, result: astring.generate(JSON.parse(message.data), message.options) }; break; case 'format': result = { success: true, result: astring.generate(acorn.parse(message.data, { ecmaVersion: 2020, sourceType: 'module' }), message.options) }; break; case 'lint': const linter = new eslint_1.ESLint(); const messages = await linter.lintText(message.data, message.options); result = { success: true, result: messages }; break; case 'transform': const transformation = new Function('ast', message.data); const transformedAst = transformation(acorn.parse(message.options?.ast, { ecmaVersion: 2020, sourceType: 'module' })); result = { success: true, result: astring.generate(transformedAst) }; break; default: throw new Error(`Unknown task: ${message.task}`); } } catch (error) { result = { success: false, error: error instanceof Error ? error.message : String(error) }; } worker_threads_1.parentPort && worker_threads_1.parentPort.postMessage(result); }); } else { throw new Error('Worker.ts: parentPort is null. This script must be run as a worker.'); } function handleError(error) { if (worker_threads_1.parentPort) { worker_threads_1.parentPort.postMessage({ success: false, error: error.message }); } else { console.error('Worker.ts: Unhandled error occurred, but parentPort is null.', error); } } process.on('uncaughtException', handleError); process.on('unhandledRejection', (reason) => { handleError(reason instanceof Error ? reason : new Error(String(reason))); });