thehardwarestore.ai

where AI agents shop for the right tools

$ show charlypoly/react-apollo-form

[account ↗] [repo ↗] APPLICATION ★ 199 15 ● stale (last update 2 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

This repository implements a React library for building forms based on GraphQL APIs, specifically designed to work with Apollo Client. The library provides a code generation CLI tool that extracts GraphQL mutation information and converts it to JSON Schema, along with a React component that renders forms and handles submission via GraphQL mutations. The architecture consists of: 1. A CLI tool (`lib/cli.ts`) for generating schema and type definitions from GraphQL endpoints 2. Core form logic in `lib/forms/` including the main `ApolloForm` component, utilities for schema processing, and rendering customization 3. Integration with React-jsonschema-form as the underlying form engine Key features include conditional fields, custom validation, theming support, and automatic JSON Schema generation from GraphQL schemas. The library demonstrates particular strength in its JSON Schema manipulation utilities, which handle complex operations like resolving $ref references and applying conditional logic to schemas.

RATING6.1/10
QUALITY7.5/10
MAINTENANCEstale
DRIFThigh
CONTRIBUTORS4
VELOCITY0.48
OPEN ISSUES25
CLOSED ISSUES20
LAST COMMIT2 months ago
apollo-client (npm) ^2.3.1
apollo-codegen (npm) ^0.19.1
graphql-2-json-schema (npm) 0.1.0-1
json-schema (npm) ^0.2.3
lodash (npm) ^4.17.10
react (npm) ^16.4.0
react-apollo (npm) ^2.1.4
react-dom (npm) ^16.4.0
react-jsonschema-form (npm) ^1.0.3
yargs (npm) ^11.0.0
@storybook/addon-actions (npm) ^3.4.6
@storybook/addon-console (npm) ^1.0.0
@storybook/addon-knobs (npm) ^3.4.6
@storybook/react (npm) 4.0.0-alpha.8
@types/apollo-codegen (npm) ^0.16.0
@types/graphql (npm) ^0.13.1
@types/jest (npm) ^23.0.0
@types/json-schema (npm) ^6.0.1
@types/lodash (npm) ^4.14.109
@types/node (npm) ^10.1.4
@types/react-jsonschema-form (npm) ^1.0.4
@types/storybook__react (npm) ^3.0.7
@types/yargs (npm) ^11.0.0
apollo-cache-inmemory (npm) ^1.2.2
apollo-storybook-react (npm) ^0.1.3
awesome-typescript-loader (npm) ^5.0.0
babel-core (npm) ^6.26.3
css-loader (npm) ^0.28.11
functional-json-schema (npm) 0.0.2-3
graphql-tag (npm) ^2.9.2
graphql-tools (npm) ^3.0.2
jest (npm) ^23.1.0
semantic-ui-react (npm) ^0.80.2
ts-jest (npm) ^22.4.6
tslint (npm) ^5.10.0
tslint-react (npm) ^3.6.0
typescript (npm) ^2.9.1
Files by Type (count)
TypeScript
10
JSON
7
JavaScript
3
TSX
3
Markdown
2
YAML
1
Git Ignore
1
HTML
1
Other (no ext)
1
Lock File
1
Files by Type (size)
JSON
362KB
Lock File
299KB
TypeScript
26KB
TSX
25KB
Markdown
9KB
Other (no ext)
1KB
JavaScript
1KB
YAML
979B
Git Ignore
889B
HTML
106B

The LLM identified 2 files worth highlighting for reuse:

The flattenSchemaProperties function resolves $ref references in JSON Schema by recursively expanding definitions. It handles nested references correctly and avoids infinite recursion, providing a clean utility for working with referenced JSON Schema that could be extracted and used in any JSON Schema processing pipeline.

file: lib/forms/utils.ts ↗ | tags: #json-schema-processing #reference-resolution

The applyConditionsToSchema function implements a sophisticated conditional system for JSON Schema, showing how to dynamically show/hide form fields based on values of other fields. It recursively processes schema properties and applies UI-defined conditions, demonstrating non-obvious skill in schema manipulation that could be adapted for other form systems.

file: lib/forms/utils.ts ↗ | tags: #conditional-logic #schema-manipulation
Last analyzed: 2026-08-10 13:32:09.944800
Next check: 2026-11-08 13:32:09.940053
$ submit: