import type { <%= EntryName %> } from '<%= language-id %>-language'; import { expandToNode, joinToNode, toString } from 'langium/generate'; import * as fs from 'node:fs'; import * as path from 'node:path'; import { extractDestinationAndName } from './util.js'; export function generateJavaScript(model: <%= EntryName %>, filePath: string, destination: string | undefined): string { const data = extractDestinationAndName(filePath, destination); const generatedFilePath = `${path.join(data.destination, data.name)}.js`; const fileNode = expandToNode` "use strict"; ${joinToNode(model.greetings, greeting => `console.log('Hello, ${greeting.person.ref?.name}!');`, { appendNewLineIfNotEmpty: true })} `.appendNewLineIfNotEmpty(); if (!fs.existsSync(data.destination)) { fs.mkdirSync(data.destination, { recursive: true }); } fs.writeFileSync(generatedFilePath, toString(fileNode)); return generatedFilePath; }