import { CreateDependencies, CreateDependenciesContext, DependencyType, NxPluginV2, ProjectConfiguration, RawProjectGraphDependency, StaticDependency, TargetConfiguration, logger, } from "@nx/devkit"; import { GenerateExecutorSchema } from "./executors/generate/schema"; import { existsSync } from "fs"; import * as path from "path"; type CreateDependenciesParametersCompat = | Parameters // v17 | [CreateDependenciesContext] // v16.7 | [ { projectsConfigurations?: { projects: Record; }; } ]; // target.executor === "@gorilainvest/nx-buf:generate" ) as TargetConfiguration | undefined; if (!bufTask?.options) continue; const projectJsonPath = path.join(config.root, "project.json"); if (!existsSync(projectJsonPath)) { logger.warn(`Project file ${projectJsonPath} does not exist.`); continue; } deps.push({ source: project, target: bufTask.options.srcProject, sourceFile: projectJsonPath, type: DependencyType.static, dependencyType: DependencyType.static, // compat with 16.7 } as any as StaticDependency); } return deps; }, }; export = plugin;