@aws/nx-plugin 1.0.0-rc.0 → 1.0.0-rc.2
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/generators.json +10 -5
- package/package.json +1 -1
- package/src/connection/generator.js +2 -2
- package/src/connection/generator.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +11 -11
- package/src/infra/app/files/app/src/main.ts.template +2 -2
- package/src/infra/app/generator.js +9 -9
- package/src/infra/app/generator.js.map +1 -1
- package/src/infra/app/schema.d.ts +1 -1
- package/src/infra/app/schema.json +1 -1
- package/src/mcp-server/guide-pipeline.js +8 -10
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.js +1 -1
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.js +2 -2
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/preset/generator.d.ts +1 -1
- package/src/preset/generator.js +4 -6
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.ts +5 -5
- package/src/preset/schema.json +4 -4
- package/src/py/agent/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/agent/a2a-connection/generator.js +4 -3
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/files/deploy/Dockerfile.template +3 -3
- package/src/py/agent/generator.js +23 -23
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/generator.js +1 -1
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/agent/react-connection/generator.js +4 -4
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/schema.d.ts +8 -8
- package/src/py/agent/schema.json +18 -18
- package/src/py/api/generator.js +2 -2
- package/src/py/api/generator.js.map +1 -1
- package/src/py/api/schema.d.ts +4 -6
- package/src/py/api/schema.json +15 -15
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/py/fast-api/generator.js +50 -38
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/generator.js +1 -1
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/schema.d.ts +4 -6
- package/src/py/fast-api/schema.json +15 -15
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/lambda-function/files/handler/__lambdaFunctionSnakeCase__.py.template +6 -6
- package/src/py/lambda-function/generator.js +23 -20
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/lambda-function/schema.d.ts +7 -4
- package/src/py/lambda-function/schema.json +15 -7
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/mcp-server/generator.js +11 -11
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.ts +5 -9
- package/src/py/mcp-server/schema.json +15 -15
- package/src/py/project/generator.js +1 -1
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.d.ts +1 -1
- package/src/py/project/schema.json +2 -2
- package/src/smithy/project/generator.js +2 -2
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/react-connection/generator.js +1 -1
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/smithy/ts/api/generator.js +72 -55
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.ts +4 -6
- package/src/smithy/ts/api/schema.json +15 -15
- package/src/terraform/project/generator.js +1 -1
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/trpc/backend/files/src/client/index.ts.template +5 -5
- package/src/trpc/backend/files/src/handler.ts.template +2 -2
- package/src/trpc/backend/generator.js +69 -51
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +4 -4
- package/src/trpc/backend/schema.json +15 -15
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +14 -14
- package/src/trpc/react/generator.js +6 -5
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/a2a-connection/generator.js +4 -3
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/files/deploy/Dockerfile.template +1 -1
- package/src/ts/agent/generator.js +22 -22
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/generator.js +1 -1
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +8 -8
- package/src/ts/agent/react-connection/generator.js +6 -6
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/serve-local.js +2 -2
- package/src/ts/agent/schema.d.ts +8 -8
- package/src/ts/agent/schema.json +18 -18
- package/src/ts/api/generator.js +6 -4
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.ts +4 -4
- package/src/ts/api/schema.json +15 -15
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +10 -10
- package/src/ts/lambda-function/generator.js +33 -28
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lambda-function/schema.d.ts +7 -4
- package/src/ts/lambda-function/schema.json +15 -7
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/mcp-server/generator.js +12 -12
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.ts +5 -9
- package/src/ts/mcp-server/schema.json +15 -15
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.spec.ts.template +1 -1
- package/src/ts/nx-plugin/generator.js +2 -2
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/rdb/files/prisma.config.ts.template +1 -1
- package/src/ts/rdb/files/scripts/docker-pull.ts.template +1 -1
- package/src/ts/rdb/files/scripts/docker-start.ts.template +3 -3
- package/src/ts/rdb/files/scripts/wait-for-db.ts.template +3 -3
- package/src/ts/rdb/files/src/create-db-user-handler.ts.template +2 -2
- package/src/ts/rdb/files/src/migration-handler.ts.template +2 -2
- package/src/ts/rdb/files/src/prisma.ts.template +2 -2
- package/src/ts/rdb/generator.js +84 -66
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/schema.d.ts +5 -5
- package/src/ts/rdb/schema.json +13 -13
- package/src/ts/rdb/trpc-connection/files/src/middleware/__rdbNameKebab__.ts.template +1 -1
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +9 -9
- package/src/ts/react-website/agui/generator.d.ts +2 -2
- package/src/ts/react-website/agui/generator.js +9 -9
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +27 -25
- package/src/ts/react-website/app/files/app/cloudscape/src/components/AppLayout/index.tsx.template +5 -5
- package/src/ts/react-website/app/files/app/cloudscape/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/files/app/cloudscape/src/styles.css.template +1 -1
- package/src/ts/react-website/app/files/app/none/src/components/AppLayout/index.tsx.template +5 -5
- package/src/ts/react-website/app/files/app/none/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/files/app/none/src/styles.css.template +2 -2
- package/src/ts/react-website/app/files/app/shadcn/src/components/AppLayout/index.tsx.template +6 -6
- package/src/ts/react-website/app/files/app/shadcn/src/main.tsx.template +1 -1
- package/src/ts/react-website/app/generator.d.ts +3 -3
- package/src/ts/react-website/app/generator.js +104 -98
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.ts +9 -6
- package/src/ts/react-website/app/schema.json +13 -13
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +3 -3
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +3 -3
- package/src/ts/react-website/cognito-auth/generator.js +9 -9
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/schema.d.ts +2 -2
- package/src/ts/react-website/cognito-auth/schema.json +4 -4
- package/src/ts/website/app/schema.d.ts +8 -6
- package/src/ts/website/app/schema.json +21 -13
- package/src/ts/website/auth/generator.js +1 -1
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/ts/website/auth/schema.d.ts +2 -2
- package/src/ts/website/auth/schema.json +4 -4
- package/src/utils/agent-connection/agent-connection.js +1 -1
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +9 -9
- package/src/utils/agent-core-constructs/agent-core-constructs.js +11 -13
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +13 -13
- package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +5 -5
- package/src/utils/api-constructs/api-constructs.d.ts +3 -3
- package/src/utils/api-constructs/api-constructs.js +4 -6
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +12 -12
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +12 -12
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +7 -7
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +10 -10
- package/src/utils/api-constructs/open-api-metadata.d.ts +3 -3
- package/src/utils/api-constructs/open-api-metadata.js +2 -2
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/commands.d.ts +1 -1
- package/src/utils/commands.js +2 -2
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/__snapshots__/utils.spec.ts.snap +6 -6
- package/src/utils/config/index.d.ts +2 -2
- package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +7 -7
- package/src/utils/connection/open-api/react.d.ts +1 -1
- package/src/utils/connection/open-api/react.js +3 -3
- package/src/utils/containers.d.ts +5 -5
- package/src/utils/containers.js +6 -6
- package/src/utils/containers.js.map +1 -1
- package/src/utils/function-constructs/files/cdk/app/lambda-functions/{__functionNameKebabCase__.ts.template → __nameKebabCase__.ts.template} +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/{__functionNameKebabCase__/__functionNameKebabCase__.tf.template → __nameKebabCase__/__nameKebabCase__.tf.template} +7 -7
- package/src/utils/function-constructs/function-constructs.d.ts +4 -4
- package/src/utils/function-constructs/function-constructs.js +5 -7
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/iac-providers.d.ts +3 -3
- package/src/utils/iac-providers.js +1 -1
- package/src/utils/iac.d.ts +2 -2
- package/src/utils/iac.js +6 -6
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
- package/src/utils/identity-constructs/identity-constructs.js +3 -3
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/rdb-constructs/rdb-constructs.d.ts +4 -4
- package/src/utils/rdb-constructs/rdb-constructs.js +4 -6
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +2 -2
- package/src/utils/shared-constructs.js +3 -3
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/website-constructs/website-constructs.d.ts +2 -2
- package/src/utils/website-constructs/website-constructs.js +4 -6
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
|
@@ -25,13 +25,13 @@ const shared_shadcn_1 = require("../../../utils/shared-shadcn");
|
|
|
25
25
|
const metrics_1 = require("../../../utils/metrics");
|
|
26
26
|
const website_constructs_1 = require("../../../utils/website-constructs/website-constructs");
|
|
27
27
|
const iac_1 = require("../../../utils/iac");
|
|
28
|
-
exports.SUPPORTED_UX_PROVIDERS = ['
|
|
28
|
+
exports.SUPPORTED_UX_PROVIDERS = ['none', 'cloudscape', 'shadcn'];
|
|
29
29
|
exports.REACT_WEBSITE_APP_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
30
30
|
async function tsReactWebsiteGenerator(tree, schema) {
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
31
|
+
const tailwind = schema.tailwind ?? true;
|
|
32
|
+
const tanstackRouter = schema.tanstackRouter ?? true;
|
|
33
|
+
const ux = schema.ux ?? 'cloudscape';
|
|
34
|
+
if (ux === 'shadcn' && !tailwind) {
|
|
35
35
|
throw new Error('Shadcn requires TailwindCSS to be enabled.');
|
|
36
36
|
}
|
|
37
37
|
const npmScopePrefix = (0, npm_scope_1.getNpmScopePrefix)(tree);
|
|
@@ -41,27 +41,31 @@ async function tsReactWebsiteGenerator(tree, schema) {
|
|
|
41
41
|
const fullyQualifiedName = `${npmScopePrefix}${websiteNameKebabCase}`;
|
|
42
42
|
// NB: interactive nx generator cli can pass empty string
|
|
43
43
|
const websiteContentPath = (0, devkit_1.joinPathFragments)(schema.directory || '.', schema.subDirectory || websiteNameKebabCase);
|
|
44
|
+
const projectAlreadyExists = tree.exists((0, devkit_1.joinPathFragments)(websiteContentPath, 'project.json'));
|
|
44
45
|
// TODO: consider exposing and supporting e2e tests
|
|
45
46
|
const e2eTestRunner = 'none';
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
47
|
+
if (!projectAlreadyExists) {
|
|
48
|
+
await (0, react_1.applicationGenerator)(tree, {
|
|
49
|
+
...schema,
|
|
50
|
+
name: fullyQualifiedName,
|
|
51
|
+
directory: websiteContentPath,
|
|
52
|
+
routing: false,
|
|
53
|
+
e2eTestRunner,
|
|
54
|
+
linter: 'eslint',
|
|
55
|
+
bundler: 'vite',
|
|
56
|
+
unitTestRunner: 'vitest',
|
|
57
|
+
useProjectJson: true,
|
|
58
|
+
style: 'css',
|
|
59
|
+
});
|
|
60
|
+
// Replace with simpler sample source code
|
|
61
|
+
tree.delete((0, devkit_1.joinPathFragments)(websiteContentPath, 'src'));
|
|
62
|
+
}
|
|
60
63
|
const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, fullyQualifiedName);
|
|
61
64
|
const targets = projectConfiguration.targets;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
const infra = schema.infra ?? 'cloudfront-s3';
|
|
66
|
+
// Configure load:runtime-config target based on IaC provider (only when infra is not none)
|
|
67
|
+
const iac = infra !== 'none' ? await (0, iac_1.resolveIac)(tree, schema.iac) : undefined;
|
|
68
|
+
if (iac === 'cdk') {
|
|
65
69
|
targets['load:runtime-config'] = {
|
|
66
70
|
executor: 'nx:run-commands',
|
|
67
71
|
metadata: {
|
|
@@ -72,7 +76,7 @@ async function tsReactWebsiteGenerator(tree, schema) {
|
|
|
72
76
|
},
|
|
73
77
|
};
|
|
74
78
|
}
|
|
75
|
-
else if (
|
|
79
|
+
else if (iac === 'terraform') {
|
|
76
80
|
targets['load:runtime-config'] = {
|
|
77
81
|
executor: 'nx:run-commands',
|
|
78
82
|
metadata: {
|
|
@@ -88,79 +92,81 @@ async function tsReactWebsiteGenerator(tree, schema) {
|
|
|
88
92
|
},
|
|
89
93
|
};
|
|
90
94
|
}
|
|
91
|
-
|
|
92
|
-
|
|
95
|
+
if (!projectAlreadyExists) {
|
|
96
|
+
const buildTarget = targets['build'];
|
|
97
|
+
targets['compile'] = {
|
|
98
|
+
dependsOn: ['bundle'],
|
|
99
|
+
executor: 'nx:run-commands',
|
|
100
|
+
outputs: ['{workspaceRoot}/dist/{projectRoot}/tsc'],
|
|
101
|
+
options: {
|
|
102
|
+
command: 'tsc --build tsconfig.app.json',
|
|
103
|
+
cwd: '{projectRoot}',
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
targets['bundle'] = {
|
|
107
|
+
...buildTarget,
|
|
108
|
+
options: {
|
|
109
|
+
...buildTarget.options,
|
|
110
|
+
outputPath: 'dist/{projectRoot}/bundle',
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
targets['build'] = {
|
|
114
|
+
dependsOn: [
|
|
115
|
+
'lint',
|
|
116
|
+
'compile',
|
|
117
|
+
'bundle',
|
|
118
|
+
'test',
|
|
119
|
+
...(buildTarget.dependsOn ?? []),
|
|
120
|
+
],
|
|
121
|
+
options: {
|
|
122
|
+
outputPath: 'dist/{projectRoot}/bundle',
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
targets['test'] = {
|
|
126
|
+
...targets['test'],
|
|
127
|
+
options: {
|
|
128
|
+
...(targets['test']?.options ?? {}),
|
|
129
|
+
reportsDirectory: '{workspaceRoot}/coverage/{projectRoot}',
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
// Add a serve-local target for running the website and its dependencies locally
|
|
133
|
+
targets['serve-local'] = {
|
|
134
|
+
executor: '@nx/vite:dev-server',
|
|
135
|
+
options: {
|
|
136
|
+
buildTarget: `${fullyQualifiedName}:build:development`,
|
|
137
|
+
hmr: true,
|
|
138
|
+
mode: 'serve-local',
|
|
139
|
+
},
|
|
140
|
+
continuous: true,
|
|
141
|
+
};
|
|
93
142
|
}
|
|
94
|
-
const buildTarget = targets['build'];
|
|
95
|
-
targets['compile'] = {
|
|
96
|
-
dependsOn: ['bundle'],
|
|
97
|
-
executor: 'nx:run-commands',
|
|
98
|
-
outputs: ['{workspaceRoot}/dist/{projectRoot}/tsc'],
|
|
99
|
-
options: {
|
|
100
|
-
command: 'tsc --build tsconfig.app.json',
|
|
101
|
-
cwd: '{projectRoot}',
|
|
102
|
-
},
|
|
103
|
-
};
|
|
104
|
-
targets['bundle'] = {
|
|
105
|
-
...buildTarget,
|
|
106
|
-
options: {
|
|
107
|
-
...buildTarget.options,
|
|
108
|
-
outputPath: 'dist/{projectRoot}/bundle',
|
|
109
|
-
},
|
|
110
|
-
};
|
|
111
|
-
targets['build'] = {
|
|
112
|
-
dependsOn: [
|
|
113
|
-
'lint',
|
|
114
|
-
'compile',
|
|
115
|
-
'bundle',
|
|
116
|
-
'test',
|
|
117
|
-
...(buildTarget.dependsOn ?? []),
|
|
118
|
-
],
|
|
119
|
-
options: {
|
|
120
|
-
outputPath: 'dist/{projectRoot}/bundle',
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
targets['test'] = {
|
|
124
|
-
...targets['test'],
|
|
125
|
-
options: {
|
|
126
|
-
...(targets['test']?.options ?? {}),
|
|
127
|
-
reportsDirectory: '{workspaceRoot}/coverage/{projectRoot}',
|
|
128
|
-
},
|
|
129
|
-
};
|
|
130
|
-
// Add a serve-local target for running the website and its dependencies locally
|
|
131
|
-
targets['serve-local'] = {
|
|
132
|
-
executor: '@nx/vite:dev-server',
|
|
133
|
-
options: {
|
|
134
|
-
buildTarget: `${fullyQualifiedName}:build:development`,
|
|
135
|
-
hmr: true,
|
|
136
|
-
mode: 'serve-local',
|
|
137
|
-
},
|
|
138
|
-
continuous: true,
|
|
139
|
-
};
|
|
140
143
|
projectConfiguration.targets = (0, object_1.sortObjectKeys)(targets);
|
|
141
144
|
(0, devkit_1.updateProjectConfiguration)(tree, fullyQualifiedName, projectConfiguration);
|
|
142
145
|
(0, nx_1.addGeneratorMetadata)(tree, projectConfiguration.name, exports.REACT_WEBSITE_APP_GENERATOR_INFO, {
|
|
143
|
-
|
|
146
|
+
ux,
|
|
144
147
|
framework: 'react',
|
|
148
|
+
infra,
|
|
145
149
|
});
|
|
146
150
|
await (0, ts_project_utils_1.configureTsProject)(tree, {
|
|
147
151
|
dir: websiteContentPath,
|
|
148
152
|
fullyQualifiedName,
|
|
149
153
|
});
|
|
150
|
-
if (
|
|
154
|
+
if (ux === 'shadcn') {
|
|
151
155
|
await (0, shared_shadcn_1.sharedShadcnGenerator)(tree);
|
|
152
156
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
157
|
+
if (iac) {
|
|
158
|
+
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
|
|
159
|
+
iac,
|
|
160
|
+
});
|
|
161
|
+
await (0, website_constructs_1.addWebsiteInfra)(tree, {
|
|
162
|
+
iac,
|
|
163
|
+
websiteProjectName: fullyQualifiedName,
|
|
164
|
+
scopeAlias,
|
|
165
|
+
websiteContentPath: (0, devkit_1.joinPathFragments)('dist', websiteContentPath),
|
|
166
|
+
websiteNameKebabCase,
|
|
167
|
+
websiteNameClassName,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
164
170
|
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, fullyQualifiedName);
|
|
165
171
|
const libraryRoot = projectConfig.root;
|
|
166
172
|
const sharedShadcnStylesImport = (0, path_1.relative)((0, devkit_1.joinPathFragments)(libraryRoot, 'src'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_SHADCN_DIR, 'src', 'styles', 'globals.css'))
|
|
@@ -173,14 +179,14 @@ async function tsReactWebsiteGenerator(tree, schema) {
|
|
|
173
179
|
...schema,
|
|
174
180
|
fullyQualifiedName,
|
|
175
181
|
pkgMgrCmd: (0, pkg_manager_1.getPackageManagerDisplayCommands)().exec,
|
|
176
|
-
|
|
177
|
-
|
|
182
|
+
tailwind,
|
|
183
|
+
tanstackRouter,
|
|
178
184
|
scopeAlias,
|
|
179
185
|
sharedShadcnStylesImport,
|
|
180
186
|
};
|
|
181
187
|
tree.delete((0, devkit_1.joinPathFragments)(libraryRoot, 'src', 'app'));
|
|
182
188
|
const appCommonTemplatePath = (0, devkit_1.joinPathFragments)(__dirname, './files/app/common');
|
|
183
|
-
const appTemplatePath = (0, devkit_1.joinPathFragments)(__dirname, `./files/app/${
|
|
189
|
+
const appTemplatePath = (0, devkit_1.joinPathFragments)(__dirname, `./files/app/${ux.toLowerCase()}`);
|
|
184
190
|
(0, devkit_1.generateFiles)(tree, // the virtual file system
|
|
185
191
|
appCommonTemplatePath, // path to the file templates
|
|
186
192
|
libraryRoot, // destination path of the files
|
|
@@ -195,9 +201,9 @@ async function tsReactWebsiteGenerator(tree, schema) {
|
|
|
195
201
|
{
|
|
196
202
|
overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
|
|
197
203
|
});
|
|
198
|
-
if (
|
|
204
|
+
if (tanstackRouter) {
|
|
199
205
|
const routerCommonTemplatePath = (0, devkit_1.joinPathFragments)(__dirname, './files/tanstack-router/common');
|
|
200
|
-
const routerTemplatePath = (0, devkit_1.joinPathFragments)(__dirname, `./files/tanstack-router/${
|
|
206
|
+
const routerTemplatePath = (0, devkit_1.joinPathFragments)(__dirname, `./files/tanstack-router/${ux.toLowerCase()}`);
|
|
201
207
|
(0, devkit_1.generateFiles)(tree, routerCommonTemplatePath, libraryRoot, templateOptions, {
|
|
202
208
|
overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
|
|
203
209
|
});
|
|
@@ -224,23 +230,23 @@ async function tsReactWebsiteGenerator(tree, schema) {
|
|
|
224
230
|
const viteConfigPath = (0, devkit_1.joinPathFragments)(libraryRoot, 'vite.config.mts');
|
|
225
231
|
if (tree.exists(viteConfigPath)) {
|
|
226
232
|
// Add Tanstack Router import if enabled
|
|
227
|
-
if (
|
|
233
|
+
if (tanstackRouter) {
|
|
228
234
|
await (0, ast_1.addDestructuredImport)(tree, viteConfigPath, ['tanstackRouter'], '@tanstack/router-plugin/vite');
|
|
229
235
|
await (0, ast_1.addDestructuredImport)(tree, viteConfigPath, ['resolve'], 'path');
|
|
230
236
|
}
|
|
231
237
|
// Add TailwindCSS import if enabled
|
|
232
|
-
if (
|
|
238
|
+
if (tailwind) {
|
|
233
239
|
await (0, ast_1.addSingleImport)(tree, viteConfigPath, 'tailwindcss', '@tailwindcss/vite');
|
|
234
240
|
}
|
|
235
241
|
// Update build.outDir
|
|
236
242
|
const outDir = (0, devkit_1.joinPathFragments)((0, paths_1.getRelativePathToRoot)(tree, fullyQualifiedName), 'dist', websiteContentPath);
|
|
237
243
|
await (0, ast_1.applyGritQL)(tree, viteConfigPath, `\`build: { $bprops }\` where { $bprops <: contains \`outDir: $_\` => \`outDir: '${outDir}'\` }`);
|
|
238
244
|
// Add plugins to the plugins array
|
|
239
|
-
if (
|
|
245
|
+
if (tanstackRouter) {
|
|
240
246
|
// Prepend tanstackRouter (must be first plugin) — rewrite works for both single/multi-element
|
|
241
247
|
await (0, ast_1.applyGritQL)(tree, viteConfigPath, "`plugins: [$items]` => `plugins: [tanstackRouter({ routesDirectory: resolve(__dirname, 'src/routes'), generatedRouteTree: resolve(__dirname, 'src/routeTree.gen.ts') }), $items]` where { $items <: within `defineConfig($_)`, $items <: not contains `tanstackRouter` }");
|
|
242
248
|
}
|
|
243
|
-
if (
|
|
249
|
+
if (tailwind) {
|
|
244
250
|
await (0, ast_1.applyGritQL)(tree, viteConfigPath, '`plugins: [$items]` => `plugins: [$items, tailwindcss()]` where { $items <: within `defineConfig($_)`, $items <: not some `tailwindcss()` }');
|
|
245
251
|
}
|
|
246
252
|
// Use Vite's native tsconfig paths resolution (replaces vite-tsconfig-paths)
|
|
@@ -266,7 +272,7 @@ async function tsReactWebsiteGenerator(tree, schema) {
|
|
|
266
272
|
tsBuildInfoFile: (0, devkit_1.joinPathFragments)(distDir, 'tsconfig.lib.tsbuildinfo'),
|
|
267
273
|
lib: ['DOM'],
|
|
268
274
|
},
|
|
269
|
-
references:
|
|
275
|
+
references: ux === 'shadcn'
|
|
270
276
|
? [
|
|
271
277
|
...(tsconfig.references ?? []).filter((ref) => ref.path !== sharedShadcnTsconfigRef),
|
|
272
278
|
{
|
|
@@ -277,18 +283,18 @@ async function tsReactWebsiteGenerator(tree, schema) {
|
|
|
277
283
|
}));
|
|
278
284
|
const devDependencies = ['@nx/react', '@vitest/ui'];
|
|
279
285
|
const dependencies = ['react', 'react-dom'];
|
|
280
|
-
if (
|
|
286
|
+
if (ux === 'cloudscape') {
|
|
281
287
|
dependencies.push('@cloudscape-design/components', '@cloudscape-design/board-components', '@cloudscape-design/global-styles');
|
|
282
288
|
}
|
|
283
|
-
else if (
|
|
289
|
+
else if (ux === 'shadcn') {
|
|
284
290
|
// not required to add any dependencies because dependencies are added by the common/shadcn package.
|
|
285
291
|
}
|
|
286
292
|
// Add TailwindCSS dependencies if enabled
|
|
287
|
-
if (
|
|
293
|
+
if (tailwind) {
|
|
288
294
|
dependencies.push('tailwindcss');
|
|
289
295
|
devDependencies.push('@tailwindcss/vite');
|
|
290
296
|
}
|
|
291
|
-
if (
|
|
297
|
+
if (tanstackRouter) {
|
|
292
298
|
dependencies.push('@tanstack/react-router');
|
|
293
299
|
devDependencies.push('@tanstack/router-plugin', '@tanstack/router-generator', '@tanstack/virtual-file-routes', '@tanstack/router-utils');
|
|
294
300
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/app/generator.ts"],"names":[],"mappings":";;;AAyDA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/app/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { IacOption } from '../../../utils/iac';
|
|
6
|
+
import { UxOption } from './generator';
|
|
7
|
+
|
|
8
|
+
export type WebsiteInfraOption = 'cloudfront-s3' | 'none';
|
|
7
9
|
|
|
8
10
|
export interface TsReactWebsiteGeneratorSchema {
|
|
9
11
|
name: string;
|
|
10
12
|
directory?: string;
|
|
11
13
|
subDirectory?: string;
|
|
12
14
|
skipInstall?: boolean;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
tanstackRouter?: boolean;
|
|
16
|
+
tailwind?: boolean;
|
|
17
|
+
ux?: UxOption;
|
|
18
|
+
infra?: WebsiteInfraOption;
|
|
19
|
+
iac: IacOption;
|
|
17
20
|
}
|
|
@@ -35,53 +35,53 @@
|
|
|
35
35
|
"description": "The sub directory the project is placed in. By default this is the project name.",
|
|
36
36
|
"x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
|
|
37
37
|
},
|
|
38
|
-
"
|
|
38
|
+
"ux": {
|
|
39
39
|
"type": "string",
|
|
40
40
|
"description": "The preferred UX provider.",
|
|
41
|
-
"enum": ["
|
|
41
|
+
"enum": ["none", "cloudscape", "shadcn"],
|
|
42
42
|
"x-priority": "important",
|
|
43
|
-
"default": "
|
|
43
|
+
"default": "cloudscape",
|
|
44
44
|
"x-prompt": {
|
|
45
45
|
"message": "Which UX provider should we scaffold for this app?",
|
|
46
46
|
"type": "list",
|
|
47
47
|
"items": [
|
|
48
48
|
{
|
|
49
|
-
"value": "
|
|
49
|
+
"value": "none",
|
|
50
50
|
"label": "None (plain React/Vite without a UI kit)"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
|
-
"value": "
|
|
53
|
+
"value": "cloudscape",
|
|
54
54
|
"label": "Cloudscape (AWS-first components with ready-made layouts)"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
"value": "
|
|
57
|
+
"value": "shadcn",
|
|
58
58
|
"label": "Shadcn (shared UI library under packages/common/shadcn)"
|
|
59
59
|
}
|
|
60
60
|
],
|
|
61
|
-
"default": "
|
|
61
|
+
"default": "cloudscape"
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
|
-
"
|
|
64
|
+
"tailwind": {
|
|
65
65
|
"description": "Enable TailwindCSS for utility-first styling.",
|
|
66
66
|
"type": "boolean",
|
|
67
67
|
"default": true,
|
|
68
68
|
"x-priority": "important",
|
|
69
69
|
"x-prompt": "Would you like to enable TailwindCSS for additional styling capabilities?"
|
|
70
70
|
},
|
|
71
|
-
"
|
|
71
|
+
"tanstackRouter": {
|
|
72
72
|
"description": "Enable Tanstack router for type-safe routing.",
|
|
73
73
|
"type": "boolean",
|
|
74
74
|
"default": true,
|
|
75
75
|
"x-priority": "important",
|
|
76
76
|
"x-prompt": "Would you like to enable Tanstack Router for type-safe routing?"
|
|
77
77
|
},
|
|
78
|
-
"
|
|
78
|
+
"iac": {
|
|
79
79
|
"type": "string",
|
|
80
80
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
81
|
-
"enum": ["
|
|
81
|
+
"enum": ["inherit", "cdk", "terraform"],
|
|
82
82
|
"x-priority": "important",
|
|
83
|
-
"default": "
|
|
84
|
-
"x-prompt": "Which provider would you like to manage your infrastructure? (default:
|
|
83
|
+
"default": "inherit",
|
|
84
|
+
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
85
85
|
}
|
|
86
86
|
},
|
|
87
87
|
"required": ["name"],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`cognito-auth generator terraform
|
|
3
|
+
exports[`cognito-auth generator terraform iac > should generate terraform files for cognito auth and snapshot them > terraform-cognito-auth-files 1`] = `
|
|
4
4
|
{
|
|
5
5
|
"add-callback-url.tf": "terraform {
|
|
6
6
|
required_providers {
|
|
@@ -179,7 +179,7 @@ output "user_pool_domain" {
|
|
|
179
179
|
}
|
|
180
180
|
`;
|
|
181
181
|
|
|
182
|
-
exports[`cognito-auth generator terraform
|
|
182
|
+
exports[`cognito-auth generator terraform iac > should place add-callback-url module directly after cloudfront distribution resource > complex-static-website-with-callback-url 1`] = `
|
|
183
183
|
"
|
|
184
184
|
# Some initial resources
|
|
185
185
|
resource "aws_s3_bucket" "website" {
|
|
@@ -249,7 +249,7 @@ output "website_bucket_name" {
|
|
|
249
249
|
"
|
|
250
250
|
`;
|
|
251
251
|
|
|
252
|
-
exports[`cognito-auth generator terraform
|
|
252
|
+
exports[`cognito-auth generator terraform iac > should update static-website.tf with add-callback-url module > static-website-with-callback-url 1`] = `
|
|
253
253
|
"
|
|
254
254
|
module "static_website" {
|
|
255
255
|
source = "../../../core/static-website"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`cognito-auth generator
|
|
3
|
+
exports[`cognito-auth generator ux tests > Cloudscape > should update AppLayout > app-layout-with-auth 1`] = `
|
|
4
4
|
"import { useAuth } from 'react-oidc-context';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { createContext, useCallback, useEffect, useState } from 'react';
|
|
@@ -177,7 +177,7 @@ export default AppLayout;
|
|
|
177
177
|
"
|
|
178
178
|
`;
|
|
179
179
|
|
|
180
|
-
exports[`cognito-auth generator
|
|
180
|
+
exports[`cognito-auth generator ux tests > None > should update AppLayout > app-layout-with-auth 1`] = `
|
|
181
181
|
"import { useAuth } from 'react-oidc-context';
|
|
182
182
|
import * as React from 'react';
|
|
183
183
|
|
|
@@ -332,7 +332,7 @@ export default AppLayout;
|
|
|
332
332
|
"
|
|
333
333
|
`;
|
|
334
334
|
|
|
335
|
-
exports[`cognito-auth generator
|
|
335
|
+
exports[`cognito-auth generator ux tests > Shadcn > should update AppLayout > app-layout-with-auth 1`] = `
|
|
336
336
|
"import { useEffect, useRef, useState } from 'react';
|
|
337
337
|
import { useAuth } from 'react-oidc-context';
|
|
338
338
|
import * as React from 'react';
|
|
@@ -36,12 +36,12 @@ async function tsReactWebsiteAuthGenerator(tree, options) {
|
|
|
36
36
|
await (0, generator_1.runtimeConfigGenerator)(tree, {
|
|
37
37
|
project: options.project,
|
|
38
38
|
});
|
|
39
|
-
const
|
|
39
|
+
const iac = await (0, iac_1.resolveIac)(tree, options.iac);
|
|
40
40
|
await (0, shared_constructs_1.sharedConstructsGenerator)(tree, {
|
|
41
|
-
|
|
41
|
+
iac,
|
|
42
42
|
});
|
|
43
43
|
await (0, identity_constructs_1.addIdentityInfra)(tree, {
|
|
44
|
-
|
|
44
|
+
iac,
|
|
45
45
|
allowSignup: options.allowSignup,
|
|
46
46
|
cognitoDomain,
|
|
47
47
|
});
|
|
@@ -57,7 +57,7 @@ async function tsReactWebsiteAuthGenerator(tree, options) {
|
|
|
57
57
|
contextProp: 'auth',
|
|
58
58
|
});
|
|
59
59
|
const projectConfiguration = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.project);
|
|
60
|
-
const
|
|
60
|
+
const ux = (projectConfiguration.metadata?.ux ?? 'cloudscape').toLowerCase();
|
|
61
61
|
await (0, ast_1.applyGritQL)(tree, mainTsxPath, readGritPattern('cognito-auth-wrapper'));
|
|
62
62
|
// Update App Layout
|
|
63
63
|
const appLayoutTsxPath = (0, devkit_1.joinPathFragments)(srcRoot, 'components', 'AppLayout', 'index.tsx');
|
|
@@ -66,18 +66,18 @@ async function tsReactWebsiteAuthGenerator(tree, options) {
|
|
|
66
66
|
await (0, ast_1.applyGritQL)(tree, appLayoutTsxPath, readGritPattern('app-layout-use-auth'));
|
|
67
67
|
// TODO: update utils if they exist by appending to the array
|
|
68
68
|
// Add a top-level navigation menu that shows the signed-in user's profile and actions
|
|
69
|
-
switch (
|
|
70
|
-
case '
|
|
69
|
+
switch (ux) {
|
|
70
|
+
case 'cloudscape':
|
|
71
71
|
await (0, utils_1.addCloudscapeAuthMenu)(tree, appLayoutTsxPath);
|
|
72
72
|
break;
|
|
73
|
-
case '
|
|
73
|
+
case 'shadcn':
|
|
74
74
|
await (0, utils_1.addShadcnAuthMenu)(tree, appLayoutTsxPath);
|
|
75
75
|
break;
|
|
76
|
-
case '
|
|
76
|
+
case 'none':
|
|
77
77
|
await (0, utils_1.addNoneAuthMenu)(tree, appLayoutTsxPath);
|
|
78
78
|
break;
|
|
79
79
|
default:
|
|
80
|
-
throw new Error(`Top-level navigation menu to show the signed-in user for
|
|
80
|
+
throw new Error(`Top-level navigation menu to show the signed-in user for ux "${ux}" is not implemented.`);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/cognito-auth/generator.ts"],"names":[],"mappings":";;;AAiDA,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/cognito-auth/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { IacOption } from '../../../utils/iac';
|
|
7
7
|
|
|
8
8
|
export interface TsReactWebsiteAuthGeneratorSchema {
|
|
9
9
|
project: string;
|
|
10
10
|
allowSignup: boolean;
|
|
11
11
|
cognitoDomain?: string;
|
|
12
|
-
|
|
12
|
+
iac: IacOption;
|
|
13
13
|
}
|
|
@@ -37,13 +37,13 @@
|
|
|
37
37
|
"x-prompt": "Enable self signup?",
|
|
38
38
|
"x-priority": "important"
|
|
39
39
|
},
|
|
40
|
-
"
|
|
40
|
+
"iac": {
|
|
41
41
|
"type": "string",
|
|
42
42
|
"description": "The preferred IaC provider. By default this is inherited from your initial selection.",
|
|
43
|
-
"enum": ["
|
|
43
|
+
"enum": ["inherit", "cdk", "terraform"],
|
|
44
44
|
"x-priority": "important",
|
|
45
|
-
"default": "
|
|
46
|
-
"x-prompt": "Which provider would you like to manage your infrastructure? (default:
|
|
45
|
+
"default": "inherit",
|
|
46
|
+
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
"required": ["project"]
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { IacOption } from '../../../utils/iac';
|
|
6
|
+
import { UxOption } from '../../react-website/app/generator';
|
|
7
7
|
|
|
8
8
|
export type WebsiteFramework = 'react';
|
|
9
|
+
export type WebsiteInfraOption = 'cloudfront-s3' | 'none';
|
|
9
10
|
|
|
10
11
|
export interface TsWebsiteGeneratorSchema {
|
|
11
12
|
name: string;
|
|
@@ -13,8 +14,9 @@ export interface TsWebsiteGeneratorSchema {
|
|
|
13
14
|
directory?: string;
|
|
14
15
|
subDirectory?: string;
|
|
15
16
|
skipInstall?: boolean;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
tanstackRouter?: boolean;
|
|
18
|
+
tailwind?: boolean;
|
|
19
|
+
ux?: UxOption;
|
|
20
|
+
infra?: WebsiteInfraOption;
|
|
21
|
+
iac: IacOption;
|
|
20
22
|
}
|