#!/usr/bin/env node const path = require('path'); // eslint-disable-line @typescript-eslint/no-var-requires const fs = require('fs'); var devMode = process.env.WARTHOG_CLI_DEV_MODE === 'true'; var tsCommands = ['codegen']; var runCommand = process.argv[2]; var commandRequiresTS = tsCommands.indexOf(runCommand) > -1; var srcFolder = `${__dirname}/../src/cli`; var srcFileExists = fs.existsSync(`${srcFolder}/cli.ts`); if (commandRequiresTS) { try { require.resolve('ts-node'); } catch (e) { console.error('Error: ts-node is required.'); process.exit(1); } require('ts-node').register({ project: path.join(process.cwd(), 'tsconfig.json') }); } if (devMode || (commandRequiresTS && srcFileExists)) { // this runs from the typescript source (for dev only) // hook into ts-node so we can run typescript on the fly // run the CLI with the current process arguments require(`${srcFolder}/cli`).run(process.argv); } else { require(`${__dirname}/../dist/cli/cli`).run(process.argv); }