@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
|
@@ -1,217 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return text
|
|
4
|
-
.split('\n')
|
|
5
|
-
.map((line) => line && ` ${line}`)
|
|
6
|
-
.join('\n');
|
|
7
|
-
}
|
|
8
|
-
function renderGraphQLArgumentValue(value) {
|
|
9
|
-
switch (value.type) {
|
|
10
|
-
case 'scalar': {
|
|
11
|
-
switch (typeof value.value) {
|
|
12
|
-
case 'string': {
|
|
13
|
-
return `"${value.value}"`;
|
|
14
|
-
}
|
|
15
|
-
case 'number':
|
|
16
|
-
case 'boolean': {
|
|
17
|
-
return value.value.toString();
|
|
18
|
-
}
|
|
19
|
-
default: {
|
|
20
|
-
throw new Error(`Unsupported GraphQL scalar value type: ${typeof value.value}`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
case 'variable': {
|
|
25
|
-
return `$${value.variable}`;
|
|
26
|
-
}
|
|
27
|
-
default: {
|
|
28
|
-
throw new Error(`Unknown GraphQL value type: ${value.type}`);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
function renderGraphQLArgument({ name, value }) {
|
|
33
|
-
return `${name}: ${renderGraphQLArgumentValue(value)}`;
|
|
34
|
-
}
|
|
35
|
-
function renderGraphQLSimpleField({ name, args, fields, }) {
|
|
36
|
-
let fieldDefinition = name;
|
|
37
|
-
if (args?.length) {
|
|
38
|
-
fieldDefinition += `(${args
|
|
39
|
-
.map((arg) => renderGraphQLArgument(arg))
|
|
40
|
-
.join(', ')})`;
|
|
41
|
-
}
|
|
42
|
-
if (fields?.length) {
|
|
43
|
-
// recursive
|
|
44
|
-
fieldDefinition += ` {\n${indent(renderGraphQLFields(fields))}\n}`;
|
|
45
|
-
}
|
|
46
|
-
return fieldDefinition;
|
|
47
|
-
}
|
|
48
|
-
function renderGraphQLSpreadField({ on }) {
|
|
49
|
-
return `...${on}`;
|
|
50
|
-
}
|
|
51
|
-
function renderGraphQLField(field) {
|
|
52
|
-
switch (field.type) {
|
|
53
|
-
case undefined:
|
|
54
|
-
case 'simple': {
|
|
55
|
-
return renderGraphQLSimpleField(field);
|
|
56
|
-
}
|
|
57
|
-
case 'spread': {
|
|
58
|
-
return renderGraphQLSpreadField(field);
|
|
59
|
-
}
|
|
60
|
-
default: {
|
|
61
|
-
throw new Error(`Unknown GraphQL field type ${field.type}`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
function renderGraphQLFields(fields) {
|
|
66
|
-
const sortedFields = sortBy(fields, [
|
|
67
|
-
// Sort by simple fields, spread fields, and then nested fields
|
|
68
|
-
(f) => {
|
|
69
|
-
if (f.type === 'spread')
|
|
70
|
-
return 1;
|
|
71
|
-
if (f.fields?.length)
|
|
72
|
-
return 2;
|
|
73
|
-
return 0;
|
|
74
|
-
},
|
|
75
|
-
// Sort by order if provided
|
|
76
|
-
(f) => (f.type === 'spread' ? 0 : (f.order ?? 0)),
|
|
77
|
-
// Sort by name otherwise
|
|
78
|
-
(f) => (f.type === 'spread' ? f.on : f.name),
|
|
79
|
-
]);
|
|
80
|
-
return sortedFields.map((field) => renderGraphQLField(field)).join('\n');
|
|
81
|
-
}
|
|
82
|
-
export function renderGraphQLFragment({ name, type, fields, }) {
|
|
83
|
-
return `fragment ${name} on ${type} {
|
|
84
|
-
${indent(renderGraphQLFields(fields))}
|
|
85
|
-
}`;
|
|
86
|
-
}
|
|
87
|
-
function renderGraphQLVariable({ name, type }) {
|
|
88
|
-
return `$${name}: ${type}`;
|
|
89
|
-
}
|
|
90
|
-
export function renderGraphQLRoot({ type, name, variables, fields, }) {
|
|
91
|
-
let rootString = type;
|
|
92
|
-
if (name) {
|
|
93
|
-
rootString += ` ${name}`;
|
|
94
|
-
}
|
|
95
|
-
if (variables?.length) {
|
|
96
|
-
rootString += `(${variables
|
|
97
|
-
.map((variable) => renderGraphQLVariable(variable))
|
|
98
|
-
.join(', ')})`;
|
|
99
|
-
}
|
|
100
|
-
rootString += ` {\n${indent(renderGraphQLFields(fields))}\n}`;
|
|
101
|
-
return rootString;
|
|
102
|
-
}
|
|
103
|
-
function isSimpleField(field) {
|
|
104
|
-
return field.type === 'simple' || field.type === undefined;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Checks if two `GraphQLField` objects are mergeable.
|
|
108
|
-
*
|
|
109
|
-
* A mergeable pair of fields must either:
|
|
110
|
-
* - Be simple fields with the same name and identical arguments, or
|
|
111
|
-
* - Be of type 'spread' with the same `on` property value.
|
|
112
|
-
*
|
|
113
|
-
* @param fieldOne - The first GraphQL field.
|
|
114
|
-
* @param fieldTwo - The second GraphQL field.
|
|
115
|
-
* @returns `true` if the fields are mergeable; otherwise, `false`.
|
|
116
|
-
* @throws If simple fields have different arguments or an unknown field type is encountered.
|
|
117
|
-
*/
|
|
118
|
-
function areFieldsMergeable(fieldOne, fieldTwo) {
|
|
119
|
-
if (isSimpleField(fieldOne) && isSimpleField(fieldTwo)) {
|
|
120
|
-
if (fieldOne.name !== fieldTwo.name) {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
// Check if arguments are identical
|
|
124
|
-
if (!isEqual(fieldOne.args, fieldTwo.args)) {
|
|
125
|
-
throw new Error(`Unable to merge fields with different args: ${fieldOne.name}`);
|
|
126
|
-
}
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
if (fieldOne.type === 'spread' && fieldTwo.type === 'spread') {
|
|
130
|
-
return fieldOne.on === fieldTwo.on;
|
|
131
|
-
}
|
|
132
|
-
if (fieldOne.type !== fieldTwo.type) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
throw new Error(`Unknown type: ${fieldOne.type}`);
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Merges an array of `GraphQLField` objects, combining any mergeable fields.
|
|
139
|
-
*
|
|
140
|
-
* This function iterates through the input fields, merging entries that are determined to be mergeable
|
|
141
|
-
* based on `areFieldsMergeable`. Non-mergeable fields are added directly to the result.
|
|
142
|
-
*
|
|
143
|
-
* @param fields - An array of `GraphQLField` objects to merge.
|
|
144
|
-
* @returns An array of merged `GraphQLField` objects.
|
|
145
|
-
*/
|
|
146
|
-
export function mergeGraphQLFields(fields) {
|
|
147
|
-
const mergedFields = [];
|
|
148
|
-
for (const field of fields) {
|
|
149
|
-
// Find an existing field in the merged results that is mergeable with the current field
|
|
150
|
-
const existingField = mergedFields.find((accumField) => areFieldsMergeable(accumField, field));
|
|
151
|
-
if (existingField && isSimpleField(existingField) && isSimpleField(field)) {
|
|
152
|
-
// Merge the `fields` property if both fields are simple
|
|
153
|
-
existingField.fields = mergeGraphQLFields([
|
|
154
|
-
...(existingField.fields ?? []),
|
|
155
|
-
...(field.fields ?? []),
|
|
156
|
-
]);
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
// If no mergeable field is found, add the current field to the result
|
|
160
|
-
mergedFields.push(field);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return mergedFields;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Checks if two `GraphQLFragment` objects are mergeable.
|
|
167
|
-
*
|
|
168
|
-
* Two fragments are considered mergeable if they have the same name and type.
|
|
169
|
-
* If the names match but the types differ, an error is thrown.
|
|
170
|
-
*
|
|
171
|
-
* @param fragOne - The first GraphQL fragment.
|
|
172
|
-
* @param fragTwo - The second GraphQL fragment.
|
|
173
|
-
* @returns `true` if the fragments are mergeable; otherwise, `false`.
|
|
174
|
-
* @throws If fragments have the same name but different types.
|
|
175
|
-
*/
|
|
176
|
-
function areFragmentsMergeable(fragOne, fragTwo) {
|
|
177
|
-
if (fragOne.name === fragTwo.name) {
|
|
178
|
-
if (fragOne.type !== fragTwo.type) {
|
|
179
|
-
throw new Error(`Unable to merge fragments with different types: ${fragOne.name}`);
|
|
180
|
-
}
|
|
181
|
-
return true;
|
|
182
|
-
}
|
|
183
|
-
return false;
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Merges an array of `GraphQLFragment` objects, combining any mergeable fragments.
|
|
187
|
-
*
|
|
188
|
-
* This function iterates through the input fragments and merges entries that are determined to be
|
|
189
|
-
* mergeable based on `areFragmentsMergeable`. If fragments are mergeable, their `fields` are merged
|
|
190
|
-
* using `mergeGraphQLFields`. Non-mergeable fragments are added directly to the result.
|
|
191
|
-
*
|
|
192
|
-
* @param frags - An array of `GraphQLFragment` objects to merge.
|
|
193
|
-
* @returns An array of merged `GraphQLFragment` objects.
|
|
194
|
-
*/
|
|
195
|
-
export function mergeGraphQLFragments(frags) {
|
|
196
|
-
const mergedFragments = [];
|
|
197
|
-
for (const frag of frags) {
|
|
198
|
-
// Find an existing fragment in the merged results that is mergeable with the current fragment
|
|
199
|
-
const existingFrag = mergedFragments.find((accumFrag) => areFragmentsMergeable(accumFrag, frag));
|
|
200
|
-
if (existingFrag) {
|
|
201
|
-
// Merge the `fields` property if the fragments are mergeable
|
|
202
|
-
existingFrag.fields = mergeGraphQLFields([
|
|
203
|
-
...existingFrag.fields,
|
|
204
|
-
...frag.fields,
|
|
205
|
-
]);
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
// If no mergeable fragment is found, add the current fragment to the result
|
|
209
|
-
mergedFragments.push(frag);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
return mergedFragments;
|
|
213
|
-
}
|
|
214
|
-
export function areFieldsIdentical(fieldsOne, fieldsTwo) {
|
|
215
|
-
return isEqual(fieldsOne, fieldsTwo);
|
|
216
|
-
}
|
|
1
|
+
export * from './gql-tada.js';
|
|
2
|
+
export * from './graphql.js';
|
|
217
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/writers/graphql/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/writers/graphql/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baseplate-dev/react-generators",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "React Generators for Baseplate",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"inflection": "3.0.0",
|
|
38
38
|
"prettier-plugin-tailwindcss": "0.6.14",
|
|
39
39
|
"zod": "^4.1.13",
|
|
40
|
-
"@baseplate-dev/core-generators": "0.
|
|
41
|
-
"@baseplate-dev/sync": "0.
|
|
42
|
-
"@baseplate-dev/utils": "0.
|
|
40
|
+
"@baseplate-dev/core-generators": "0.5.0",
|
|
41
|
+
"@baseplate-dev/sync": "0.5.0",
|
|
42
|
+
"@baseplate-dev/utils": "0.5.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@types/node": "^22.17.2",
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"eslint": "9.32.0",
|
|
49
49
|
"prettier": "3.6.2",
|
|
50
50
|
"typescript": "5.8.3",
|
|
51
|
-
"
|
|
51
|
+
"vitest": "4.0.16",
|
|
52
|
+
"@baseplate-dev/tools": "0.5.0"
|
|
52
53
|
},
|
|
53
54
|
"engines": {
|
|
54
55
|
"node": "^22.0.0"
|
|
@@ -68,6 +69,7 @@
|
|
|
68
69
|
"lint": "eslint .",
|
|
69
70
|
"prettier:check": "prettier --check .",
|
|
70
71
|
"prettier:write": "prettier -w .",
|
|
72
|
+
"test": "vitest",
|
|
71
73
|
"tsc:watch": "tsc -p tsconfig.build.json --preserveWatchOutput -w",
|
|
72
74
|
"typecheck": "tsc --noEmit",
|
|
73
75
|
"watch": "pnpm build:templates --watch"
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { AdminCrudDisplay } from '../_utils/data-display.js';
|
|
2
|
-
export interface AdminCrudDisplayContainer {
|
|
3
|
-
addDisplay: (input: AdminCrudDisplay) => void;
|
|
4
|
-
getModelName: () => string;
|
|
5
|
-
}
|
|
6
|
-
export declare const adminCrudDisplayContainerProvider: import("@baseplate-dev/sync").ProviderType<AdminCrudDisplayContainer>;
|
|
7
|
-
//# sourceMappingURL=admin-crud-display-container.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-crud-display-container.d.ts","sourceRoot":"","sources":["../../../../src/generators/admin/_providers/admin-crud-display-container.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC9C,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,iCAAiC,uEACiC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-crud-display-container.js","sourceRoot":"","sources":["../../../../src/generators/admin/_providers/admin-crud-display-container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AASzD,MAAM,CAAC,MAAM,iCAAiC,GAC5C,kBAAkB,CAA4B,8BAA8B,CAAC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { TsCodeFragment } from '@baseplate-dev/core-generators';
|
|
2
|
-
import type { ReactComponentsImportsProvider } from '#src/generators/core/react-components/index.js';
|
|
3
|
-
export interface DataLoader {
|
|
4
|
-
loader: TsCodeFragment;
|
|
5
|
-
loaderValueName: string;
|
|
6
|
-
loaderErrorName: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function printDataLoaders(loaders: DataLoader[], reactComponentsImports: ReactComponentsImportsProvider): {
|
|
9
|
-
loader: TsCodeFragment;
|
|
10
|
-
gate: TsCodeFragment;
|
|
11
|
-
dataParts: string;
|
|
12
|
-
errorParts: string;
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=admin-loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-loader.d.ts","sourceRoot":"","sources":["../../../../src/generators/admin/_providers/admin-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gDAAgD,CAAC;AAErG,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,UAAU,EAAE,EACrB,sBAAsB,EAAE,8BAA8B,GACrD;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CA+BA"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { tsCodeFragment, TsCodeUtils } from '@baseplate-dev/core-generators';
|
|
2
|
-
export function printDataLoaders(loaders, reactComponentsImports) {
|
|
3
|
-
if (loaders.length === 0) {
|
|
4
|
-
return {
|
|
5
|
-
loader: tsCodeFragment(''),
|
|
6
|
-
gate: tsCodeFragment(''),
|
|
7
|
-
dataParts: '',
|
|
8
|
-
errorParts: '',
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
const dataParts = loaders
|
|
12
|
-
.map((loader) => `!${loader.loaderValueName}`)
|
|
13
|
-
.join(' || ');
|
|
14
|
-
const errorParts = loaders
|
|
15
|
-
.map((loader) => loader.loaderErrorName)
|
|
16
|
-
.join(' ?? ');
|
|
17
|
-
return {
|
|
18
|
-
dataParts,
|
|
19
|
-
errorParts,
|
|
20
|
-
loader: TsCodeUtils.mergeFragments(new Map(loaders.map((loader) => [loader.loaderValueName, loader.loader])), '\n\n'),
|
|
21
|
-
gate: TsCodeUtils.templateWithImports(reactComponentsImports.ErrorableLoader.declaration()) `if (${dataParts}) {
|
|
22
|
-
return <ErrorableLoader error={${errorParts}} />;
|
|
23
|
-
}`,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=admin-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-loader.js","sourceRoot":"","sources":["../../../../src/generators/admin/_providers/admin-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAU7E,MAAM,UAAU,gBAAgB,CAC9B,OAAqB,EACrB,sBAAsD;IAOtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;YAC1B,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;YACxB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO;SACtB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;SAC7C,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,MAAM,UAAU,GAAG,OAAO;SACvB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;SACvC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO;QACL,SAAS;QACT,UAAU;QACV,MAAM,EAAE,WAAW,CAAC,cAAc,CAChC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACzE,MAAM,CACP;QACD,IAAI,EAAE,WAAW,CAAC,mBAAmB,CACnC,sBAAsB,CAAC,eAAe,CAAC,WAAW,EAAE,CACrD,CAAA,OAAO,SAAS;yCACoB,UAAU;QAC3C;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { TsCodeFragment } from '@baseplate-dev/core-generators';
|
|
2
|
-
import type { GraphQLField } from '#src/writers/graphql/index.js';
|
|
3
|
-
import type { AdminCrudDataDependency } from './data-loaders.js';
|
|
4
|
-
export interface AdminCrudDisplay {
|
|
5
|
-
content: (itemName: string) => TsCodeFragment;
|
|
6
|
-
graphQLFields: GraphQLField[];
|
|
7
|
-
dataDependencies?: AdminCrudDataDependency[];
|
|
8
|
-
header?: TsCodeFragment;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data-display.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-display.d.ts","sourceRoot":"","sources":["../../../../src/generators/admin/_utils/data-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,cAAc,CAAC;IAC9C,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC7C,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-display.js","sourceRoot":"","sources":["../../../../src/generators/admin/_utils/data-display.ts"],"names":[],"mappings":""}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { TsCodeFragment } from '@baseplate-dev/core-generators';
|
|
2
|
-
import type { GraphQLFragment, GraphQLRoot } from '#src/writers/graphql/index.js';
|
|
3
|
-
import type { DataLoader } from '../_providers/admin-loader.js';
|
|
4
|
-
export interface AdminCrudDataDependency {
|
|
5
|
-
propName: string;
|
|
6
|
-
propType: TsCodeFragment;
|
|
7
|
-
propLoaderValueGetter: (value: string) => string;
|
|
8
|
-
loader: DataLoader;
|
|
9
|
-
graphRoots?: GraphQLRoot[];
|
|
10
|
-
graphFragments?: GraphQLFragment[];
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Merges an array of `AdminCrudDataDependency` objects, combining any mergeable dependencies.
|
|
14
|
-
*
|
|
15
|
-
* This function iterates through the input dependencies and combines entries with the same `propName`,
|
|
16
|
-
* merging their `graphFragments` if they are found to be mergeable. Non-mergeable entries are added directly to the result.
|
|
17
|
-
*
|
|
18
|
-
* @param deps - An array of `AdminCrudDataDependency` objects to merge.
|
|
19
|
-
* @returns An array of merged `AdminCrudDataDependency` objects.
|
|
20
|
-
*/
|
|
21
|
-
export declare function mergeAdminCrudDataDependencies(deps: AdminCrudDataDependency[]): AdminCrudDataDependency[];
|
|
22
|
-
export declare function getPassthroughExtraProps(dataDependencies: AdminCrudDataDependency[]): string;
|
|
23
|
-
//# sourceMappingURL=data-loaders.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-loaders.d.ts","sourceRoot":"","sources":["../../../../src/generators/admin/_utils/data-loaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAIvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;CACpC;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,uBAAuB,EAAE,GAC9B,uBAAuB,EAAE,CAsB3B;AAED,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,uBAAuB,EAAE,GAC1C,MAAM,CAER"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { mergeGraphQLFragments } from '#src/writers/graphql/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Checks if two `AdminCrudDataDependency` objects are mergeable.
|
|
4
|
-
*
|
|
5
|
-
* @param depOne - The first data dependency.
|
|
6
|
-
* @param depTwo - The second data dependency.
|
|
7
|
-
* @returns `true` if the dependencies are mergeable (i.e., they have the same `propName`), otherwise `false`.
|
|
8
|
-
*/
|
|
9
|
-
function areDepsMergeable(depOne, depTwo) {
|
|
10
|
-
// TODO: Check other properties
|
|
11
|
-
return depOne.propName === depTwo.propName;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Merges an array of `AdminCrudDataDependency` objects, combining any mergeable dependencies.
|
|
15
|
-
*
|
|
16
|
-
* This function iterates through the input dependencies and combines entries with the same `propName`,
|
|
17
|
-
* merging their `graphFragments` if they are found to be mergeable. Non-mergeable entries are added directly to the result.
|
|
18
|
-
*
|
|
19
|
-
* @param deps - An array of `AdminCrudDataDependency` objects to merge.
|
|
20
|
-
* @returns An array of merged `AdminCrudDataDependency` objects.
|
|
21
|
-
*/
|
|
22
|
-
export function mergeAdminCrudDataDependencies(deps) {
|
|
23
|
-
const mergedDeps = [];
|
|
24
|
-
for (const dep of deps) {
|
|
25
|
-
// Find an existing dependency in the merged results that is mergeable with the current dependency
|
|
26
|
-
const existingDep = mergedDeps.find((mergedDep) => areDepsMergeable(mergedDep, dep));
|
|
27
|
-
if (existingDep) {
|
|
28
|
-
// If a mergeable dependency is found, merge `graphFragments`
|
|
29
|
-
existingDep.graphFragments = mergeGraphQLFragments([
|
|
30
|
-
...(existingDep.graphFragments ?? []),
|
|
31
|
-
...(dep.graphFragments ?? []),
|
|
32
|
-
]);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
// If no mergeable dependency is found, add the current dependency to the result
|
|
36
|
-
mergedDeps.push(dep);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return mergedDeps;
|
|
40
|
-
}
|
|
41
|
-
export function getPassthroughExtraProps(dataDependencies) {
|
|
42
|
-
return dataDependencies.map((d) => `${d.propName}={${d.propName}}`).join(' ');
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data-loaders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-loaders.js","sourceRoot":"","sources":["../../../../src/generators/admin/_utils/data-loaders.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAatE;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,MAA+B,EAC/B,MAA+B;IAE/B,+BAA+B;IAC/B,OAAO,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;AAC7C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAC5C,IAA+B;IAE/B,MAAM,UAAU,GAA8B,EAAE,CAAC;IAEjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,kGAAkG;QAClG,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAChD,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CACjC,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,6DAA6D;YAC7D,WAAW,CAAC,cAAc,GAAG,qBAAqB,CAAC;gBACjD,GAAG,CAAC,WAAW,CAAC,cAAc,IAAI,EAAE,CAAC;gBACrC,GAAG,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;aAC9B,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,gFAAgF;YAChF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,gBAA2C;IAE3C,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { ReactApolloProvider } from '#src/generators/apollo/react-apollo/index.js';
|
|
2
|
-
import type { AdminCrudDataDependency } from './data-loaders.js';
|
|
3
|
-
interface ForeignDataDependencyOptions {
|
|
4
|
-
foreignModelName: string;
|
|
5
|
-
modelName: string;
|
|
6
|
-
reactApollo: ReactApolloProvider;
|
|
7
|
-
labelExpression: string;
|
|
8
|
-
valueExpression: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function createForeignDataDependency({ foreignModelName, modelName, reactApollo, labelExpression, valueExpression, }: ForeignDataDependencyOptions): {
|
|
11
|
-
dataDependency: AdminCrudDataDependency;
|
|
12
|
-
propName: string;
|
|
13
|
-
};
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=foreign-data-dependency.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"foreign-data-dependency.d.ts","sourceRoot":"","sources":["../../../../src/generators/admin/_utils/foreign-data-dependency.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAKxF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAIjE,UAAU,4BAA4B;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,mBAAmB,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,GAChB,EAAE,4BAA4B,GAAG;IAChC,cAAc,EAAE,uBAAuB,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB,CA+DA"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { tsCodeFragment, tsImportBuilder, tsTypeImportBuilder, } from '@baseplate-dev/core-generators';
|
|
2
|
-
import { pluralize } from 'inflection';
|
|
3
|
-
import { lowerCaseFirst } from '#src/utils/case.js';
|
|
4
|
-
import { mergeGraphQLFields } from '#src/writers/graphql/index.js';
|
|
5
|
-
import { convertExpressionToField } from './graphql.js';
|
|
6
|
-
export function createForeignDataDependency({ foreignModelName, modelName, reactApollo, labelExpression, valueExpression, }) {
|
|
7
|
-
const fragmentName = `${modelName}${foreignModelName}Option`;
|
|
8
|
-
const dataName = `${fragmentName}s`;
|
|
9
|
-
const propName = lowerCaseFirst(dataName);
|
|
10
|
-
const querySubcomponent = lowerCaseFirst(pluralize(foreignModelName));
|
|
11
|
-
const loaderValueName = `${lowerCaseFirst(dataName)}Data`;
|
|
12
|
-
const loaderErrorName = `${lowerCaseFirst(dataName)}Error`;
|
|
13
|
-
const dataDependency = {
|
|
14
|
-
propName,
|
|
15
|
-
propType: tsCodeFragment(`${fragmentName}Fragment[]`, tsTypeImportBuilder([`${fragmentName}Fragment`]).from(reactApollo.getGeneratedFilePath())),
|
|
16
|
-
graphFragments: [
|
|
17
|
-
{
|
|
18
|
-
name: fragmentName,
|
|
19
|
-
type: foreignModelName,
|
|
20
|
-
fields: mergeGraphQLFields([
|
|
21
|
-
convertExpressionToField(labelExpression),
|
|
22
|
-
convertExpressionToField(valueExpression),
|
|
23
|
-
]),
|
|
24
|
-
},
|
|
25
|
-
],
|
|
26
|
-
graphRoots: [
|
|
27
|
-
{
|
|
28
|
-
type: 'query',
|
|
29
|
-
name: `Get${dataName}`,
|
|
30
|
-
fields: [
|
|
31
|
-
{
|
|
32
|
-
type: 'simple',
|
|
33
|
-
name: querySubcomponent,
|
|
34
|
-
fields: [
|
|
35
|
-
{
|
|
36
|
-
type: 'spread',
|
|
37
|
-
on: fragmentName,
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
},
|
|
43
|
-
],
|
|
44
|
-
loader: {
|
|
45
|
-
loader: tsCodeFragment(`const { data: ${loaderValueName}, error: ${loaderErrorName} } = useQuery(Get${dataName}Document);`, [
|
|
46
|
-
tsImportBuilder([`useQuery`]).from('@apollo/client/react'),
|
|
47
|
-
tsImportBuilder([`Get${dataName}Document`]).from(reactApollo.getGeneratedFilePath()),
|
|
48
|
-
]),
|
|
49
|
-
loaderErrorName,
|
|
50
|
-
loaderValueName,
|
|
51
|
-
},
|
|
52
|
-
propLoaderValueGetter: (value) => `${value}.${querySubcomponent}`,
|
|
53
|
-
};
|
|
54
|
-
return { dataDependency, propName };
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=foreign-data-dependency.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"foreign-data-dependency.js","sourceRoot":"","sources":["../../../../src/generators/admin/_utils/foreign-data-dependency.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAUxD,MAAM,UAAU,2BAA2B,CAAC,EAC1C,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,GACc;IAI7B,MAAM,YAAY,GAAG,GAAG,SAAS,GAAG,gBAAgB,QAAQ,CAAC;IAC7D,MAAM,QAAQ,GAAG,GAAG,YAAY,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE1C,MAAM,iBAAiB,GAAG,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEtE,MAAM,eAAe,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC1D,MAAM,eAAe,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;IAE3D,MAAM,cAAc,GAA4B;QAC9C,QAAQ;QACR,QAAQ,EAAE,cAAc,CACtB,GAAG,YAAY,YAAY,EAC3B,mBAAmB,CAAC,CAAC,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CACnD,WAAW,CAAC,oBAAoB,EAAE,CACnC,CACF;QACD,cAAc,EAAE;YACd;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,kBAAkB,CAAC;oBACzB,wBAAwB,CAAC,eAAe,CAAC;oBACzC,wBAAwB,CAAC,eAAe,CAAC;iBAC1C,CAAC;aACH;SACF;QACD,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,MAAM,QAAQ,EAAE;gBACtB,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,iBAAiB;wBACvB,MAAM,EAAE;4BACN;gCACE,IAAI,EAAE,QAAQ;gCACd,EAAE,EAAE,YAAY;6BACjB;yBACF;qBACF;iBACF;aACF;SACF;QACD,MAAM,EAAE;YACN,MAAM,EAAE,cAAc,CACpB,iBAAiB,eAAe,YAAY,eAAe,oBAAoB,QAAQ,YAAY,EACnG;gBACE,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBAC1D,eAAe,CAAC,CAAC,MAAM,QAAQ,UAAU,CAAC,CAAC,CAAC,IAAI,CAC9C,WAAW,CAAC,oBAAoB,EAAE,CACnC;aACF,CACF;YACD,eAAe;YACf,eAAe;SAChB;QACD,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,iBAAiB,EAAE;KAClE,CAAC;IAEF,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../../src/generators/admin/_utils/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAmBzE"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export function convertExpressionToField(expression) {
|
|
2
|
-
const parts = expression.split('.').toReversed();
|
|
3
|
-
let result;
|
|
4
|
-
for (const part of parts) {
|
|
5
|
-
result = {
|
|
6
|
-
type: 'simple',
|
|
7
|
-
name: part,
|
|
8
|
-
fields: result ? [result] : undefined,
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
if (!result) {
|
|
12
|
-
throw new Error(`Must have at least one part to expression to convert to field`);
|
|
13
|
-
}
|
|
14
|
-
return result;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=graphql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../../src/generators/admin/_utils/graphql.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;IAEjD,IAAI,MAAgC,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG;YACP,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACtC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import type { TsCodeFragment } from '@baseplate-dev/core-generators';
|
|
2
|
-
import type { GraphQLField, GraphQLFragment, GraphQLRoot } from '#src/writers/graphql/index.js';
|
|
3
|
-
interface ApolloHookInfo {
|
|
4
|
-
documentExpression: TsCodeFragment;
|
|
5
|
-
fieldName: string;
|
|
6
|
-
}
|
|
7
|
-
export interface AdminCrudQueriesProvider {
|
|
8
|
-
setRowFields: (fields: GraphQLField[]) => void;
|
|
9
|
-
setFormFields: (fields: GraphQLField[]) => void;
|
|
10
|
-
getRowFragmentExpression: () => TsCodeFragment;
|
|
11
|
-
getEditFragmentExpression: () => TsCodeFragment;
|
|
12
|
-
getListQueryHookInfo: () => ApolloHookInfo;
|
|
13
|
-
getEditQueryHookInfo: () => ApolloHookInfo;
|
|
14
|
-
getCreateHookInfo: () => ApolloHookInfo;
|
|
15
|
-
getUpdateHookInfo: () => ApolloHookInfo;
|
|
16
|
-
getDeleteHookInfo: () => ApolloHookInfo;
|
|
17
|
-
getListDocumentExpression: () => TsCodeFragment;
|
|
18
|
-
addRoot: (root: GraphQLRoot) => void;
|
|
19
|
-
addFragment: (fragment: GraphQLFragment) => void;
|
|
20
|
-
}
|
|
21
|
-
export declare const adminCrudQueriesProvider: import("@baseplate-dev/sync").ProviderType<AdminCrudQueriesProvider>;
|
|
22
|
-
export declare const adminCrudQueriesGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{
|
|
23
|
-
modelId: string;
|
|
24
|
-
modelName: string;
|
|
25
|
-
}, {
|
|
26
|
-
main: import("@baseplate-dev/sync").GeneratorTask<{
|
|
27
|
-
adminCrudQueries: import("@baseplate-dev/sync").ProviderExport<AdminCrudQueriesProvider>;
|
|
28
|
-
}, {
|
|
29
|
-
reactApollo: import("@baseplate-dev/sync").ProviderType<import("#src/generators/apollo/react-apollo/index.js").ReactApolloProvider>;
|
|
30
|
-
reactRoutes: import("@baseplate-dev/sync").ProviderType<import("#src/providers/routes.js").ReactRoutesProvider>;
|
|
31
|
-
}, any>;
|
|
32
|
-
}>;
|
|
33
|
-
export {};
|
|
34
|
-
//# sourceMappingURL=admin-crud-queries.generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-crud-queries.generator.d.ts","sourceRoot":"","sources":["../../../../src/generators/admin/admin-crud-queries/admin-crud-queries.generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAYrE,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACZ,MAAM,+BAA+B,CAAC;AA2BvC,UAAU,cAAc;IACtB,kBAAkB,EAAE,cAAc,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,wBAAwB,EAAE,MAAM,cAAc,CAAC;IAC/C,yBAAyB,EAAE,MAAM,cAAc,CAAC;IAChD,oBAAoB,EAAE,MAAM,cAAc,CAAC;IAC3C,oBAAoB,EAAE,MAAM,cAAc,CAAC;IAC3C,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,yBAAyB,EAAE,MAAM,cAAc,CAAC;IAChD,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,wBAAwB,sEAC+B,CAAC;AAErE,eAAO,MAAM,yBAAyB;;;;;;;;;;EA4QpC,CAAC"}
|