langium-cli
Version:
CLI for Langium - the language engineering tool
43 lines • 1.78 kB
JavaScript
/******************************************************************************
* Copyright 2021 TypeFox GmbH
* This program and the accompanying materials are made available under the
* terms of the MIT License, which is available in the project root.
******************************************************************************/
import { Command, Option } from 'commander';
import { generate, generateTypes } from './generate.js';
import { cliVersion } from './generator/node-util.js';
const program = new Command();
program
.version(cliVersion)
.command('generate')
.description('Generate code for a Langium grammar')
.option('-f, --file <file>', 'The configuration file or package.json setting up the generator')
.option('-w, --watch', 'Enable watch mode to regenerate when a grammar file is changed', false)
.addOption(new Option('-m, --mode <mode>', 'Mode for optimized builds for your current environment').choices(['development', 'production']))
.action((options) => {
generate(options)
.then(success => {
if (!success) {
process.exit(2);
}
else {
process.exit(0);
}
}).catch(err => {
console.error(err);
process.exit(1);
});
});
program.command('extract-types')
.argument('<file>', 'The langium grammar file to generate types for')
.option('-o, --output <file>', "Output file name; default is 'types.langium' next to the grammar file")
.option('-f, --force', 'Force overwriting any existing file')
.action((file, options) => {
options.grammar = file;
generateTypes(options).catch(err => {
console.error(err);
process.exit(1);
});
});
program.parse(process.argv);
//# sourceMappingURL=langium.js.map