UNPKG

@tobiastengler/create-relay-app

Version:

Easy configuration of Relay for existing projects

38 lines (37 loc) 1.31 kB
import { TaskBase } from "./TaskBase.js"; import { BABEL_RELAY_PACKAGE, VITE_RELAY_PACKAGE } from "../consts.js"; import { bold } from "../utils/cli.js"; export class InstallNpmDevDependenciesTask extends TaskBase { constructor(context) { super(); this.context = context; this.message = "Add Relay devDependencies"; } isEnabled() { return true; } async run() { if (this.context.args.skipInstall) { this.skip(); return; } const packages = this.getPackages(); this.updateMessage(this.message + " " + packages.map((p) => bold(p)).join(" ")); const latestPackages = packages.map((p) => (p.substring(1).includes("@") ? p : p + "@latest")); await this.context.manager.addDevDependency(latestPackages); } getPackages() { const relayDevDep = ["relay-compiler"]; if (this.context.args.typescript) { relayDevDep.push("@types/react-relay"); relayDevDep.push("@types/relay-runtime"); } if (this.context.is("cra") || this.context.is("vite")) { relayDevDep.push(BABEL_RELAY_PACKAGE); } if (this.context.is("vite")) { relayDevDep.push(VITE_RELAY_PACKAGE); } return relayDevDep; } }