UNPKG

fixparser

Version:

FIX.Latest / 5.0 SP2 Parser / AI Agent Trading

47 lines (34 loc) 1.73 kB
import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import dotenv from 'dotenv'; import { buildTime, packageVersion, releaseInformation } from '../globals.js'; // Load environment variables dotenv.config(); // Convert __dirname and __filename for ESM const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // Set global variables globalThis.__PACKAGE_VERSION__ = packageVersion; globalThis.__BUILD_TIME__ = buildTime; globalThis.__RELEASE_INFORMATION__ = releaseInformation; globalThis.__DISTRIBUTED_CACHING_MECHANISM__ = process.env.DISTRIBUTED_CACHING_MECHANISM; globalThis.__MULTI_THREAD_SYNC_MUTEX__ = process.env.MULTI_THREAD_SYNC_MUTEX; globalThis.__INTERFACE_COMPOSITION_PATTERN__ = process.env.INTERFACE_COMPOSITION_PATTERN; // Read and process the input file const inputFileName = process.argv[2]; const file = path.join(__dirname, inputFileName); const fileData: string = fs.readFileSync(file, { encoding: 'utf8', flag: 'r' }); const tmpDir = path.join(__dirname, '.processed-examples'); if (!fs.existsSync(tmpDir)) { fs.mkdirSync(tmpDir); } const replaceString = (from: string, to: string, input: string) => input.toString().replace(new RegExp(from, 'g'), to); let newFileData = fileData; newFileData = replaceString("'fixparser'", "'../../src/FIXParser'", newFileData); newFileData = replaceString("'fixparser/FIXServer'", "'../../src/FIXServer'", newFileData); const newFileDataBuffer = Buffer.from(newFileData, 'utf8'); const outputFilePath = path.join(tmpDir, inputFileName); fs.writeFileSync(outputFilePath, newFileDataBuffer); // Dynamically import the modified module await import(`file://${outputFilePath}`);