UNPKG

nestia

Version:
65 lines (59 loc) 1.74 kB
#!/usr/bin/env node const USAGE = `Wrong command has been detected. Use like below: npx nestia [command] [options?] 1. npx nestia start <directory> 2. npx nestia template <directory> 3. npx nestia setup 4. npx nestia dependencies 5. npx nestia init 6. npx nestia sdk 7. npx nestia swagger 9. npx nestia e2e 10. npx nestia all `; function halt(desc: string): never { console.error(desc); process.exit(-1); } async function main(): Promise<void> { const type: string | undefined = process.argv[2]; const argv: string[] = process.argv.slice(3); if (type === "start") { await ( await import("./NestiaStarter") ).NestiaStarter.clone((msg) => halt(msg ?? USAGE))(argv); } else if (type === "template") { await ( await import("./NestiaTemplate") ).NestiaTemplate.clone((msg) => halt(msg ?? USAGE))(argv); } else if (type === "setup") { try { await import("comment-json"); await import("inquirer"); await import("commander"); } catch { halt(`nestia has not been installed. Run "npm i -D nestia" before.`); } await (await import("./NestiaSetupWizard")).NestiaSetupWizard.setup(); } else if ( type === "dependencies" || type === "init" || type === "sdk" || type === "swagger" || type === "e2e" || type === "all" ) { try { require.resolve("@nestia/sdk/lib/executable/sdk"); } catch { halt( `@nestia/sdk has not been installed. Run "npx nestia setup" before.`, ); } await import("@nestia/sdk/lib/executable/sdk"); } else halt(USAGE); } main().catch((exp) => { console.log(exp.message); process.exit(-1); });