@gobstones/gobstones-parser
Version:
Gobstones parser
46 lines (41 loc) • 1.4 kB
text/typescript
import { Parser } from './parser/parser';
import { cli } from '@gobstones/gobstones-core/cli';
import { intl } from './translations';
// eslint-disable-next-line @typescript-eslint/no-var-requires
const packageJSON = require('../package.json');
interface CLIArguments {
language: string;
in: string;
out: string;
from?: string;
to?: string;
names?: string;
locales?: string;
}
// Read from the package.json in order to retrieve the name and version
const name = (packageJSON.name as string).split('/').slice(-1).pop();
const versionNumber = packageJSON.version;
cli({
translator: intl,
texts: {
name,
versionNumber,
help: 'cli.descriptions.help',
tool: 'cli.descriptions.tool',
language: 'cli.descriptions.language',
languageError: 'cli.errors.language',
version: 'cli.descriptions.version'
}
})
.command('parse [code]', 'cli.parse.description', (cmd) => {
cmd.input('cli.descriptions.in', 'cli.errors.file')
.output('cli.descriptions.out')
.action((app, _, opts: CLIArguments) => {
app.outputHelpOnNoArgs();
const input = app.read();
const parser = new Parser(input);
const output = JSON.stringify(parser.parse(), undefined, 2);
app.write(output);
});
})
.run();