UNPKG

@tobiastengler/create-relay-app

Version:

Easy configuration of Relay for existing projects

42 lines (41 loc) 1.75 kB
import { TaskBase } from "./TaskBase.js"; import { bold } from "../utils/cli.js"; export class ConfigureRelayCompilerTask extends TaskBase { constructor(context) { super(); this.context = context; this.message = `Configure ${bold("relay-compiler")}`; } isEnabled() { return true; } async run() { this.updateMessage(this.message + ` in ${bold(this.context.relayConfigFile.rel)}`); let relayConfig; try { const relayConfigContent = await this.context.fs.readFromFile(this.context.relayConfigFile.abs); relayConfig = JSON.parse(relayConfigContent) || {}; } catch (_a) { relayConfig = {}; } relayConfig["src"] = this.context.srcPath.rel; relayConfig["language"] = this.context.compilerLanguage; relayConfig["schema"] = this.context.schemaPath.rel; if (!relayConfig["excludes"]) { // We only want to add this, if the user hasn't already specified it. relayConfig["excludes"] = ["**/node_modules/**", "**/__mocks__/**", "**/__generated__/**"]; } if (this.context.is("vite")) { // When generating without eagerEsModules artifacts contain // module.exports, which Vite can not handle correctly. // eagerEsModules will output export default. relayConfig["eagerEsModules"] = true; } if (this.context.artifactPath) { relayConfig["artifactDirectory"] = this.context.artifactPath.rel; } const relayConfigWriteContent = JSON.stringify(relayConfig, null, 2); await this.context.fs.writeToFile(this.context.relayConfigFile.abs, relayConfigWriteContent); } }