UNPKG

functionalscript

Version:

FunctionalScript is a purely functional subset of JavaScript

32 lines (31 loc) 1.17 kB
import { transpile } from "./transpiler/module.f.js"; import { stringify, stringifyAsTree } from "./serializer/module.f.js"; import { sort } from "../types/object/module.f.js"; export const compile = ({ console: { error }, fs, process: { argv } }) => { const args = argv.slice(2); if (args.length < 2) { error('Error: Requires 2 or more arguments'); return Promise.resolve(1); } const inputFileName = args[0]; const outputFileName = args[1]; const result = transpile(fs)(inputFileName); switch (result[0]) { case 'ok': { if (outputFileName.endsWith('.json')) { const output = stringifyAsTree(sort)(result[1]); fs.writeFileSync(outputFileName, output); break; } const output = stringify(sort)(result[1]); fs.writeFileSync(outputFileName, output); break; } case 'error': { const metadata = result[1].metadata; error(`${metadata?.path}:${metadata?.line}:${metadata?.column} - error: ${result[1].message}`); break; } } return Promise.resolve(0); };