@baseplate-dev/react-generators 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/react-packages.d.ts +2 -6
- package/dist/constants/react-packages.d.ts.map +1 -1
- package/dist/constants/react-packages.js +2 -6
- package/dist/constants/react-packages.js.map +1 -1
- package/dist/generators/admin/_providers/admin-crud-action-container.d.ts +14 -0
- package/dist/generators/admin/_providers/admin-crud-action-container.d.ts.map +1 -1
- package/dist/generators/admin/_providers/admin-crud-action-container.js.map +1 -1
- package/dist/generators/admin/_providers/admin-crud-column-container.d.ts +6 -2
- package/dist/generators/admin/_providers/admin-crud-column-container.d.ts.map +1 -1
- package/dist/generators/admin/_providers/admin-crud-column-container.js.map +1 -1
- package/dist/generators/admin/_providers/admin-crud-input-container.d.ts +4 -2
- package/dist/generators/admin/_providers/admin-crud-input-container.d.ts.map +1 -1
- package/dist/generators/admin/_providers/admin-crud-input-container.js.map +1 -1
- package/dist/generators/admin/_providers/index.d.ts +1 -2
- package/dist/generators/admin/_providers/index.d.ts.map +1 -1
- package/dist/generators/admin/_providers/index.js +1 -2
- package/dist/generators/admin/_providers/index.js.map +1 -1
- package/dist/generators/admin/_utils/data-loader.d.ts +48 -0
- package/dist/generators/admin/_utils/data-loader.d.ts.map +1 -0
- package/dist/generators/admin/_utils/data-loader.js +55 -0
- package/dist/generators/admin/_utils/data-loader.js.map +1 -0
- package/dist/generators/admin/_utils/get-model-name-variants.d.ts +14 -0
- package/dist/generators/admin/_utils/get-model-name-variants.d.ts.map +1 -0
- package/dist/generators/admin/_utils/get-model-name-variants.js +23 -0
- package/dist/generators/admin/_utils/get-model-name-variants.js.map +1 -0
- package/dist/generators/admin/admin-crud-delete-action/admin-crud-delete-action.generator.d.ts +15 -2
- package/dist/generators/admin/admin-crud-delete-action/admin-crud-delete-action.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-delete-action/admin-crud-delete-action.generator.js +65 -17
- package/dist/generators/admin/admin-crud-delete-action/admin-crud-delete-action.generator.js.map +1 -1
- package/dist/generators/admin/admin-crud-edit/admin-crud-edit.generator.d.ts +21 -205
- package/dist/generators/admin/admin-crud-edit/admin-crud-edit.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-edit/admin-crud-edit.generator.js +235 -93
- package/dist/generators/admin/admin-crud-edit/admin-crud-edit.generator.js.map +1 -1
- package/dist/generators/admin/admin-crud-edit/generated/index.d.ts +59 -18
- package/dist/generators/admin/admin-crud-edit/generated/index.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-edit/generated/template-renderers.d.ts +13 -0
- package/dist/generators/admin/admin-crud-edit/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-edit/generated/template-renderers.js +4 -2
- package/dist/generators/admin/admin-crud-edit/generated/template-renderers.js.map +1 -1
- package/dist/generators/admin/admin-crud-edit/generated/typed-templates.d.ts +46 -18
- package/dist/generators/admin/admin-crud-edit/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-edit/generated/typed-templates.js +21 -14
- package/dist/generators/admin/admin-crud-edit/generated/typed-templates.js.map +1 -1
- package/dist/generators/admin/admin-crud-edit/templates/create.tsx +15 -21
- package/dist/generators/admin/admin-crud-edit/templates/edit-form.tsx +20 -22
- package/dist/generators/admin/admin-crud-edit/templates/edit.tsx +18 -21
- package/dist/generators/admin/admin-crud-edit/templates/route.tsx +1 -1
- package/dist/generators/admin/admin-crud-embedded-form/admin-crud-embedded-form.generator.d.ts +2 -2
- package/dist/generators/admin/admin-crud-embedded-form/admin-crud-embedded-form.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-embedded-form/admin-crud-embedded-form.generator.js +21 -21
- package/dist/generators/admin/admin-crud-embedded-form/admin-crud-embedded-form.generator.js.map +1 -1
- package/dist/generators/admin/admin-crud-embedded-input/admin-crud-embedded-input.generator.d.ts +1 -0
- package/dist/generators/admin/admin-crud-embedded-input/admin-crud-embedded-input.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-embedded-input/admin-crud-embedded-input.generator.js +12 -5
- package/dist/generators/admin/admin-crud-embedded-input/admin-crud-embedded-input.generator.js.map +1 -1
- package/dist/generators/admin/admin-crud-foreign-column/admin-crud-foreign-column.generator.d.ts +3 -9
- package/dist/generators/admin/admin-crud-foreign-column/admin-crud-foreign-column.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-foreign-column/admin-crud-foreign-column.generator.js +22 -33
- package/dist/generators/admin/admin-crud-foreign-column/admin-crud-foreign-column.generator.js.map +1 -1
- package/dist/generators/admin/admin-crud-foreign-input/admin-crud-foreign-input.generator.d.ts +15 -2
- package/dist/generators/admin/admin-crud-foreign-input/admin-crud-foreign-input.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-foreign-input/admin-crud-foreign-input.generator.js +76 -32
- package/dist/generators/admin/admin-crud-foreign-input/admin-crud-foreign-input.generator.js.map +1 -1
- package/dist/generators/admin/admin-crud-list/admin-crud-list.generator.d.ts +28 -3
- package/dist/generators/admin/admin-crud-list/admin-crud-list.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-list/admin-crud-list.generator.js +114 -89
- package/dist/generators/admin/admin-crud-list/admin-crud-list.generator.js.map +1 -1
- package/dist/generators/admin/admin-crud-list/generated/index.d.ts +38 -221
- package/dist/generators/admin/admin-crud-list/generated/index.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-list/generated/template-renderers.d.ts +13 -0
- package/dist/generators/admin/admin-crud-list/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-list/generated/template-renderers.js +4 -4
- package/dist/generators/admin/admin-crud-list/generated/template-renderers.js.map +1 -1
- package/dist/generators/admin/admin-crud-list/generated/typed-templates.d.ts +25 -221
- package/dist/generators/admin/admin-crud-list/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-list/generated/typed-templates.js +11 -10
- package/dist/generators/admin/admin-crud-list/generated/typed-templates.js.map +1 -1
- package/dist/generators/admin/admin-crud-list/templates/index.tsx +8 -10
- package/dist/generators/admin/admin-crud-list/templates/table.tsx +9 -4
- package/dist/generators/admin/admin-crud-text-column/admin-crud-text-column.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-crud-text-column/admin-crud-text-column.generator.js +2 -4
- package/dist/generators/admin/admin-crud-text-column/admin-crud-text-column.generator.js.map +1 -1
- package/dist/generators/admin/admin-home/admin-home.generator.d.ts +8 -7
- package/dist/generators/admin/admin-home/admin-home.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-home/generated/index.d.ts +16 -14
- package/dist/generators/admin/admin-home/generated/index.d.ts.map +1 -1
- package/dist/generators/admin/admin-home/generated/template-renderers.d.ts +8 -7
- package/dist/generators/admin/admin-home/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/admin/admin-home/generated/template-renderers.js +4 -4
- package/dist/generators/admin/admin-home/generated/template-renderers.js.map +1 -1
- package/dist/generators/admin/admin-home/generated/typed-templates.d.ts +8 -7
- package/dist/generators/admin/admin-home/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/admin/admin-home/generated/typed-templates.js +2 -2
- package/dist/generators/admin/admin-home/generated/typed-templates.js.map +1 -1
- package/dist/generators/admin/admin-home/templates/routes/index.tsx +14 -4
- package/dist/generators/admin/admin-layout/admin-layout.generator.d.ts +8 -1
- package/dist/generators/admin/admin-layout/admin-layout.generator.d.ts.map +1 -1
- package/dist/generators/admin/admin-layout/generated/index.d.ts +16 -3
- package/dist/generators/admin/admin-layout/generated/index.d.ts.map +1 -1
- package/dist/generators/admin/admin-layout/generated/template-renderers.d.ts +8 -1
- package/dist/generators/admin/admin-layout/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/admin/admin-layout/generated/template-renderers.js +7 -1
- package/dist/generators/admin/admin-layout/generated/template-renderers.js.map +1 -1
- package/dist/generators/admin/admin-layout/generated/typed-templates.d.ts +16 -3
- package/dist/generators/admin/admin-layout/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/admin/admin-layout/generated/typed-templates.js +4 -0
- package/dist/generators/admin/admin-layout/generated/typed-templates.js.map +1 -1
- package/dist/generators/admin/admin-layout/templates/components/layouts/admin-layout.tsx +4 -1
- package/dist/generators/admin/admin-layout/templates/components/layouts/app-breadcrumbs.tsx +31 -4
- package/dist/generators/admin/index.d.ts +0 -1
- package/dist/generators/admin/index.d.ts.map +1 -1
- package/dist/generators/admin/index.js +0 -1
- package/dist/generators/admin/index.js.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/index.d.ts +42 -22
- package/dist/generators/apollo/react-apollo/generated/index.d.ts.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/template-paths.d.ts +2 -1
- package/dist/generators/apollo/react-apollo/generated/template-paths.d.ts.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/template-paths.js +3 -2
- package/dist/generators/apollo/react-apollo/generated/template-paths.js.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/template-renderers.d.ts +3 -15
- package/dist/generators/apollo/react-apollo/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/template-renderers.js +4 -33
- package/dist/generators/apollo/react-apollo/generated/template-renderers.js.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/ts-import-providers.d.ts +30 -5
- package/dist/generators/apollo/react-apollo/generated/ts-import-providers.d.ts.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/ts-import-providers.js +13 -5
- package/dist/generators/apollo/react-apollo/generated/ts-import-providers.js.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/typed-templates.d.ts +33 -4
- package/dist/generators/apollo/react-apollo/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/apollo/react-apollo/generated/typed-templates.js +38 -10
- package/dist/generators/apollo/react-apollo/generated/typed-templates.js.map +1 -1
- package/dist/generators/apollo/react-apollo/graphql-eslint-rules.d.ts +2 -0
- package/dist/generators/apollo/react-apollo/graphql-eslint-rules.d.ts.map +1 -0
- package/dist/generators/apollo/react-apollo/graphql-eslint-rules.js +43 -0
- package/dist/generators/apollo/react-apollo/graphql-eslint-rules.js.map +1 -0
- package/dist/generators/apollo/react-apollo/providers/graphql-imports.d.ts +29 -0
- package/dist/generators/apollo/react-apollo/providers/graphql-imports.d.ts.map +1 -0
- package/dist/generators/apollo/react-apollo/providers/graphql-imports.js +11 -0
- package/dist/generators/apollo/react-apollo/providers/graphql-imports.js.map +1 -0
- package/dist/generators/apollo/react-apollo/providers/index.d.ts +1 -1
- package/dist/generators/apollo/react-apollo/providers/index.d.ts.map +1 -1
- package/dist/generators/apollo/react-apollo/providers/index.js +1 -1
- package/dist/generators/apollo/react-apollo/providers/index.js.map +1 -1
- package/dist/generators/apollo/react-apollo/react-apollo.generator.d.ts +24 -17
- package/dist/generators/apollo/react-apollo/react-apollo.generator.d.ts.map +1 -1
- package/dist/generators/apollo/react-apollo/react-apollo.generator.js +74 -83
- package/dist/generators/apollo/react-apollo/react-apollo.generator.js.map +1 -1
- package/dist/generators/apollo/react-apollo/templates/package/graphql.config.ts +6 -0
- package/dist/generators/apollo/react-apollo/templates/src/graphql.ts +17 -0
- package/dist/generators/auth/_providers/auth-hooks.d.ts +0 -2
- package/dist/generators/auth/_providers/auth-hooks.d.ts.map +1 -1
- package/dist/generators/auth/_providers/auth-hooks.js +0 -1
- package/dist/generators/auth/_providers/auth-hooks.js.map +1 -1
- package/dist/generators/auth/auth-errors/auth-errors.generator.d.ts +0 -1
- package/dist/generators/auth/auth-errors/auth-errors.generator.d.ts.map +1 -1
- package/dist/generators/auth/auth-identify/auth-identify.generator.d.ts +0 -1
- package/dist/generators/auth/auth-identify/auth-identify.generator.d.ts.map +1 -1
- package/dist/generators/core/react/react.generator.d.ts +1 -0
- package/dist/generators/core/react/react.generator.d.ts.map +1 -1
- package/dist/generators/core/react-error-boundary/generated/index.d.ts +224 -0
- package/dist/generators/core/react-error-boundary/generated/index.d.ts.map +1 -1
- package/dist/generators/core/react-error-boundary/generated/index.js +2 -0
- package/dist/generators/core/react-error-boundary/generated/index.js.map +1 -1
- package/dist/generators/core/react-error-boundary/generated/template-paths.d.ts +1 -0
- package/dist/generators/core/react-error-boundary/generated/template-paths.d.ts.map +1 -1
- package/dist/generators/core/react-error-boundary/generated/template-paths.js +1 -0
- package/dist/generators/core/react-error-boundary/generated/template-paths.js.map +1 -1
- package/dist/generators/core/react-error-boundary/generated/template-renderers.d.ts +3 -0
- package/dist/generators/core/react-error-boundary/generated/template-renderers.d.ts.map +1 -1
- package/dist/generators/core/react-error-boundary/generated/template-renderers.js +11 -0
- package/dist/generators/core/react-error-boundary/generated/template-renderers.js.map +1 -1
- package/dist/generators/core/react-error-boundary/generated/ts-import-providers.d.ts +18 -0
- package/dist/generators/core/react-error-boundary/generated/ts-import-providers.d.ts.map +1 -0
- package/dist/generators/core/react-error-boundary/generated/ts-import-providers.js +26 -0
- package/dist/generators/core/react-error-boundary/generated/ts-import-providers.js.map +1 -0
- package/dist/generators/core/react-error-boundary/generated/typed-templates.d.ts +215 -0
- package/dist/generators/core/react-error-boundary/generated/typed-templates.d.ts.map +1 -1
- package/dist/generators/core/react-error-boundary/generated/typed-templates.js +14 -1
- package/dist/generators/core/react-error-boundary/generated/typed-templates.js.map +1 -1
- package/dist/generators/core/react-error-boundary/index.d.ts +2 -0
- package/dist/generators/core/react-error-boundary/index.d.ts.map +1 -1
- package/dist/generators/core/react-error-boundary/index.js +1 -0
- package/dist/generators/core/react-error-boundary/index.js.map +1 -1
- package/dist/generators/core/react-error-boundary/react-error-boundary.generator.d.ts +26 -14
- package/dist/generators/core/react-error-boundary/react-error-boundary.generator.d.ts.map +1 -1
- package/dist/generators/core/react-error-boundary/react-error-boundary.generator.js +7 -17
- package/dist/generators/core/react-error-boundary/react-error-boundary.generator.js.map +1 -1
- package/dist/generators/core/react-error-boundary/templates/components/ui/async-boundary.tsx +48 -0
- package/dist/generators/core/react-error-boundary/templates/components/ui/error-boundary.tsx +2 -10
- package/dist/generators/core/react-router/react-router.generator.d.ts +1 -0
- package/dist/generators/core/react-router/react-router.generator.d.ts.map +1 -1
- package/dist/generators/core/react-typescript/react-typescript.generator.d.ts +5 -1
- package/dist/generators/core/react-typescript/react-typescript.generator.d.ts.map +1 -1
- package/dist/generators/core/react-typescript/react-typescript.generator.js +31 -24
- package/dist/generators/core/react-typescript/react-typescript.generator.js.map +1 -1
- package/dist/writers/graphql/gql-tada.d.ts +69 -0
- package/dist/writers/graphql/gql-tada.d.ts.map +1 -0
- package/dist/writers/graphql/gql-tada.js +118 -0
- package/dist/writers/graphql/gql-tada.js.map +1 -0
- package/dist/writers/graphql/graphql.d.ts +133 -0
- package/dist/writers/graphql/graphql.d.ts.map +1 -0
- package/dist/writers/graphql/graphql.js +188 -0
- package/dist/writers/graphql/graphql.js.map +1 -0
- package/dist/writers/graphql/index.d.ts +2 -65
- package/dist/writers/graphql/index.d.ts.map +1 -1
- package/dist/writers/graphql/index.js +2 -216
- package/dist/writers/graphql/index.js.map +1 -1
- package/package.json +7 -5
- package/dist/generators/admin/_providers/admin-crud-display-container.d.ts +0 -7
- package/dist/generators/admin/_providers/admin-crud-display-container.d.ts.map +0 -1
- package/dist/generators/admin/_providers/admin-crud-display-container.js +0 -3
- package/dist/generators/admin/_providers/admin-crud-display-container.js.map +0 -1
- package/dist/generators/admin/_providers/admin-loader.d.ts +0 -14
- package/dist/generators/admin/_providers/admin-loader.d.ts.map +0 -1
- package/dist/generators/admin/_providers/admin-loader.js +0 -26
- package/dist/generators/admin/_providers/admin-loader.js.map +0 -1
- package/dist/generators/admin/_utils/data-display.d.ts +0 -10
- package/dist/generators/admin/_utils/data-display.d.ts.map +0 -1
- package/dist/generators/admin/_utils/data-display.js +0 -2
- package/dist/generators/admin/_utils/data-display.js.map +0 -1
- package/dist/generators/admin/_utils/data-loaders.d.ts +0 -23
- package/dist/generators/admin/_utils/data-loaders.d.ts.map +0 -1
- package/dist/generators/admin/_utils/data-loaders.js +0 -44
- package/dist/generators/admin/_utils/data-loaders.js.map +0 -1
- package/dist/generators/admin/_utils/foreign-data-dependency.d.ts +0 -15
- package/dist/generators/admin/_utils/foreign-data-dependency.d.ts.map +0 -1
- package/dist/generators/admin/_utils/foreign-data-dependency.js +0 -56
- package/dist/generators/admin/_utils/foreign-data-dependency.js.map +0 -1
- package/dist/generators/admin/_utils/graphql.d.ts +0 -3
- package/dist/generators/admin/_utils/graphql.d.ts.map +0 -1
- package/dist/generators/admin/_utils/graphql.js +0 -16
- package/dist/generators/admin/_utils/graphql.js.map +0 -1
- package/dist/generators/admin/admin-crud-queries/admin-crud-queries.generator.d.ts +0 -34
- package/dist/generators/admin/admin-crud-queries/admin-crud-queries.generator.d.ts.map +0 -1
- package/dist/generators/admin/admin-crud-queries/admin-crud-queries.generator.js +0 -203
- package/dist/generators/admin/admin-crud-queries/admin-crud-queries.generator.js.map +0 -1
- package/dist/generators/admin/admin-crud-queries/index.d.ts +0 -2
- package/dist/generators/admin/admin-crud-queries/index.d.ts.map +0 -1
- package/dist/generators/admin/admin-crud-queries/index.js +0 -2
- package/dist/generators/admin/admin-crud-queries/index.js.map +0 -1
- package/dist/generators/apollo/react-apollo/providers/generated-graphql.d.ts +0 -9
- package/dist/generators/apollo/react-apollo/providers/generated-graphql.d.ts.map +0 -1
- package/dist/generators/apollo/react-apollo/providers/generated-graphql.js +0 -7
- package/dist/generators/apollo/react-apollo/providers/generated-graphql.js.map +0 -1
- package/dist/generators/apollo/react-apollo/templates/package/codegen.ts +0 -24
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gql.tada rendering functions for generating TypeScript code with graphql() calls.
|
|
3
|
+
*
|
|
4
|
+
* This module provides functions to render GraphQL fragments and operations
|
|
5
|
+
* as TsCodeFragment objects that include the graphql() template literal call
|
|
6
|
+
* with proper imports and dependency arrays.
|
|
7
|
+
*/
|
|
8
|
+
import type { TsCodeFragment } from '@baseplate-dev/core-generators';
|
|
9
|
+
import type { GraphQLFragment, GraphQLOperation } from './graphql.js';
|
|
10
|
+
interface RenderOptions {
|
|
11
|
+
/** Whether to export the fragment/operation (default: true) */
|
|
12
|
+
exported?: boolean;
|
|
13
|
+
/** The path of the file being rendered (to determine if fragments need imports) */
|
|
14
|
+
currentPath: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Renders a GraphQL fragment as a TsCodeFragment for gql.tada.
|
|
18
|
+
*
|
|
19
|
+
* This function:
|
|
20
|
+
* 1. Renders the GraphQL fragment string
|
|
21
|
+
* 2. Collects fragment dependencies from spread fields
|
|
22
|
+
* 3. Generates imports for fragments from different files
|
|
23
|
+
* 4. Builds the graphql() call with dependency array
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const fragment = renderTadaFragment(userRowFragment, {
|
|
28
|
+
* currentPath: './user-table.tsx',
|
|
29
|
+
* exported: true,
|
|
30
|
+
* });
|
|
31
|
+
* // Output:
|
|
32
|
+
* // export const userRowFragment = graphql(`
|
|
33
|
+
* // fragment UserTable_items on User {
|
|
34
|
+
* // id
|
|
35
|
+
* // email
|
|
36
|
+
* // ...RoleManagerDialog_user
|
|
37
|
+
* // }
|
|
38
|
+
* // `, [roleManagerDialogUserFragment]);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function renderTadaFragment(fragment: GraphQLFragment, options: RenderOptions): TsCodeFragment;
|
|
42
|
+
/**
|
|
43
|
+
* Renders a GraphQL operation (query/mutation/subscription) as a TsCodeFragment for gql.tada.
|
|
44
|
+
*
|
|
45
|
+
* This function:
|
|
46
|
+
* 1. Renders the GraphQL operation string
|
|
47
|
+
* 2. Collects fragment dependencies from spread fields
|
|
48
|
+
* 3. Generates imports for fragments from different files
|
|
49
|
+
* 4. Builds the graphql() call with dependency array
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const query = renderTadaOperation(usersQuery, {
|
|
54
|
+
* currentPath: './queries.ts',
|
|
55
|
+
* exported: true,
|
|
56
|
+
* });
|
|
57
|
+
* // Output:
|
|
58
|
+
* // export const usersQuery = graphql(`
|
|
59
|
+
* // query Users {
|
|
60
|
+
* // users {
|
|
61
|
+
* // ...UserTable_items
|
|
62
|
+
* // }
|
|
63
|
+
* // }
|
|
64
|
+
* // `, [userRowFragment]);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare function renderTadaOperation(operation: GraphQLOperation, options: RenderOptions): TsCodeFragment;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=gql-tada.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql-tada.d.ts","sourceRoot":"","sources":["../../../src/writers/graphql/gql-tada.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,gCAAgC,CAAC;AAIxC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAYtE,UAAU,aAAa;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;CACrB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,aAAa,GACrB,cAAc,CAkChB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,aAAa,GACrB,cAAc,CAkChB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gql.tada rendering functions for generating TypeScript code with graphql() calls.
|
|
3
|
+
*
|
|
4
|
+
* This module provides functions to render GraphQL fragments and operations
|
|
5
|
+
* as TsCodeFragment objects that include the graphql() template literal call
|
|
6
|
+
* with proper imports and dependency arrays.
|
|
7
|
+
*/
|
|
8
|
+
import { TsCodeUtils, tsImportBuilder } from '@baseplate-dev/core-generators';
|
|
9
|
+
import { collectFragmentDependencies, renderFragment, renderOperation, } from './graphql.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Fragment Rendering
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Renders a GraphQL fragment as a TsCodeFragment for gql.tada.
|
|
15
|
+
*
|
|
16
|
+
* This function:
|
|
17
|
+
* 1. Renders the GraphQL fragment string
|
|
18
|
+
* 2. Collects fragment dependencies from spread fields
|
|
19
|
+
* 3. Generates imports for fragments from different files
|
|
20
|
+
* 4. Builds the graphql() call with dependency array
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const fragment = renderTadaFragment(userRowFragment, {
|
|
25
|
+
* currentPath: './user-table.tsx',
|
|
26
|
+
* exported: true,
|
|
27
|
+
* });
|
|
28
|
+
* // Output:
|
|
29
|
+
* // export const userRowFragment = graphql(`
|
|
30
|
+
* // fragment UserTable_items on User {
|
|
31
|
+
* // id
|
|
32
|
+
* // email
|
|
33
|
+
* // ...RoleManagerDialog_user
|
|
34
|
+
* // }
|
|
35
|
+
* // `, [roleManagerDialogUserFragment]);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export function renderTadaFragment(fragment, options) {
|
|
39
|
+
const { exported = true, currentPath } = options;
|
|
40
|
+
// Collect all fragment dependencies from fields
|
|
41
|
+
const dependencies = collectFragmentDependencies(fragment.fields);
|
|
42
|
+
// Build the GraphQL string
|
|
43
|
+
const graphqlString = renderFragment(fragment);
|
|
44
|
+
// Build imports for fragments from different files
|
|
45
|
+
const imports = [
|
|
46
|
+
tsImportBuilder(['graphql']).from('@src/graphql'),
|
|
47
|
+
];
|
|
48
|
+
const depVariableNames = [];
|
|
49
|
+
for (const dep of dependencies) {
|
|
50
|
+
depVariableNames.push(dep.variableName);
|
|
51
|
+
// Only import if from a different file
|
|
52
|
+
if (dep.path !== currentPath) {
|
|
53
|
+
imports.push(tsImportBuilder([dep.variableName]).from(dep.path));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Build the graphql() call
|
|
57
|
+
const exportKeyword = exported ? 'export ' : '';
|
|
58
|
+
const depsArray = depVariableNames.length > 0 ? `, [${depVariableNames.join(', ')}]` : '';
|
|
59
|
+
const code = `${exportKeyword}const ${fragment.variableName} = graphql(\`
|
|
60
|
+
${graphqlString}
|
|
61
|
+
\`${depsArray});`;
|
|
62
|
+
return TsCodeUtils.templateWithImports(imports) `${code}`;
|
|
63
|
+
}
|
|
64
|
+
// ============================================================================
|
|
65
|
+
// Operation Rendering
|
|
66
|
+
// ============================================================================
|
|
67
|
+
/**
|
|
68
|
+
* Renders a GraphQL operation (query/mutation/subscription) as a TsCodeFragment for gql.tada.
|
|
69
|
+
*
|
|
70
|
+
* This function:
|
|
71
|
+
* 1. Renders the GraphQL operation string
|
|
72
|
+
* 2. Collects fragment dependencies from spread fields
|
|
73
|
+
* 3. Generates imports for fragments from different files
|
|
74
|
+
* 4. Builds the graphql() call with dependency array
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const query = renderTadaOperation(usersQuery, {
|
|
79
|
+
* currentPath: './queries.ts',
|
|
80
|
+
* exported: true,
|
|
81
|
+
* });
|
|
82
|
+
* // Output:
|
|
83
|
+
* // export const usersQuery = graphql(`
|
|
84
|
+
* // query Users {
|
|
85
|
+
* // users {
|
|
86
|
+
* // ...UserTable_items
|
|
87
|
+
* // }
|
|
88
|
+
* // }
|
|
89
|
+
* // `, [userRowFragment]);
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export function renderTadaOperation(operation, options) {
|
|
93
|
+
const { exported, currentPath } = options;
|
|
94
|
+
// Collect all fragment dependencies from fields
|
|
95
|
+
const dependencies = collectFragmentDependencies(operation.fields);
|
|
96
|
+
// Build the GraphQL string
|
|
97
|
+
const graphqlString = renderOperation(operation);
|
|
98
|
+
// Build imports for fragments from different files
|
|
99
|
+
const imports = [
|
|
100
|
+
tsImportBuilder(['graphql']).from('@src/graphql'),
|
|
101
|
+
];
|
|
102
|
+
const depVariableNames = [];
|
|
103
|
+
for (const dep of dependencies) {
|
|
104
|
+
depVariableNames.push(dep.variableName);
|
|
105
|
+
// Only import if from a different file
|
|
106
|
+
if (dep.path !== currentPath) {
|
|
107
|
+
imports.push(tsImportBuilder([dep.variableName]).from(dep.path));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Build the graphql() call
|
|
111
|
+
const exportKeyword = exported ? 'export ' : '';
|
|
112
|
+
const depsArray = depVariableNames.length > 0 ? `, [${depVariableNames.join(', ')}]` : '';
|
|
113
|
+
const code = `${exportKeyword}const ${operation.variableName} = graphql(\`
|
|
114
|
+
${graphqlString}
|
|
115
|
+
\`${depsArray});`;
|
|
116
|
+
return TsCodeUtils.templateWithImports(imports) `${code}`;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=gql-tada.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql-tada.js","sourceRoot":"","sources":["../../../src/writers/graphql/gql-tada.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core GraphQL types and rendering utilities.
|
|
3
|
+
* These types are library-agnostic and can be used with any GraphQL code generation approach.
|
|
4
|
+
*/
|
|
5
|
+
interface GraphQLScalarValue {
|
|
6
|
+
type: 'scalar';
|
|
7
|
+
value: string | number | boolean;
|
|
8
|
+
}
|
|
9
|
+
interface GraphQLVariableValue {
|
|
10
|
+
type: 'variable';
|
|
11
|
+
variable: string;
|
|
12
|
+
}
|
|
13
|
+
type GraphQLArgumentValue = GraphQLScalarValue | GraphQLVariableValue;
|
|
14
|
+
interface GraphQLArgument {
|
|
15
|
+
name: string;
|
|
16
|
+
value: GraphQLArgumentValue;
|
|
17
|
+
}
|
|
18
|
+
interface GraphQLVariable {
|
|
19
|
+
name: string;
|
|
20
|
+
type: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Represents a GraphQL fragment definition.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const userRowFragment: GraphQLFragment = {
|
|
28
|
+
* variableName: 'userRowFragment',
|
|
29
|
+
* fragmentName: 'UserTable_items',
|
|
30
|
+
* onType: 'User',
|
|
31
|
+
* fields: [{ name: 'id' }, { name: 'email' }],
|
|
32
|
+
* path: './user-table.tsx',
|
|
33
|
+
* };
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export interface GraphQLFragment {
|
|
37
|
+
/** Variable name in generated code (e.g., "userRowFragment") */
|
|
38
|
+
variableName: string;
|
|
39
|
+
/** Fragment name in GraphQL (e.g., "UserTable_items") */
|
|
40
|
+
fragmentName: string;
|
|
41
|
+
/** GraphQL type the fragment applies to (e.g., "User") */
|
|
42
|
+
onType: string;
|
|
43
|
+
/** Fields to include in the fragment */
|
|
44
|
+
fields: GraphQLField[];
|
|
45
|
+
/** Path where this fragment is defined (for imports) */
|
|
46
|
+
path: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A simple field with a name, optional arguments, and optional nested fields.
|
|
50
|
+
*/
|
|
51
|
+
interface GraphQLSimpleField {
|
|
52
|
+
type?: 'simple' | undefined;
|
|
53
|
+
name: string;
|
|
54
|
+
args?: GraphQLArgument[];
|
|
55
|
+
fields?: GraphQLField[];
|
|
56
|
+
/** Used for sorting fields in output */
|
|
57
|
+
order?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A fragment spread that references a GraphQLFragment.
|
|
61
|
+
* This enables automatic dependency tracking and import generation.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const field: GraphQLSpreadField = {
|
|
66
|
+
* type: 'spread',
|
|
67
|
+
* fragment: userRowFragment,
|
|
68
|
+
* };
|
|
69
|
+
* // Renders as: ...UserTable_items
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
interface GraphQLSpreadField {
|
|
73
|
+
type: 'spread';
|
|
74
|
+
fragment: GraphQLFragment;
|
|
75
|
+
}
|
|
76
|
+
export type GraphQLField = GraphQLSimpleField | GraphQLSpreadField;
|
|
77
|
+
/**
|
|
78
|
+
* Represents a GraphQL operation (query, mutation, or subscription).
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* const usersQuery: GraphQLOperation = {
|
|
83
|
+
* type: 'query',
|
|
84
|
+
* variableName: 'usersQuery',
|
|
85
|
+
* operationName: 'Users',
|
|
86
|
+
* fields: [{
|
|
87
|
+
* name: 'users',
|
|
88
|
+
* fields: [{ type: 'spread', fragment: userRowFragment }],
|
|
89
|
+
* }],
|
|
90
|
+
* };
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export interface GraphQLOperation {
|
|
94
|
+
type: 'query' | 'mutation' | 'subscription';
|
|
95
|
+
/** Variable name in generated code (e.g., "usersQuery") */
|
|
96
|
+
variableName: string;
|
|
97
|
+
/** Operation name in GraphQL (e.g., "Users") */
|
|
98
|
+
operationName: string;
|
|
99
|
+
/** GraphQL variables for the operation */
|
|
100
|
+
variables?: GraphQLVariable[];
|
|
101
|
+
/** Fields to include in the operation */
|
|
102
|
+
fields: GraphQLField[];
|
|
103
|
+
}
|
|
104
|
+
export declare function isSimpleField(field: GraphQLField): field is GraphQLSimpleField;
|
|
105
|
+
export declare function isSpreadField(field: GraphQLField): field is GraphQLSpreadField;
|
|
106
|
+
/**
|
|
107
|
+
* Renders an array of GraphQL fields to a string.
|
|
108
|
+
* Fields are sorted by: simple fields first, then spread fields, then nested fields.
|
|
109
|
+
*/
|
|
110
|
+
export declare function renderFields(fields: GraphQLField[]): string;
|
|
111
|
+
/**
|
|
112
|
+
* Renders a GraphQL fragment definition to a string.
|
|
113
|
+
*/
|
|
114
|
+
export declare function renderFragment(fragment: GraphQLFragment): string;
|
|
115
|
+
/**
|
|
116
|
+
* Renders a GraphQL operation (query/mutation/subscription) to a string.
|
|
117
|
+
*/
|
|
118
|
+
export declare function renderOperation(operation: GraphQLOperation): string;
|
|
119
|
+
/**
|
|
120
|
+
* Merges an array of GraphQL fields, combining fields with the same name.
|
|
121
|
+
*/
|
|
122
|
+
export declare function mergeGraphqlFields(fields: GraphQLField[]): GraphQLField[];
|
|
123
|
+
/**
|
|
124
|
+
* Checks if two arrays of GraphQL fields are identical.
|
|
125
|
+
*/
|
|
126
|
+
export declare function areFieldsIdentical(fieldsOne: GraphQLField[], fieldsTwo: GraphQLField[]): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Collects all GraphQLFragment dependencies from a list of fields.
|
|
129
|
+
* Walks the field tree recursively to find all spread fields.
|
|
130
|
+
*/
|
|
131
|
+
export declare function collectFragmentDependencies(fields: GraphQLField[]): GraphQLFragment[];
|
|
132
|
+
export {};
|
|
133
|
+
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/writers/graphql/graphql.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,UAAU,kBAAkB;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAClC;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,oBAAoB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAEtE,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,oBAAoB,CAAC;CAC7B;AAMD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;GAEG;AACH,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,eAAe,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,UAAU,kBAAkB;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAMnE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,CAAC;IAC5C,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,yCAAyC;IACzC,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAMD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,kBAAkB,CAE7B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,GAClB,KAAK,IAAI,kBAAkB,CAE7B;AAuED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAc3D;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAIhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAcnE;AAgCD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAmBzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,YAAY,EAAE,EACzB,SAAS,EAAE,YAAY,EAAE,GACxB,OAAO,CAET;AAMD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,YAAY,EAAE,GACrB,eAAe,EAAE,CAmBnB"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core GraphQL types and rendering utilities.
|
|
3
|
+
* These types are library-agnostic and can be used with any GraphQL code generation approach.
|
|
4
|
+
*/
|
|
5
|
+
import { isEqual, sortBy } from 'es-toolkit';
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Type Guards
|
|
8
|
+
// ============================================================================
|
|
9
|
+
export function isSimpleField(field) {
|
|
10
|
+
return field.type === 'simple' || field.type === undefined;
|
|
11
|
+
}
|
|
12
|
+
export function isSpreadField(field) {
|
|
13
|
+
return field.type === 'spread';
|
|
14
|
+
}
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Rendering Utilities
|
|
17
|
+
// ============================================================================
|
|
18
|
+
function indent(text) {
|
|
19
|
+
return text
|
|
20
|
+
.split('\n')
|
|
21
|
+
.map((line) => line && ` ${line}`)
|
|
22
|
+
.join('\n');
|
|
23
|
+
}
|
|
24
|
+
function renderArgumentValue(value) {
|
|
25
|
+
switch (value.type) {
|
|
26
|
+
case 'scalar': {
|
|
27
|
+
switch (typeof value.value) {
|
|
28
|
+
case 'string': {
|
|
29
|
+
return `"${value.value}"`;
|
|
30
|
+
}
|
|
31
|
+
case 'number':
|
|
32
|
+
case 'boolean': {
|
|
33
|
+
return value.value.toString();
|
|
34
|
+
}
|
|
35
|
+
default: {
|
|
36
|
+
throw new Error(`Unsupported GraphQL scalar value type: ${typeof value.value}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
case 'variable': {
|
|
41
|
+
return `$${value.variable}`;
|
|
42
|
+
}
|
|
43
|
+
default: {
|
|
44
|
+
throw new Error(`Unknown GraphQL value type: ${value.type}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function renderArgument({ name, value }) {
|
|
49
|
+
return `${name}: ${renderArgumentValue(value)}`;
|
|
50
|
+
}
|
|
51
|
+
function renderSimpleField({ name, args, fields }) {
|
|
52
|
+
let fieldDefinition = name;
|
|
53
|
+
if (args?.length) {
|
|
54
|
+
fieldDefinition += `(${args.map((arg) => renderArgument(arg)).join(', ')})`;
|
|
55
|
+
}
|
|
56
|
+
if (fields?.length) {
|
|
57
|
+
fieldDefinition += ` {\n${indent(renderFields(fields))}\n}`;
|
|
58
|
+
}
|
|
59
|
+
return fieldDefinition;
|
|
60
|
+
}
|
|
61
|
+
function renderSpreadField(field) {
|
|
62
|
+
return `...${field.fragment.fragmentName}`;
|
|
63
|
+
}
|
|
64
|
+
function renderField(field) {
|
|
65
|
+
if (isSpreadField(field)) {
|
|
66
|
+
return renderSpreadField(field);
|
|
67
|
+
}
|
|
68
|
+
return renderSimpleField(field);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Renders an array of GraphQL fields to a string.
|
|
72
|
+
* Fields are sorted by: simple fields first, then spread fields, then nested fields.
|
|
73
|
+
*/
|
|
74
|
+
export function renderFields(fields) {
|
|
75
|
+
const sortedFields = sortBy(fields, [
|
|
76
|
+
// Sort by: simple fields, spread fields, then nested fields
|
|
77
|
+
(f) => {
|
|
78
|
+
if (isSpreadField(f))
|
|
79
|
+
return 1;
|
|
80
|
+
if (isSimpleField(f) && f.fields?.length)
|
|
81
|
+
return 2;
|
|
82
|
+
return 0;
|
|
83
|
+
},
|
|
84
|
+
// Sort by order if provided
|
|
85
|
+
(f) => (isSimpleField(f) ? (f.order ?? 0) : 0),
|
|
86
|
+
// Sort by name/fragment name
|
|
87
|
+
(f) => (isSpreadField(f) ? f.fragment.fragmentName : f.name),
|
|
88
|
+
]);
|
|
89
|
+
return sortedFields.map((field) => renderField(field)).join('\n');
|
|
90
|
+
}
|
|
91
|
+
function renderVariable({ name, type }) {
|
|
92
|
+
return `$${name}: ${type}`;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Renders a GraphQL fragment definition to a string.
|
|
96
|
+
*/
|
|
97
|
+
export function renderFragment(fragment) {
|
|
98
|
+
return `fragment ${fragment.fragmentName} on ${fragment.onType} {
|
|
99
|
+
${indent(renderFields(fragment.fields))}
|
|
100
|
+
}`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Renders a GraphQL operation (query/mutation/subscription) to a string.
|
|
104
|
+
*/
|
|
105
|
+
export function renderOperation(operation) {
|
|
106
|
+
let opString = operation.type;
|
|
107
|
+
if (operation.operationName) {
|
|
108
|
+
opString += ` ${operation.operationName}`;
|
|
109
|
+
}
|
|
110
|
+
if (operation.variables?.length) {
|
|
111
|
+
opString += `(${operation.variables.map((v) => renderVariable(v)).join(', ')})`;
|
|
112
|
+
}
|
|
113
|
+
opString += ` {\n${indent(renderFields(operation.fields))}\n}`;
|
|
114
|
+
return opString;
|
|
115
|
+
}
|
|
116
|
+
// ============================================================================
|
|
117
|
+
// Field Merging Utilities
|
|
118
|
+
// ============================================================================
|
|
119
|
+
/**
|
|
120
|
+
* Checks if two fields are mergeable (same name/fragment with compatible args).
|
|
121
|
+
*/
|
|
122
|
+
function areFieldsMergeable(fieldOne, fieldTwo) {
|
|
123
|
+
if (isSimpleField(fieldOne) && isSimpleField(fieldTwo)) {
|
|
124
|
+
if (fieldOne.name !== fieldTwo.name) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
if (!isEqual(fieldOne.args, fieldTwo.args)) {
|
|
128
|
+
throw new Error(`Unable to merge fields with different args: ${fieldOne.name}`);
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
if (isSpreadField(fieldOne) && isSpreadField(fieldTwo)) {
|
|
133
|
+
return fieldOne.fragment.fragmentName === fieldTwo.fragment.fragmentName;
|
|
134
|
+
}
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Merges an array of GraphQL fields, combining fields with the same name.
|
|
139
|
+
*/
|
|
140
|
+
export function mergeGraphqlFields(fields) {
|
|
141
|
+
const mergedFields = [];
|
|
142
|
+
for (const field of fields) {
|
|
143
|
+
const existingField = mergedFields.find((f) => areFieldsMergeable(f, field));
|
|
144
|
+
if (existingField && isSimpleField(existingField) && isSimpleField(field)) {
|
|
145
|
+
existingField.fields = mergeGraphqlFields([
|
|
146
|
+
...(existingField.fields ?? []),
|
|
147
|
+
...(field.fields ?? []),
|
|
148
|
+
]);
|
|
149
|
+
}
|
|
150
|
+
else if (!existingField) {
|
|
151
|
+
mergedFields.push(field);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return mergedFields;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Checks if two arrays of GraphQL fields are identical.
|
|
158
|
+
*/
|
|
159
|
+
export function areFieldsIdentical(fieldsOne, fieldsTwo) {
|
|
160
|
+
return isEqual(fieldsOne, fieldsTwo);
|
|
161
|
+
}
|
|
162
|
+
// ============================================================================
|
|
163
|
+
// Dependency Collection
|
|
164
|
+
// ============================================================================
|
|
165
|
+
/**
|
|
166
|
+
* Collects all GraphQLFragment dependencies from a list of fields.
|
|
167
|
+
* Walks the field tree recursively to find all spread fields.
|
|
168
|
+
*/
|
|
169
|
+
export function collectFragmentDependencies(fields) {
|
|
170
|
+
const fragments = [];
|
|
171
|
+
const seen = new Set();
|
|
172
|
+
function walk(fieldList) {
|
|
173
|
+
for (const field of fieldList) {
|
|
174
|
+
if (isSpreadField(field)) {
|
|
175
|
+
if (!seen.has(field.fragment.variableName)) {
|
|
176
|
+
seen.add(field.fragment.variableName);
|
|
177
|
+
fragments.push(field.fragment);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else if (field.fields) {
|
|
181
|
+
walk(field.fields);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
walk(fields);
|
|
186
|
+
return fragments;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/writers/graphql/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,66 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: string | number | boolean;
|
|
4
|
-
}
|
|
5
|
-
interface GraphQLArgumentVariableValue {
|
|
6
|
-
type: 'variable';
|
|
7
|
-
variable: string;
|
|
8
|
-
}
|
|
9
|
-
type GraphQLArgumentValue = GraphQLArgumentScalarValue | GraphQLArgumentVariableValue;
|
|
10
|
-
interface GraphQLArgument {
|
|
11
|
-
name: string;
|
|
12
|
-
value: GraphQLArgumentValue;
|
|
13
|
-
}
|
|
14
|
-
interface GraphQLSimpleField {
|
|
15
|
-
type?: 'simple' | undefined;
|
|
16
|
-
name: string;
|
|
17
|
-
args?: GraphQLArgument[];
|
|
18
|
-
fields?: GraphQLField[];
|
|
19
|
-
order?: number;
|
|
20
|
-
}
|
|
21
|
-
interface GraphQLSpreadField {
|
|
22
|
-
type: 'spread';
|
|
23
|
-
on: string;
|
|
24
|
-
}
|
|
25
|
-
export type GraphQLField = GraphQLSimpleField | GraphQLSpreadField;
|
|
26
|
-
interface GraphQLVariable {
|
|
27
|
-
name: string;
|
|
28
|
-
type: string;
|
|
29
|
-
}
|
|
30
|
-
export interface GraphQLRoot {
|
|
31
|
-
type: 'query' | 'mutation' | 'subscription';
|
|
32
|
-
name?: string;
|
|
33
|
-
variables?: GraphQLVariable[];
|
|
34
|
-
fields: GraphQLField[];
|
|
35
|
-
}
|
|
36
|
-
export interface GraphQLFragment {
|
|
37
|
-
name: string;
|
|
38
|
-
type: string;
|
|
39
|
-
fields: GraphQLField[];
|
|
40
|
-
}
|
|
41
|
-
export declare function renderGraphQLFragment({ name, type, fields, }: GraphQLFragment): string;
|
|
42
|
-
export declare function renderGraphQLRoot({ type, name, variables, fields, }: GraphQLRoot): string;
|
|
43
|
-
/**
|
|
44
|
-
* Merges an array of `GraphQLField` objects, combining any mergeable fields.
|
|
45
|
-
*
|
|
46
|
-
* This function iterates through the input fields, merging entries that are determined to be mergeable
|
|
47
|
-
* based on `areFieldsMergeable`. Non-mergeable fields are added directly to the result.
|
|
48
|
-
*
|
|
49
|
-
* @param fields - An array of `GraphQLField` objects to merge.
|
|
50
|
-
* @returns An array of merged `GraphQLField` objects.
|
|
51
|
-
*/
|
|
52
|
-
export declare function mergeGraphQLFields(fields: GraphQLField[]): GraphQLField[];
|
|
53
|
-
/**
|
|
54
|
-
* Merges an array of `GraphQLFragment` objects, combining any mergeable fragments.
|
|
55
|
-
*
|
|
56
|
-
* This function iterates through the input fragments and merges entries that are determined to be
|
|
57
|
-
* mergeable based on `areFragmentsMergeable`. If fragments are mergeable, their `fields` are merged
|
|
58
|
-
* using `mergeGraphQLFields`. Non-mergeable fragments are added directly to the result.
|
|
59
|
-
*
|
|
60
|
-
* @param frags - An array of `GraphQLFragment` objects to merge.
|
|
61
|
-
* @returns An array of merged `GraphQLFragment` objects.
|
|
62
|
-
*/
|
|
63
|
-
export declare function mergeGraphQLFragments(frags: GraphQLFragment[]): GraphQLFragment[];
|
|
64
|
-
export declare function areFieldsIdentical(fieldsOne: GraphQLField[], fieldsTwo: GraphQLField[]): boolean;
|
|
65
|
-
export {};
|
|
1
|
+
export * from './gql-tada.js';
|
|
2
|
+
export * from './graphql.js';
|
|
66
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/writers/graphql/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/writers/graphql/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|