@aws/nx-plugin 1.0.0-rc.31 → 1.0.0-rc.33
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/LICENSE-THIRD-PARTY +72 -70
- package/package.json +5 -5
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +15 -15
- package/src/infra/app/files/app/src/main.ts.template +1 -1
- package/src/infra/app/files/app/src/stages/application-stage.ts.template +1 -1
- package/src/infra/app/generator.js +3 -1
- package/src/infra/app/generator.js.map +1 -1
- package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +64 -3
- package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +280 -0
- package/src/open-api/ts-client/files/client.gen.ts.template +37 -2
- package/src/open-api/ts-client/generator.js +5 -1
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +2 -2
- package/src/open-api/ts-hooks/generator.js +5 -1
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/utils/normalise.js +13 -6
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parser.js +12 -1
- package/src/open-api/utils/parser.js.map +1 -1
- package/src/open-api/utils/types.d.ts +4 -1
- package/src/open-api/utils/types.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 +5 -2
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.js.map +1 -1
- package/src/preset/schema.d.ts +2 -0
- package/src/preset/schema.json +6 -0
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +7 -7
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +8 -8
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +89 -3
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +426 -18
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +91 -5
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +283 -11
- package/src/smithy/ts/api/files/handler.ts.template +2 -2
- package/src/smithy/ts/api/files/local-server.ts.template +2 -2
- package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
- package/src/smithy/ts/api/files/service.ts.template +3 -3
- package/src/smithy/ts/api/generator.js +3 -1
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +426 -18
- package/src/trpc/backend/files/src/client/index.ts.template +1 -1
- package/src/trpc/backend/files/src/handler.ts.template +1 -1
- package/src/trpc/backend/files/src/index.ts.template +5 -5
- package/src/trpc/backend/files/src/init.ts.template +1 -1
- package/src/trpc/backend/files/src/local-server.ts.template +1 -1
- package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
- package/src/trpc/backend/files/src/procedures/echo.ts.template +2 -2
- package/src/trpc/backend/files/src/router.ts.template +2 -2
- package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
- package/src/trpc/backend/generator.js +3 -1
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +89 -3
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +2 -2
- package/src/ts/agent/a2a-connection/generator.js +3 -1
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/files/a2a/index.ts.template +1 -1
- package/src/ts/agent/files/ag-ui/index.ts.template +1 -1
- package/src/ts/agent/files/http/client.ts.template +2 -2
- package/src/ts/agent/files/http/index.ts.template +2 -2
- package/src/ts/agent/files/http/router.ts.template +3 -3
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +2 -2
- package/src/ts/agent/gateway-connection/generator.js +3 -1
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- package/src/ts/agent/generator.js +5 -2
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +2 -2
- package/src/ts/agent/mcp-connection/generator.js +3 -1
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +3 -2
- package/src/ts/astro-docs/generator.js +2 -0
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/dynamodb/files/src/client.ts.template +5 -2
- package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
- package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
- package/src/ts/dynamodb/files/src/index.ts.template +2 -2
- package/src/ts/dynamodb/generator.js +3 -1
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/lib/generator.js +7 -1
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/ts-project-utils.js +19 -4
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/types.d.ts +6 -0
- package/src/ts/lib/types.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +94 -31
- package/src/ts/mcp-server/generator.js +11 -22
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/nx-generator/files/local/generator.ts.template +2 -2
- package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +2 -2
- package/src/ts/nx-generator/generator.js +5 -2
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
- package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
- package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
- package/src/ts/nx-plugin/generator.js +3 -1
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/utils.js +7 -4
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/rdb/files/src/create-db-user-handler.ts.template +2 -2
- package/src/ts/rdb/files/src/index.ts.template +1 -1
- package/src/ts/rdb/files/src/migration-handler.ts.template +1 -1
- package/src/ts/rdb/files/src/prisma.ts.template +7 -4
- package/src/ts/rdb/generator.js +3 -1
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +35 -35
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +2 -2
- package/src/utils/agent-chat/agent-chat.js +3 -1
- package/src/utils/agent-chat/agent-chat.js.map +1 -1
- package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-py/chat.ts.template +2 -2
- package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
- package/src/utils/agent-connection/agent-connection.js +4 -1
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +2 -2
- package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +1 -1
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +2 -2
- package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +2 -2
- package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +1 -1
- package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +1 -1
- package/src/utils/agent-connection/files/core-strands/base/with-session-id-strands.ts.template +1 -1
- package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
- package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +10 -3
- 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 +3 -3
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +4 -4
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +1 -1
- package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +27 -0
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +60 -1
- package/src/utils/api-constructs/api-constructs.js +8 -2
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +8 -8
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +8 -8
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +3 -3
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +32 -20
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +1 -1
- package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +4 -4
- package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +69 -1
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +69 -1
- package/src/utils/ast.js +16 -0
- package/src/utils/ast.js.map +1 -1
- package/src/utils/commands.d.ts +1 -1
- package/src/utils/commands.js +4 -1
- package/src/utils/commands.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +9 -2
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +3 -3
- package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +1 -1
- package/src/utils/files/common/constructs/src/core/index.ts.template +4 -4
- package/src/utils/files/common/constructs/src/index.ts.template +2 -2
- package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
- package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
- package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
- package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +1 -1
- package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +1 -1
- package/src/utils/files/common/scripts/src/infra/stage-credentials/run.ts.template +3 -3
- package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
- package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
- package/src/utils/function-constructs/function-constructs.js +3 -1
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +2 -2
- package/src/utils/identity-constructs/identity-constructs.js +5 -1
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/module-format.d.ts +28 -0
- package/src/utils/module-format.js +28 -0
- package/src/utils/module-format.js.map +1 -0
- package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +5 -5
- package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +1 -1
- package/src/utils/rdb-constructs/rdb-constructs.js +9 -2
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs.js +3 -1
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-infra-config.js +3 -1
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-infra-scripts.js +3 -1
- package/src/utils/shared-infra-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.js +3 -1
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +2 -0
- package/src/utils/test.js +7 -1
- package/src/utils/test.js.map +1 -1
- package/src/utils/versions.d.ts +61 -61
- package/src/utils/versions.js +59 -59
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +2 -2
- package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +2 -2
- package/src/utils/website-constructs/website-constructs.js +9 -2
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
AuroraDatabase,
|
|
7
7
|
AuroraDatabaseEngines,
|
|
8
8
|
AuroraDatabaseProps,
|
|
9
|
-
} from '../../core/rdb/aurora
|
|
10
|
-
import { findWorkspaceRoot } from '../../core/workspace
|
|
9
|
+
} from '../../core/rdb/aurora<% if (esm) { %>.js<% } %>';
|
|
10
|
+
import { findWorkspaceRoot } from '../../core/workspace<% if (esm) { %>.js<% } %>';
|
|
11
11
|
|
|
12
12
|
const { runtimeConfigKey } = JSON.parse(
|
|
13
13
|
readFileSync(
|
|
14
14
|
path.join(
|
|
15
|
-
findWorkspaceRoot(url.fileURLToPath(new URL(import.meta.url))),
|
|
15
|
+
findWorkspaceRoot(url.fileURLToPath(new URL(<% if (esm) { %>import.meta.url<% } else { %>require('url').pathToFileURL(__filename).href<% } %>))),
|
|
16
16
|
'<%= projectRoot %>/config.json',
|
|
17
17
|
),
|
|
18
18
|
'utf-8',
|
|
@@ -40,11 +40,11 @@ export class <%= nameClassName %> extends AuroraDatabase {
|
|
|
40
40
|
adminUser: '<%= adminUser %>',
|
|
41
41
|
runtimeConfigKey,
|
|
42
42
|
migrationBundleDir: path.join(
|
|
43
|
-
findWorkspaceRoot(url.fileURLToPath(new URL(import.meta.url))),
|
|
43
|
+
findWorkspaceRoot(url.fileURLToPath(new URL(<% if (esm) { %>import.meta.url<% } else { %>require('url').pathToFileURL(__filename).href<% } %>))),
|
|
44
44
|
'<%- migrationBundleDir %>',
|
|
45
45
|
),
|
|
46
46
|
createDbUserBundleDir: path.join(
|
|
47
|
-
findWorkspaceRoot(url.fileURLToPath(new URL(import.meta.url))),
|
|
47
|
+
findWorkspaceRoot(url.fileURLToPath(new URL(<% if (esm) { %>import.meta.url<% } else { %>require('url').pathToFileURL(__filename).href<% } %>))),
|
|
48
48
|
'<%- createDbUserBundleDir %>',
|
|
49
49
|
),
|
|
50
50
|
engine: AuroraDatabaseEngines.<%= engine %>({}),
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
import { Provider } from 'aws-cdk-lib/custom-resources';
|
|
29
29
|
import { Trigger } from 'aws-cdk-lib/triggers';
|
|
30
30
|
import { Construct } from 'constructs';
|
|
31
|
-
import { RuntimeConfig } from '../runtime-config
|
|
31
|
+
import { RuntimeConfig } from '../runtime-config<% if (esm) { %>.js<% } %>';
|
|
32
32
|
|
|
33
33
|
export type AuroraDatabaseEngineVersion =
|
|
34
34
|
| AuroraMysqlEngineVersion
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/ import { generateFiles, joinPathFragments, OverwriteStrategy, updateJson } from "@nx/devkit";
|
|
5
5
|
import { addStarExport } from "../ast.js";
|
|
6
|
+
import { esmVars } from "../module-format.js";
|
|
6
7
|
import { addDependencyToTargetIfNotPresent } from "../nx.js";
|
|
7
8
|
import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_TERRAFORM_DIR } from "../shared-constructs-constants.js";
|
|
8
9
|
import { terraformProviderVersions } from "../versions.js";
|
|
@@ -20,10 +21,16 @@ export const addRdbInfra = async (tree, options)=>{
|
|
|
20
21
|
});
|
|
21
22
|
};
|
|
22
23
|
export const addRdbCdkConstructs = async (tree, options)=>{
|
|
23
|
-
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'rdb'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'rdb'),
|
|
24
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'rdb'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'rdb'), {
|
|
25
|
+
...options,
|
|
26
|
+
...esmVars(tree)
|
|
27
|
+
}, {
|
|
24
28
|
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
25
29
|
});
|
|
26
|
-
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'dbs'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'dbs'),
|
|
30
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'dbs'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'dbs'), {
|
|
31
|
+
...options,
|
|
32
|
+
...esmVars(tree)
|
|
33
|
+
}, {
|
|
27
34
|
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
28
35
|
});
|
|
29
36
|
await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'index.ts'), './rdb/aurora.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/rdb-constructs/rdb-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport { addStarExport } from '../ast';\nimport type { Containers } from '../containers';\nimport type { Iac } from '../iac';\nimport { addDependencyToTargetIfNotPresent } from '../nx';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../shared-constructs-constants';\nimport { terraformProviderVersions } from '../versions';\n\nexport interface AddRdbConstructOptions {\n projectName: string;\n projectRoot: string;\n nameClassName: string;\n nameKebabCase: string;\n databasePackageAlias: string;\n databaseName: string;\n adminUser: string;\n engine: 'postgres' | 'mysql';\n migrationBundleDir: string;\n createDbUserBundleDir: string;\n dockerImageTag: string;\n containerEngine: Containers;\n}\n\nexport const addRdbInfra = async (\n tree: Tree,\n options: AddRdbConstructOptions & { iac: Iac },\n) => {\n if (options.iac === 'cdk') {\n await addRdbCdkConstructs(tree, options);\n } else if (options.iac === 'terraform') {\n addRdbTerraformModules(tree, options);\n } else {\n throw new Error(`Unsupported iac ${options.iac}`);\n }\n\n updateJson(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR,\n 'project.json',\n ),\n (config: ProjectConfiguration) => {\n addDependencyToTargetIfNotPresent(\n config,\n 'build',\n `${options.projectName}:build`,\n );\n return config;\n },\n );\n};\n\nexport const addRdbCdkConstructs = async (\n tree: Tree,\n options: AddRdbConstructOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'rdb'),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'rdb',\n ),\n options,\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'dbs'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'dbs'),\n options,\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'index.ts',\n ),\n './rdb/aurora.js',\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'dbs',\n 'index.ts',\n ),\n `./${options.nameKebabCase}.js`,\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'index.ts',\n ),\n './dbs/index.js',\n );\n};\n\nexport const addRdbTerraformModules = (\n tree: Tree,\n options: AddRdbConstructOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core', 'rdb'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'rdb'),\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'app', 'dbs'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'app', 'dbs'),\n { ...options, ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n};\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateJson","addStarExport","addDependencyToTargetIfNotPresent","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","terraformProviderVersions","addRdbInfra","tree","options","iac","addRdbCdkConstructs","addRdbTerraformModules","Error","config","projectName","dirname","overwriteStrategy","KeepExisting","nameKebabCase"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAGjBC,UAAU,QACL,aAAa;AACpB,SAASC,aAAa,QAAQ,YAAS;AAGvC,SAASC,iCAAiC,QAAQ,WAAQ;AAC1D,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,oCAAiC;AACxC,SAASC,yBAAyB,QAAQ,iBAAc;AAiBxD,OAAO,MAAMC,cAAc,OACzBC,MACAC;IAEA,IAAIA,QAAQC,GAAG,KAAK,OAAO;QACzB,MAAMC,oBAAoBH,MAAMC;IAClC,OAAO,IAAIA,QAAQC,GAAG,KAAK,aAAa;QACtCE,uBAAuBJ,MAAMC;IAC/B,OAAO;QACL,MAAM,IAAII,MAAM,CAAC,gBAAgB,EAAEJ,QAAQC,GAAG,EAAE;IAClD;
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/rdb-constructs/rdb-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport { addStarExport } from '../ast';\nimport type { Containers } from '../containers';\nimport type { Iac } from '../iac';\nimport { esmVars } from '../module-format';\nimport { addDependencyToTargetIfNotPresent } from '../nx';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../shared-constructs-constants';\nimport { terraformProviderVersions } from '../versions';\n\nexport interface AddRdbConstructOptions {\n projectName: string;\n projectRoot: string;\n nameClassName: string;\n nameKebabCase: string;\n databasePackageAlias: string;\n databaseName: string;\n adminUser: string;\n engine: 'postgres' | 'mysql';\n migrationBundleDir: string;\n createDbUserBundleDir: string;\n dockerImageTag: string;\n containerEngine: Containers;\n}\n\nexport const addRdbInfra = async (\n tree: Tree,\n options: AddRdbConstructOptions & { iac: Iac },\n) => {\n if (options.iac === 'cdk') {\n await addRdbCdkConstructs(tree, options);\n } else if (options.iac === 'terraform') {\n addRdbTerraformModules(tree, options);\n } else {\n throw new Error(`Unsupported iac ${options.iac}`);\n }\n\n updateJson(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n options.iac === 'cdk' ? SHARED_CONSTRUCTS_DIR : SHARED_TERRAFORM_DIR,\n 'project.json',\n ),\n (config: ProjectConfiguration) => {\n addDependencyToTargetIfNotPresent(\n config,\n 'build',\n `${options.projectName}:build`,\n );\n return config;\n },\n );\n};\n\nexport const addRdbCdkConstructs = async (\n tree: Tree,\n options: AddRdbConstructOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core', 'rdb'),\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'rdb',\n ),\n { ...options, ...esmVars(tree) },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'app', 'dbs'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'app', 'dbs'),\n { ...options, ...esmVars(tree) },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'index.ts',\n ),\n './rdb/aurora.js',\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'dbs',\n 'index.ts',\n ),\n `./${options.nameKebabCase}.js`,\n );\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'app',\n 'index.ts',\n ),\n './dbs/index.js',\n );\n};\n\nexport const addRdbTerraformModules = (\n tree: Tree,\n options: AddRdbConstructOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core', 'rdb'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'rdb'),\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'app', 'dbs'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'app', 'dbs'),\n { ...options, ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n};\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateJson","addStarExport","esmVars","addDependencyToTargetIfNotPresent","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","terraformProviderVersions","addRdbInfra","tree","options","iac","addRdbCdkConstructs","addRdbTerraformModules","Error","config","projectName","dirname","overwriteStrategy","KeepExisting","nameKebabCase"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAGjBC,UAAU,QACL,aAAa;AACpB,SAASC,aAAa,QAAQ,YAAS;AAGvC,SAASC,OAAO,QAAQ,sBAAmB;AAC3C,SAASC,iCAAiC,QAAQ,WAAQ;AAC1D,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,oCAAiC;AACxC,SAASC,yBAAyB,QAAQ,iBAAc;AAiBxD,OAAO,MAAMC,cAAc,OACzBC,MACAC;IAEA,IAAIA,QAAQC,GAAG,KAAK,OAAO;QACzB,MAAMC,oBAAoBH,MAAMC;IAClC,OAAO,IAAIA,QAAQC,GAAG,KAAK,aAAa;QACtCE,uBAAuBJ,MAAMC;IAC/B,OAAO;QACL,MAAM,IAAII,MAAM,CAAC,gBAAgB,EAAEJ,QAAQC,GAAG,EAAE;IAClD;IAEAX,WACES,MACAX,kBACEM,cACAM,QAAQC,GAAG,KAAK,QAAQN,wBAAwBC,sBAChD,iBAEF,CAACS;QACCZ,kCACEY,QACA,SACA,GAAGL,QAAQM,WAAW,CAAC,MAAM,CAAC;QAEhC,OAAOD;IACT;AAEJ,EAAE;AAEF,OAAO,MAAMH,sBAAsB,OACjCH,MACAC;IAEAb,cACEY,MACAX,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,OAAO,QAAQ,QAC/DnB,kBACEM,cACAC,uBACA,OACA,QACA,QAEF;QAAE,GAAGK,OAAO;QAAE,GAAGR,QAAQO,KAAK;IAAC,GAC/B;QACES,mBAAmBnB,kBAAkBoB,YAAY;IACnD;IAGFtB,cACEY,MACAX,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,OAAO,OAAO,QAC9DnB,kBAAkBM,cAAcC,uBAAuB,OAAO,OAAO,QACrE;QAAE,GAAGK,OAAO;QAAE,GAAGR,QAAQO,KAAK;IAAC,GAC/B;QACES,mBAAmBnB,kBAAkBoB,YAAY;IACnD;IAGF,MAAMlB,cACJQ,MACAX,kBACEM,cACAC,uBACA,OACA,QACA,aAEF;IAEF,MAAMJ,cACJQ,MACAX,kBACEM,cACAC,uBACA,OACA,OACA,OACA,aAEF,CAAC,EAAE,EAAEK,QAAQU,aAAa,CAAC,GAAG,CAAC;IAEjC,MAAMnB,cACJQ,MACAX,kBACEM,cACAC,uBACA,OACA,OACA,aAEF;AAEJ,EAAE;AAEF,OAAO,MAAMQ,yBAAyB,CACpCJ,MACAC;IAEAb,cACEY,MACAX,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,aAAa,QAAQ,QACrEnB,kBAAkBM,cAAcE,sBAAsB,OAAO,QAAQ,QACrE;QAAE,GAAGC,2BAA2B;IAAC,GACjC;QACEW,mBAAmBnB,kBAAkBoB,YAAY;IACnD;IAGFtB,cACEY,MACAX,kBAAkB,YAAYmB,OAAO,EAAE,SAAS,aAAa,OAAO,QACpEnB,kBAAkBM,cAAcE,sBAAsB,OAAO,OAAO,QACpE;QAAE,GAAGI,OAAO;QAAE,GAAGH,2BAA2B;IAAC,GAC7C;QACEW,mBAAmBnB,kBAAkBoB,YAAY;IACnD;AAEJ,EAAE"}
|
|
@@ -6,6 +6,7 @@ import terraformProjectGenerator from "../terraform/project/generator.js";
|
|
|
6
6
|
import tsProjectGenerator from "../ts/lib/generator.js";
|
|
7
7
|
import { readAwsNxPluginConfig } from "./config/utils.js";
|
|
8
8
|
import { formatFilesInSubtree } from "./format.js";
|
|
9
|
+
import { esmVars } from "./module-format.js";
|
|
9
10
|
import { getNpmScopePrefix, toScopeAlias } from "./npm-scope.js";
|
|
10
11
|
import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
|
|
11
12
|
import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_CONSTRUCTS_NAME, SHARED_TERRAFORM_DIR, SHARED_TERRAFORM_NAME } from "./shared-constructs-constants.js";
|
|
@@ -25,7 +26,8 @@ export async function sharedConstructsGenerator(tree, options) {
|
|
|
25
26
|
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', SHARED_CONSTRUCTS_DIR, 'src'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'), {
|
|
26
27
|
npmScopePrefix,
|
|
27
28
|
scopeAlias: toScopeAlias(npmScopePrefix),
|
|
28
|
-
tags: (await readAwsNxPluginConfig(tree))?.tags ?? []
|
|
29
|
+
tags: (await readAwsNxPluginConfig(tree))?.tags ?? [],
|
|
30
|
+
...esmVars(tree)
|
|
29
31
|
}, {
|
|
30
32
|
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
31
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport terraformProjectGenerator from '../terraform/project/generator';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { readAwsNxPluginConfig } from './config/utils';\nimport { formatFilesInSubtree } from './format';\nimport type { Iac } from './iac';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_CONSTRUCTS_NAME,\n SHARED_TERRAFORM_DIR,\n SHARED_TERRAFORM_NAME,\n} from './shared-constructs-constants';\nimport { terraformProviderVersions, withVersions } from './versions';\n\nexport interface SharedConstructsGeneratorOptions {\n iac: Iac;\n}\n\nexport async function sharedConstructsGenerator(\n tree: Tree,\n options: SharedConstructsGeneratorOptions,\n) {\n const { iac } = options;\n const npmScopePrefix = getNpmScopePrefix(tree);\n updateGitignore(tree);\n\n if (iac === 'cdk') {\n if (\n !tree.exists(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'project.json'),\n )\n ) {\n await tsProjectGenerator(tree, {\n name: SHARED_CONSTRUCTS_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_CONSTRUCTS_DIR,\n });\n tree.delete(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n );\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_CONSTRUCTS_DIR,\n 'src',\n ),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n {\n npmScopePrefix,\n scopeAlias: toScopeAlias(npmScopePrefix),\n tags: (await readAwsNxPluginConfig(tree))?.tags ?? [],\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR),\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_CONSTRUCTS_NAME}`,\n name: SHARED_CONSTRUCTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n addDependenciesToPackageJson(\n tree,\n withVersions(['constructs', 'aws-cdk-lib']),\n withVersions(['@types/node']),\n );\n await formatFilesInSubtree(tree);\n }\n }\n\n // Handle Terraform provider\n if (iac === 'terraform') {\n const terraformLibPath = joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n );\n if (!tree.exists(joinPathFragments(terraformLibPath, 'project.json'))) {\n await terraformProjectGenerator(tree, {\n name: SHARED_TERRAFORM_NAME,\n directory: joinPathFragments(PACKAGES_DIR, 'common'),\n type: 'library',\n });\n\n // Add target to reset runtime config as part of the build, ensuring any plan/apply target\n // which depends on shared terraform will build runtime-config.json from scratch, meaning no old\n // values will remain when resources are removed.\n // NB: runtime-config.json starts as an empty object to keep the reader terraform module simple\n updateJson(\n tree,\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'project.json'),\n (projectConfig: ProjectConfiguration) => {\n projectConfig.targets ??= {};\n projectConfig.targets['reset-runtime-config'] = {\n executor: 'nx:run-commands',\n options: {\n command: 'tsx scripts/reset-runtime-config.ts',\n cwd: '{projectRoot}',\n env: {\n DIST_DIR: '{workspaceRoot}/dist/{projectRoot}',\n },\n },\n };\n projectConfig.targets.build ??= {};\n projectConfig.targets.build.dependsOn = [\n ...(projectConfig.targets.build.dependsOn ?? []).filter(\n (t) => t !== 'reset-runtime-config',\n ),\n 'reset-runtime-config',\n ];\n return projectConfig;\n },\n );\n\n tree.delete(joinPathFragments(terraformLibPath, 'src', 'main.tf'));\n\n // Create the metrics.tf file with empty initial values\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform'),\n terraformLibPath,\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n addDependenciesToPackageJson(tree, {}, withVersions(['tsx']));\n\n await formatFilesInSubtree(tree);\n }\n }\n}\n\nconst updateGitignore = (tree: Tree) => {\n const gitignore = tree.exists('.gitignore')\n ? tree.read('.gitignore', 'utf-8')\n : '';\n const regex = /runtime-config.json/gm;\n const hasRuntimeConfig = regex.test(gitignore ?? '');\n if (hasRuntimeConfig) {\n return;\n }\n tree.write('.gitignore', `${gitignore}\\n\\nruntime-config.json`);\n};\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","updateJson","terraformProjectGenerator","tsProjectGenerator","readAwsNxPluginConfig","formatFilesInSubtree","getNpmScopePrefix","toScopeAlias","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_CONSTRUCTS_NAME","SHARED_TERRAFORM_DIR","SHARED_TERRAFORM_NAME","terraformProviderVersions","withVersions","sharedConstructsGenerator","tree","options","iac","npmScopePrefix","updateGitignore","exists","name","directory","subDirectory","delete","dirname","scopeAlias","tags","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","exec","Overwrite","terraformLibPath","type","projectConfig","targets","executor","command","cwd","env","DIST_DIR","build","dependsOn","filter","t","gitignore","read","regex","hasRuntimeConfig","test","write"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAGjBC,UAAU,QACL,aAAa;AACpB,OAAOC,+BAA+B,oCAAiC;AACvE,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,qBAAqB,QAAQ,oBAAiB;AACvD,SAASC,oBAAoB,QAAQ,cAAW;AAEhD,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,qBAAqB,EACrBC,sBAAsB,EACtBC,oBAAoB,EACpBC,qBAAqB,QAChB,mCAAgC;AACvC,SAASC,yBAAyB,EAAEC,YAAY,QAAQ,gBAAa;AAMrE,OAAO,eAAeC,0BACpBC,IAAU,EACVC,OAAyC;IAEzC,MAAM,EAAEC,GAAG,EAAE,GAAGD;IAChB,MAAME,iBAAiBd,kBAAkBW;IACzCI,gBAAgBJ;IAEhB,IAAIE,QAAQ,OAAO;QACjB,IACE,CAACF,KAAKK,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport terraformProjectGenerator from '../terraform/project/generator';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { readAwsNxPluginConfig } from './config/utils';\nimport { formatFilesInSubtree } from './format';\nimport type { Iac } from './iac';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_CONSTRUCTS_NAME,\n SHARED_TERRAFORM_DIR,\n SHARED_TERRAFORM_NAME,\n} from './shared-constructs-constants';\nimport { terraformProviderVersions, withVersions } from './versions';\n\nexport interface SharedConstructsGeneratorOptions {\n iac: Iac;\n}\n\nexport async function sharedConstructsGenerator(\n tree: Tree,\n options: SharedConstructsGeneratorOptions,\n) {\n const { iac } = options;\n const npmScopePrefix = getNpmScopePrefix(tree);\n updateGitignore(tree);\n\n if (iac === 'cdk') {\n if (\n !tree.exists(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'project.json'),\n )\n ) {\n await tsProjectGenerator(tree, {\n name: SHARED_CONSTRUCTS_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_CONSTRUCTS_DIR,\n });\n tree.delete(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n );\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_CONSTRUCTS_DIR,\n 'src',\n ),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n {\n npmScopePrefix,\n scopeAlias: toScopeAlias(npmScopePrefix),\n tags: (await readAwsNxPluginConfig(tree))?.tags ?? [],\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR),\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_CONSTRUCTS_NAME}`,\n name: SHARED_CONSTRUCTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n addDependenciesToPackageJson(\n tree,\n withVersions(['constructs', 'aws-cdk-lib']),\n withVersions(['@types/node']),\n );\n await formatFilesInSubtree(tree);\n }\n }\n\n // Handle Terraform provider\n if (iac === 'terraform') {\n const terraformLibPath = joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n );\n if (!tree.exists(joinPathFragments(terraformLibPath, 'project.json'))) {\n await terraformProjectGenerator(tree, {\n name: SHARED_TERRAFORM_NAME,\n directory: joinPathFragments(PACKAGES_DIR, 'common'),\n type: 'library',\n });\n\n // Add target to reset runtime config as part of the build, ensuring any plan/apply target\n // which depends on shared terraform will build runtime-config.json from scratch, meaning no old\n // values will remain when resources are removed.\n // NB: runtime-config.json starts as an empty object to keep the reader terraform module simple\n updateJson(\n tree,\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'project.json'),\n (projectConfig: ProjectConfiguration) => {\n projectConfig.targets ??= {};\n projectConfig.targets['reset-runtime-config'] = {\n executor: 'nx:run-commands',\n options: {\n command: 'tsx scripts/reset-runtime-config.ts',\n cwd: '{projectRoot}',\n env: {\n DIST_DIR: '{workspaceRoot}/dist/{projectRoot}',\n },\n },\n };\n projectConfig.targets.build ??= {};\n projectConfig.targets.build.dependsOn = [\n ...(projectConfig.targets.build.dependsOn ?? []).filter(\n (t) => t !== 'reset-runtime-config',\n ),\n 'reset-runtime-config',\n ];\n return projectConfig;\n },\n );\n\n tree.delete(joinPathFragments(terraformLibPath, 'src', 'main.tf'));\n\n // Create the metrics.tf file with empty initial values\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform'),\n terraformLibPath,\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n addDependenciesToPackageJson(tree, {}, withVersions(['tsx']));\n\n await formatFilesInSubtree(tree);\n }\n }\n}\n\nconst updateGitignore = (tree: Tree) => {\n const gitignore = tree.exists('.gitignore')\n ? tree.read('.gitignore', 'utf-8')\n : '';\n const regex = /runtime-config.json/gm;\n const hasRuntimeConfig = regex.test(gitignore ?? '');\n if (hasRuntimeConfig) {\n return;\n }\n tree.write('.gitignore', `${gitignore}\\n\\nruntime-config.json`);\n};\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","updateJson","terraformProjectGenerator","tsProjectGenerator","readAwsNxPluginConfig","formatFilesInSubtree","esmVars","getNpmScopePrefix","toScopeAlias","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_CONSTRUCTS_NAME","SHARED_TERRAFORM_DIR","SHARED_TERRAFORM_NAME","terraformProviderVersions","withVersions","sharedConstructsGenerator","tree","options","iac","npmScopePrefix","updateGitignore","exists","name","directory","subDirectory","delete","dirname","scopeAlias","tags","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","exec","Overwrite","terraformLibPath","type","projectConfig","targets","executor","command","cwd","env","DIST_DIR","build","dependsOn","filter","t","gitignore","read","regex","hasRuntimeConfig","test","write"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAGjBC,UAAU,QACL,aAAa;AACpB,OAAOC,+BAA+B,oCAAiC;AACvE,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,qBAAqB,QAAQ,oBAAiB;AACvD,SAASC,oBAAoB,QAAQ,cAAW;AAEhD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,qBAAqB,EACrBC,sBAAsB,EACtBC,oBAAoB,EACpBC,qBAAqB,QAChB,mCAAgC;AACvC,SAASC,yBAAyB,EAAEC,YAAY,QAAQ,gBAAa;AAMrE,OAAO,eAAeC,0BACpBC,IAAU,EACVC,OAAyC;IAEzC,MAAM,EAAEC,GAAG,EAAE,GAAGD;IAChB,MAAME,iBAAiBd,kBAAkBW;IACzCI,gBAAgBJ;IAEhB,IAAIE,QAAQ,OAAO;QACjB,IACE,CAACF,KAAKK,MAAM,CACVxB,kBAAkBW,cAAcC,uBAAuB,kBAEzD;YACA,MAAMR,mBAAmBe,MAAM;gBAC7BM,MAAMZ;gBACNa,WAAWf;gBACXgB,cAAcf;YAChB;YACAO,KAAKS,MAAM,CACT5B,kBAAkBW,cAAcC,uBAAuB;YAEzDb,cACEoB,MACAnB,kBACE,YAAY6B,OAAO,EACnB,SACAjB,uBACA,QAEFZ,kBAAkBW,cAAcC,uBAAuB,QACvD;gBACEU;gBACAQ,YAAYrB,aAAaa;gBACzBS,MAAM,AAAC,CAAA,MAAM1B,sBAAsBc,KAAI,GAAIY,QAAQ,EAAE;gBACrD,GAAGxB,QAAQY,KAAK;YAClB,GACA;gBACEa,mBAAmB/B,kBAAkBgC,YAAY;YACnD;YAEFlC,cACEoB,MACAnB,kBAAkB,YAAY6B,OAAO,EAAE,SAAS,UAAU,WAC1D7B,kBAAkBW,cAAcC,wBAChC;gBACEsB,oBAAoB,GAAGZ,iBAAiBT,wBAAwB;gBAChEY,MAAMZ;gBACNsB,WAAWzB,mCAAmC0B,IAAI;YACpD,GACA;gBACEJ,mBAAmB/B,kBAAkBoC,SAAS;YAChD;YAEFvC,6BACEqB,MACAF,aAAa;gBAAC;gBAAc;aAAc,GAC1CA,aAAa;gBAAC;aAAc;YAE9B,MAAMX,qBAAqBa;QAC7B;IACF;IAEA,4BAA4B;IAC5B,IAAIE,QAAQ,aAAa;QACvB,MAAMiB,mBAAmBtC,kBACvBW,cACAG;QAEF,IAAI,CAACK,KAAKK,MAAM,CAACxB,kBAAkBsC,kBAAkB,kBAAkB;YACrE,MAAMnC,0BAA0BgB,MAAM;gBACpCM,MAAMV;gBACNW,WAAW1B,kBAAkBW,cAAc;gBAC3C4B,MAAM;YACR;YAEA,0FAA0F;YAC1F,gGAAgG;YAChG,iDAAiD;YACjD,+FAA+F;YAC/FrC,WACEiB,MACAnB,kBAAkBW,cAAcG,sBAAsB,iBACtD,CAAC0B;gBACCA,cAAcC,OAAO,KAAK,CAAC;gBAC3BD,cAAcC,OAAO,CAAC,uBAAuB,GAAG;oBAC9CC,UAAU;oBACVtB,SAAS;wBACPuB,SAAS;wBACTC,KAAK;wBACLC,KAAK;4BACHC,UAAU;wBACZ;oBACF;gBACF;gBACAN,cAAcC,OAAO,CAACM,KAAK,KAAK,CAAC;gBACjCP,cAAcC,OAAO,CAACM,KAAK,CAACC,SAAS,GAAG;uBACnC,AAACR,CAAAA,cAAcC,OAAO,CAACM,KAAK,CAACC,SAAS,IAAI,EAAE,AAAD,EAAGC,MAAM,CACrD,CAACC,IAAMA,MAAM;oBAEf;iBACD;gBACD,OAAOV;YACT;YAGFrB,KAAKS,MAAM,CAAC5B,kBAAkBsC,kBAAkB,OAAO;YAEvD,uDAAuD;YACvDvC,cACEoB,MACAnB,kBAAkB,YAAY6B,OAAO,EAAE,SAAS,cAChDS,kBACA;gBAAE,GAAGtB,2BAA2B;YAAC,GACjC;gBACEgB,mBAAmB/B,kBAAkBgC,YAAY;YACnD;YAGFnC,6BAA6BqB,MAAM,CAAC,GAAGF,aAAa;gBAAC;aAAM;YAE3D,MAAMX,qBAAqBa;QAC7B;IACF;AACF;AAEA,MAAMI,kBAAkB,CAACJ;IACvB,MAAMgC,YAAYhC,KAAKK,MAAM,CAAC,gBAC1BL,KAAKiC,IAAI,CAAC,cAAc,WACxB;IACJ,MAAMC,QAAQ;IACd,MAAMC,mBAAmBD,MAAME,IAAI,CAACJ,aAAa;IACjD,IAAIG,kBAAkB;QACpB;IACF;IACAnC,KAAKqC,KAAK,CAAC,cAAc,GAAGL,UAAU,uBAAuB,CAAC;AAChE"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/ import { generateFiles, joinPathFragments, OverwriteStrategy } from "@nx/devkit";
|
|
5
5
|
import tsProjectGenerator from "../ts/lib/generator.js";
|
|
6
6
|
import { formatFilesInSubtree } from "./format.js";
|
|
7
|
+
import { esmVars } from "./module-format.js";
|
|
7
8
|
import { getNpmScopePrefix } from "./npm-scope.js";
|
|
8
9
|
import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
|
|
9
10
|
import { PACKAGES_DIR, SHARED_INFRA_CONFIG_DIR, SHARED_INFRA_CONFIG_NAME } from "./shared-constructs-constants.js";
|
|
@@ -27,7 +28,8 @@ import { PACKAGES_DIR, SHARED_INFRA_CONFIG_DIR, SHARED_INFRA_CONFIG_NAME } from
|
|
|
27
28
|
// Replace default src/ with our templates
|
|
28
29
|
tree.delete(joinPathFragments(configDir, 'src'));
|
|
29
30
|
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', SHARED_INFRA_CONFIG_DIR, 'src'), joinPathFragments(configDir, 'src'), {
|
|
30
|
-
pkgMgrRunNx: `${displayCmds.exec} nx
|
|
31
|
+
pkgMgrRunNx: `${displayCmds.exec} nx`,
|
|
32
|
+
...esmVars(tree)
|
|
31
33
|
}, {
|
|
32
34
|
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
33
35
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-config.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { formatFilesInSubtree } from './format';\nimport { getNpmScopePrefix } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_INFRA_CONFIG_DIR,\n SHARED_INFRA_CONFIG_NAME,\n} from './shared-constructs-constants';\n\n/**\n * Lazily creates the shared infra-config package at packages/common/infra-config/.\n * Contains stage configuration types and the user's stage-to-credential mappings.\n * Importable from any package via ts project references.\n */\nexport async function sharedInfraConfigGenerator(tree: Tree): Promise<void> {\n const configDir = joinPathFragments(PACKAGES_DIR, SHARED_INFRA_CONFIG_DIR);\n\n // Don't recreate if it already exists\n if (tree.exists(joinPathFragments(configDir, 'project.json'))) {\n return;\n }\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const displayCmds = getPackageManagerDisplayCommands();\n\n await tsProjectGenerator(tree, {\n name: SHARED_INFRA_CONFIG_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_INFRA_CONFIG_DIR,\n });\n\n // Replace default src/ with our templates\n tree.delete(joinPathFragments(configDir, 'src'));\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_INFRA_CONFIG_DIR,\n 'src',\n ),\n joinPathFragments(configDir, 'src'),\n {\n pkgMgrRunNx: `${displayCmds.exec} nx`,\n },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Generate README\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n configDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_INFRA_CONFIG_NAME}`,\n name: SHARED_INFRA_CONFIG_NAME,\n pkgMgrCmd: displayCmds.exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","tsProjectGenerator","formatFilesInSubtree","getNpmScopePrefix","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_INFRA_CONFIG_DIR","SHARED_INFRA_CONFIG_NAME","sharedInfraConfigGenerator","tree","configDir","exists","npmScopePrefix","displayCmds","name","directory","subDirectory","delete","dirname","pkgMgrRunNx","exec","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,uBAAuB,EACvBC,wBAAwB,QACnB,mCAAgC;AAEvC;;;;CAIC,GACD,OAAO,eAAeC,2BAA2BC,IAAU;IACzD,MAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-config.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_INFRA_CONFIG_DIR,\n SHARED_INFRA_CONFIG_NAME,\n} from './shared-constructs-constants';\n\n/**\n * Lazily creates the shared infra-config package at packages/common/infra-config/.\n * Contains stage configuration types and the user's stage-to-credential mappings.\n * Importable from any package via ts project references.\n */\nexport async function sharedInfraConfigGenerator(tree: Tree): Promise<void> {\n const configDir = joinPathFragments(PACKAGES_DIR, SHARED_INFRA_CONFIG_DIR);\n\n // Don't recreate if it already exists\n if (tree.exists(joinPathFragments(configDir, 'project.json'))) {\n return;\n }\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const displayCmds = getPackageManagerDisplayCommands();\n\n await tsProjectGenerator(tree, {\n name: SHARED_INFRA_CONFIG_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_INFRA_CONFIG_DIR,\n });\n\n // Replace default src/ with our templates\n tree.delete(joinPathFragments(configDir, 'src'));\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_INFRA_CONFIG_DIR,\n 'src',\n ),\n joinPathFragments(configDir, 'src'),\n {\n pkgMgrRunNx: `${displayCmds.exec} nx`,\n ...esmVars(tree),\n },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Generate README\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n configDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_INFRA_CONFIG_NAME}`,\n name: SHARED_INFRA_CONFIG_NAME,\n pkgMgrCmd: displayCmds.exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","tsProjectGenerator","formatFilesInSubtree","esmVars","getNpmScopePrefix","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_INFRA_CONFIG_DIR","SHARED_INFRA_CONFIG_NAME","sharedInfraConfigGenerator","tree","configDir","exists","npmScopePrefix","displayCmds","name","directory","subDirectory","delete","dirname","pkgMgrRunNx","exec","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,uBAAuB,EACvBC,wBAAwB,QACnB,mCAAgC;AAEvC;;;;CAIC,GACD,OAAO,eAAeC,2BAA2BC,IAAU;IACzD,MAAMC,YAAYZ,kBAAkBO,cAAcC;IAElD,sCAAsC;IACtC,IAAIG,KAAKE,MAAM,CAACb,kBAAkBY,WAAW,kBAAkB;QAC7D;IACF;IAEA,MAAME,iBAAiBT,kBAAkBM;IACzC,MAAMI,cAAcT;IAEpB,MAAMJ,mBAAmBS,MAAM;QAC7BK,MAAMP;QACNQ,WAAWV;QACXW,cAAcV;IAChB;IAEA,0CAA0C;IAC1CG,KAAKQ,MAAM,CAACnB,kBAAkBY,WAAW;IACzCb,cACEY,MACAX,kBACE,YAAYoB,OAAO,EACnB,SACAZ,yBACA,QAEFR,kBAAkBY,WAAW,QAC7B;QACES,aAAa,GAAGN,YAAYO,IAAI,CAAC,GAAG,CAAC;QACrC,GAAGlB,QAAQO,KAAK;IAClB,GACA;QAAEY,mBAAmBtB,kBAAkBuB,YAAY;IAAC;IAGtD,kBAAkB;IAClBzB,cACEY,MACAX,kBAAkB,YAAYoB,OAAO,EAAE,SAAS,UAAU,WAC1DR,WACA;QACEa,oBAAoB,GAAGX,iBAAiBL,0BAA0B;QAClEO,MAAMP;QACNiB,WAAWX,YAAYO,IAAI;IAC7B,GACA;QAAEC,mBAAmBtB,kBAAkB0B,SAAS;IAAC;IAGnD,MAAMxB,qBAAqBQ;AAC7B"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/ import { addDependenciesToPackageJson, generateFiles, joinPathFragments, OverwriteStrategy } from "@nx/devkit";
|
|
5
5
|
import { formatFilesInSubtree } from "./format.js";
|
|
6
|
+
import { esmVars } from "./module-format.js";
|
|
6
7
|
import { getNpmScopePrefix, toScopeAlias } from "./npm-scope.js";
|
|
7
8
|
import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
|
|
8
9
|
import { PACKAGES_DIR, SHARED_SCRIPTS_DIR, SHARED_SCRIPTS_NAME } from "./shared-constructs-constants.js";
|
|
@@ -18,7 +19,8 @@ import { withVersions } from "./versions.js";
|
|
|
18
19
|
const npmScopePrefix = getNpmScopePrefix(tree);
|
|
19
20
|
const scopeAlias = toScopeAlias(npmScopePrefix);
|
|
20
21
|
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', SHARED_SCRIPTS_DIR, 'src', 'infra'), joinPathFragments(scriptsDir, 'src', 'infra'), {
|
|
21
|
-
scopeAlias
|
|
22
|
+
scopeAlias,
|
|
23
|
+
...esmVars(tree)
|
|
22
24
|
}, {
|
|
23
25
|
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
24
26
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { formatFilesInSubtree } from './format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n SHARED_SCRIPTS_NAME,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { withVersions } from './versions';\n\n/**\n * Ensures the shared scripts package exists and adds infra-deploy/infra-destroy\n * scripts to packages/common/scripts/src/infra/. Called by ts#infra when\n * stageConfig is enabled.\n */\nexport async function sharedInfraScriptsGenerator(tree: Tree): Promise<void> {\n const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);\n\n await ensureSharedScriptsProject(tree);\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'infra',\n ),\n joinPathFragments(scriptsDir, 'src', 'infra'),\n { scopeAlias },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Used by deploy-time scripts for assumeRole\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(['@aws-sdk/client-sts', '@aws-sdk/credential-providers']),\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n scriptsDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_SCRIPTS_NAME}`,\n name: SHARED_SCRIPTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","formatFilesInSubtree","getNpmScopePrefix","toScopeAlias","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_SCRIPTS_NAME","ensureSharedScriptsProject","withVersions","sharedInfraScriptsGenerator","tree","scriptsDir","npmScopePrefix","scopeAlias","dirname","overwriteStrategy","KeepExisting","fullyQualifiedName","name","pkgMgrCmd","exec","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,kBAAkB,EAClBC,mBAAmB,QACd,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAASC,YAAY,QAAQ,gBAAa;AAE1C;;;;CAIC,GACD,OAAO,eAAeC,4BAA4BC,IAAU;IAC1D,MAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n SHARED_SCRIPTS_NAME,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { withVersions } from './versions';\n\n/**\n * Ensures the shared scripts package exists and adds infra-deploy/infra-destroy\n * scripts to packages/common/scripts/src/infra/. Called by ts#infra when\n * stageConfig is enabled.\n */\nexport async function sharedInfraScriptsGenerator(tree: Tree): Promise<void> {\n const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);\n\n await ensureSharedScriptsProject(tree);\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'infra',\n ),\n joinPathFragments(scriptsDir, 'src', 'infra'),\n { scopeAlias, ...esmVars(tree) },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Used by deploy-time scripts for assumeRole\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(['@aws-sdk/client-sts', '@aws-sdk/credential-providers']),\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n scriptsDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_SCRIPTS_NAME}`,\n name: SHARED_SCRIPTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","formatFilesInSubtree","esmVars","getNpmScopePrefix","toScopeAlias","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_SCRIPTS_NAME","ensureSharedScriptsProject","withVersions","sharedInfraScriptsGenerator","tree","scriptsDir","npmScopePrefix","scopeAlias","dirname","overwriteStrategy","KeepExisting","fullyQualifiedName","name","pkgMgrCmd","exec","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,kBAAkB,EAClBC,mBAAmB,QACd,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAASC,YAAY,QAAQ,gBAAa;AAE1C;;;;CAIC,GACD,OAAO,eAAeC,4BAA4BC,IAAU;IAC1D,MAAMC,aAAad,kBAAkBO,cAAcC;IAEnD,MAAME,2BAA2BG;IAEjC,MAAME,iBAAiBX,kBAAkBS;IACzC,MAAMG,aAAaX,aAAaU;IAEhChB,cACEc,MACAb,kBACE,YAAYiB,OAAO,EACnB,SACAT,oBACA,OACA,UAEFR,kBAAkBc,YAAY,OAAO,UACrC;QAAEE;QAAY,GAAGb,QAAQU,KAAK;IAAC,GAC/B;QAAEK,mBAAmBjB,kBAAkBkB,YAAY;IAAC;IAGtD,6CAA6C;IAC7CrB,6BACEe,MACA,CAAC,GACDF,aAAa;QAAC;QAAuB;KAAgC;IAGvEZ,cACEc,MACAb,kBAAkB,YAAYiB,OAAO,EAAE,SAAS,UAAU,WAC1DH,YACA;QACEM,oBAAoB,GAAGL,iBAAiBN,qBAAqB;QAC7DY,MAAMZ;QACNa,WAAWhB,mCAAmCiB,IAAI;IACpD,GACA;QAAEL,mBAAmBjB,kBAAkBuB,SAAS;IAAC;IAGnD,MAAMtB,qBAAqBW;AAC7B"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import tsProjectGenerator from "../ts/lib/generator.js";
|
|
6
6
|
import { configureTsProject } from "../ts/lib/ts-project-utils.js";
|
|
7
7
|
import { formatFilesInSubtree } from "./format.js";
|
|
8
|
+
import { esmVars } from "./module-format.js";
|
|
8
9
|
import { getNpmScopePrefix, toScopeAlias } from "./npm-scope.js";
|
|
9
10
|
import { ensurePnpmIgnoresWorkspaceRootCheck } from "./pnpm-workspace.js";
|
|
10
11
|
import { PACKAGES_DIR, SHARED_SHADCN_DIR, SHARED_SHADCN_NAME } from "./shared-constructs-constants.js";
|
|
@@ -33,7 +34,8 @@ export async function sharedShadcnGenerator(tree) {
|
|
|
33
34
|
});
|
|
34
35
|
tree.delete(shadcnSrcRoot);
|
|
35
36
|
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', SHARED_SHADCN_DIR, 'src'), shadcnSrcRoot, {
|
|
36
|
-
scopeAlias
|
|
37
|
+
scopeAlias,
|
|
38
|
+
...esmVars(tree)
|
|
37
39
|
}, {
|
|
38
40
|
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
39
41
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-shadcn.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { configureTsProject } from '../ts/lib/ts-project-utils';\nimport { formatFilesInSubtree } from './format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { ensurePnpmIgnoresWorkspaceRootCheck } from './pnpm-workspace';\nimport {\n PACKAGES_DIR,\n SHARED_SHADCN_DIR,\n SHARED_SHADCN_NAME,\n} from './shared-constructs-constants';\nimport { type ITsDepVersion, withVersions } from './versions';\n\nconst SHADCN_DEPS = [\n 'class-variance-authority',\n 'clsx',\n 'tailwind-merge',\n 'lucide-react',\n 'tw-animate-css',\n 'radix-ui',\n] as const satisfies ITsDepVersion[];\n\nexport async function sharedShadcnGenerator(tree: Tree) {\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n const sharedShadcnAlias = `${scopeAlias}${SHARED_SHADCN_NAME}`;\n const fullyQualifiedName = `${npmScopePrefix}${SHARED_SHADCN_NAME}`;\n const libraryRoot = joinPathFragments(PACKAGES_DIR, SHARED_SHADCN_DIR);\n const shadcnSrcRoot = joinPathFragments(libraryRoot, 'src');\n ensurePnpmIgnoresWorkspaceRootCheck(tree);\n\n if (!tree.exists(joinPathFragments(libraryRoot, 'project.json'))) {\n await tsProjectGenerator(tree, {\n name: SHARED_SHADCN_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_SHADCN_DIR,\n });\n\n tree.delete(shadcnSrcRoot);\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', SHARED_SHADCN_DIR, 'src'),\n shadcnSrcRoot,\n {\n scopeAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SHADCN_DIR,\n 'readme',\n ),\n libraryRoot,\n {\n fullyQualifiedName,\n scopeAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n\n await configureTsProject(tree, {\n dir: libraryRoot,\n fullyQualifiedName,\n });\n\n updateJson(\n tree,\n joinPathFragments(libraryRoot, 'tsconfig.lib.json'),\n (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n jsx: 'react-jsx',\n module: 'preserve',\n moduleResolution: 'bundler',\n lib: Array.from(\n new Set([...(json.compilerOptions?.lib ?? []), 'DOM']),\n ),\n },\n include: Array.from(new Set([...(json.include ?? []), 'src/**/*.tsx'])),\n }),\n );\n\n addDependenciesToPackageJson(tree, withVersions([...SHADCN_DEPS]), {});\n }\n\n updateJson(tree, 'tsconfig.base.json', (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n paths: {\n ...(json.compilerOptions?.paths ?? {}),\n [`${sharedShadcnAlias}/*`]: [\n `./${joinPathFragments(libraryRoot, 'src', '*')}`,\n ],\n },\n },\n }));\n\n if (!tree.exists('components.json')) {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'shadcn'),\n '.',\n {\n sharedShadcnAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","updateJson","tsProjectGenerator","configureTsProject","formatFilesInSubtree","getNpmScopePrefix","toScopeAlias","ensurePnpmIgnoresWorkspaceRootCheck","PACKAGES_DIR","SHARED_SHADCN_DIR","SHARED_SHADCN_NAME","withVersions","SHADCN_DEPS","sharedShadcnGenerator","tree","npmScopePrefix","scopeAlias","sharedShadcnAlias","fullyQualifiedName","libraryRoot","shadcnSrcRoot","exists","name","directory","subDirectory","delete","dirname","overwriteStrategy","KeepExisting","Overwrite","dir","json","compilerOptions","jsx","module","moduleResolution","lib","Array","from","Set","include","paths"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAEjBC,UAAU,QACL,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,kBAAkB,QAAQ,gCAA6B;AAChE,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,mCAAmC,QAAQ,sBAAmB;AACvE,SACEC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,QACb,mCAAgC;AACvC,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D,MAAMC,cAAc;IAClB;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,eAAeC,sBAAsBC,IAAU;IACpD,MAAMC,iBAAiBV,kBAAkBS;IACzC,MAAME,aAAaV,aAAaS;IAChC,MAAME,oBAAoB,GAAGD,aAAaN,oBAAoB;IAC9D,MAAMQ,qBAAqB,GAAGH,iBAAiBL,oBAAoB;IACnE,MAAMS,
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-shadcn.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { configureTsProject } from '../ts/lib/ts-project-utils';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix, toScopeAlias } from './npm-scope';\nimport { ensurePnpmIgnoresWorkspaceRootCheck } from './pnpm-workspace';\nimport {\n PACKAGES_DIR,\n SHARED_SHADCN_DIR,\n SHARED_SHADCN_NAME,\n} from './shared-constructs-constants';\nimport { type ITsDepVersion, withVersions } from './versions';\n\nconst SHADCN_DEPS = [\n 'class-variance-authority',\n 'clsx',\n 'tailwind-merge',\n 'lucide-react',\n 'tw-animate-css',\n 'radix-ui',\n] as const satisfies ITsDepVersion[];\n\nexport async function sharedShadcnGenerator(tree: Tree) {\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n const sharedShadcnAlias = `${scopeAlias}${SHARED_SHADCN_NAME}`;\n const fullyQualifiedName = `${npmScopePrefix}${SHARED_SHADCN_NAME}`;\n const libraryRoot = joinPathFragments(PACKAGES_DIR, SHARED_SHADCN_DIR);\n const shadcnSrcRoot = joinPathFragments(libraryRoot, 'src');\n ensurePnpmIgnoresWorkspaceRootCheck(tree);\n\n if (!tree.exists(joinPathFragments(libraryRoot, 'project.json'))) {\n await tsProjectGenerator(tree, {\n name: SHARED_SHADCN_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_SHADCN_DIR,\n });\n\n tree.delete(shadcnSrcRoot);\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', SHARED_SHADCN_DIR, 'src'),\n shadcnSrcRoot,\n {\n scopeAlias,\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SHADCN_DIR,\n 'readme',\n ),\n libraryRoot,\n {\n fullyQualifiedName,\n scopeAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n\n await configureTsProject(tree, {\n dir: libraryRoot,\n fullyQualifiedName,\n });\n\n updateJson(\n tree,\n joinPathFragments(libraryRoot, 'tsconfig.lib.json'),\n (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n jsx: 'react-jsx',\n module: 'preserve',\n moduleResolution: 'bundler',\n lib: Array.from(\n new Set([...(json.compilerOptions?.lib ?? []), 'DOM']),\n ),\n },\n include: Array.from(new Set([...(json.include ?? []), 'src/**/*.tsx'])),\n }),\n );\n\n addDependenciesToPackageJson(tree, withVersions([...SHADCN_DEPS]), {});\n }\n\n updateJson(tree, 'tsconfig.base.json', (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n paths: {\n ...(json.compilerOptions?.paths ?? {}),\n [`${sharedShadcnAlias}/*`]: [\n `./${joinPathFragments(libraryRoot, 'src', '*')}`,\n ],\n },\n },\n }));\n\n if (!tree.exists('components.json')) {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'shadcn'),\n '.',\n {\n sharedShadcnAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","updateJson","tsProjectGenerator","configureTsProject","formatFilesInSubtree","esmVars","getNpmScopePrefix","toScopeAlias","ensurePnpmIgnoresWorkspaceRootCheck","PACKAGES_DIR","SHARED_SHADCN_DIR","SHARED_SHADCN_NAME","withVersions","SHADCN_DEPS","sharedShadcnGenerator","tree","npmScopePrefix","scopeAlias","sharedShadcnAlias","fullyQualifiedName","libraryRoot","shadcnSrcRoot","exists","name","directory","subDirectory","delete","dirname","overwriteStrategy","KeepExisting","Overwrite","dir","json","compilerOptions","jsx","module","moduleResolution","lib","Array","from","Set","include","paths"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAEjBC,UAAU,QACL,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,kBAAkB,QAAQ,gCAA6B;AAChE,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,iBAAc;AAC9D,SAASC,mCAAmC,QAAQ,sBAAmB;AACvE,SACEC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,QACb,mCAAgC;AACvC,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D,MAAMC,cAAc;IAClB;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,eAAeC,sBAAsBC,IAAU;IACpD,MAAMC,iBAAiBV,kBAAkBS;IACzC,MAAME,aAAaV,aAAaS;IAChC,MAAME,oBAAoB,GAAGD,aAAaN,oBAAoB;IAC9D,MAAMQ,qBAAqB,GAAGH,iBAAiBL,oBAAoB;IACnE,MAAMS,cAAcrB,kBAAkBU,cAAcC;IACpD,MAAMW,gBAAgBtB,kBAAkBqB,aAAa;IACrDZ,oCAAoCO;IAEpC,IAAI,CAACA,KAAKO,MAAM,CAACvB,kBAAkBqB,aAAa,kBAAkB;QAChE,MAAMlB,mBAAmBa,MAAM;YAC7BQ,MAAMZ;YACNa,WAAWf;YACXgB,cAAcf;QAChB;QAEAK,KAAKW,MAAM,CAACL;QAEZvB,cACEiB,MACAhB,kBAAkB,YAAY4B,OAAO,EAAE,SAASjB,mBAAmB,QACnEW,eACA;YACEJ;YACA,GAAGZ,QAAQU,KAAK;QAClB,GACA;YACEa,mBAAmB5B,kBAAkB6B,YAAY;QACnD;QAGF/B,cACEiB,MACAhB,kBACE,YAAY4B,OAAO,EACnB,SACAjB,mBACA,WAEFU,aACA;YACED;YACAF;QACF,GACA;YACEW,mBAAmB5B,kBAAkB8B,SAAS;QAChD;QAGF,MAAM3B,mBAAmBY,MAAM;YAC7BgB,KAAKX;YACLD;QACF;QAEAlB,WACEc,MACAhB,kBAAkBqB,aAAa,sBAC/B,CAACY,OAAU,CAAA;gBACT,GAAGA,IAAI;gBACPC,iBAAiB;oBACf,GAAGD,KAAKC,eAAe;oBACvBC,KAAK;oBACLC,QAAQ;oBACRC,kBAAkB;oBAClBC,KAAKC,MAAMC,IAAI,CACb,IAAIC,IAAI;2BAAKR,KAAKC,eAAe,EAAEI,OAAO,EAAE;wBAAG;qBAAM;gBAEzD;gBACAI,SAASH,MAAMC,IAAI,CAAC,IAAIC,IAAI;uBAAKR,KAAKS,OAAO,IAAI,EAAE;oBAAG;iBAAe;YACvE,CAAA;QAGF5C,6BAA6BkB,MAAMH,aAAa;eAAIC;SAAY,GAAG,CAAC;IACtE;IAEAZ,WAAWc,MAAM,sBAAsB,CAACiB,OAAU,CAAA;YAChD,GAAGA,IAAI;YACPC,iBAAiB;gBACf,GAAGD,KAAKC,eAAe;gBACvBS,OAAO;oBACL,GAAIV,KAAKC,eAAe,EAAES,SAAS,CAAC,CAAC;oBACrC,CAAC,GAAGxB,kBAAkB,EAAE,CAAC,CAAC,EAAE;wBAC1B,CAAC,EAAE,EAAEnB,kBAAkBqB,aAAa,OAAO,MAAM;qBAClD;gBACH;YACF;QACF,CAAA;IAEA,IAAI,CAACL,KAAKO,MAAM,CAAC,oBAAoB;QACnCxB,cACEiB,MACAhB,kBAAkB,YAAY4B,OAAO,EAAE,SAAS,WAChD,KACA;YACET;QACF,GACA;YACEU,mBAAmB5B,kBAAkB6B,YAAY;QACnD;IAEJ;IAEA,MAAMzB,qBAAqBW;AAC7B"}
|
package/src/utils/test.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ import { type Tree } from '@nx/devkit';
|
|
|
10
10
|
* - package manager workspaces enabled (`pnpm-workspace.yaml` with `packages`)
|
|
11
11
|
* - a root `tsconfig.json` extending `tsconfig.base.json` with empty `include`
|
|
12
12
|
* - `composite: true` in `tsconfig.base.json`
|
|
13
|
+
* - a root `package.json` with `type: module`, matching the ESM default the
|
|
14
|
+
* preset establishes
|
|
13
15
|
*/
|
|
14
16
|
export declare const createTreeUsingTsSolutionSetup: () => Tree;
|
|
15
17
|
/**
|
package/src/utils/test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
*/ import { joinPathFragments, readJson, writeJson } from "@nx/devkit";
|
|
4
|
+
*/ import { joinPathFragments, readJson, updateJson, writeJson } from "@nx/devkit";
|
|
5
5
|
import { createTreeWithEmptyWorkspace } from "@nx/devkit/testing";
|
|
6
6
|
import { expect } from "vitest";
|
|
7
7
|
import { DEFAULT_BIOME_CONFIG } from "./format.js";
|
|
@@ -12,9 +12,15 @@ import { DEFAULT_BIOME_CONFIG } from "./format.js";
|
|
|
12
12
|
* - package manager workspaces enabled (`pnpm-workspace.yaml` with `packages`)
|
|
13
13
|
* - a root `tsconfig.json` extending `tsconfig.base.json` with empty `include`
|
|
14
14
|
* - `composite: true` in `tsconfig.base.json`
|
|
15
|
+
* - a root `package.json` with `type: module`, matching the ESM default the
|
|
16
|
+
* preset establishes
|
|
15
17
|
*/ export const createTreeUsingTsSolutionSetup = ()=>{
|
|
16
18
|
const tree = createTreeWithEmptyWorkspace();
|
|
17
19
|
tree.write('pnpm-workspace.yaml', `packages:\n - packages/*`);
|
|
20
|
+
updateJson(tree, 'package.json', (json)=>({
|
|
21
|
+
...json,
|
|
22
|
+
type: 'module'
|
|
23
|
+
}));
|
|
18
24
|
const baseTsConfig = readJson(tree, 'tsconfig.base.json');
|
|
19
25
|
writeJson(tree, 'tsconfig.base.json', {
|
|
20
26
|
...baseTsConfig,
|
package/src/utils/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/test.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/test.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n joinPathFragments,\n readJson,\n type Tree,\n updateJson,\n writeJson,\n} from '@nx/devkit';\nimport { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';\nimport { expect } from 'vitest';\nimport { DEFAULT_BIOME_CONFIG } from './format';\n\n/**\n * Create a workspace tree configured so that nx's `isUsingTsSolutionSetup`\n * reports `true`, matching the workspaces our preset generates. Rather than\n * mocking nx internals, we set up the real markers it checks for:\n * - package manager workspaces enabled (`pnpm-workspace.yaml` with `packages`)\n * - a root `tsconfig.json` extending `tsconfig.base.json` with empty `include`\n * - `composite: true` in `tsconfig.base.json`\n * - a root `package.json` with `type: module`, matching the ESM default the\n * preset establishes\n */\nexport const createTreeUsingTsSolutionSetup = (): Tree => {\n const tree = createTreeWithEmptyWorkspace();\n\n tree.write('pnpm-workspace.yaml', `packages:\\n - packages/*`);\n\n updateJson(tree, 'package.json', (json) => ({ ...json, type: 'module' }));\n\n const baseTsConfig = readJson(tree, 'tsconfig.base.json');\n writeJson(tree, 'tsconfig.base.json', {\n ...baseTsConfig,\n compilerOptions: { ...baseTsConfig.compilerOptions, composite: true },\n });\n writeJson(tree, 'tsconfig.json', {\n extends: './tsconfig.base.json',\n files: [],\n include: [],\n references: [],\n });\n\n // The preset always writes biome.json at the workspace root, so mirror that\n // here for realistic lint-target configuration.\n tree.write('biome.json', JSON.stringify(DEFAULT_BIOME_CONFIG, null, 2));\n return tree;\n};\n\n/**\n * Snapshot all files within a directory in the given tree\n */\nexport const snapshotTreeDir = (tree: Tree, dir: string) => {\n if (tree.isFile(dir)) {\n expect(tree.read(dir, 'utf-8')).toMatchSnapshot(dir);\n } else {\n tree\n .children(dir)\n .forEach((subDir) =>\n snapshotTreeDir(tree, joinPathFragments(dir, subDir)),\n );\n }\n};\n"],"names":["joinPathFragments","readJson","updateJson","writeJson","createTreeWithEmptyWorkspace","expect","DEFAULT_BIOME_CONFIG","createTreeUsingTsSolutionSetup","tree","write","json","type","baseTsConfig","compilerOptions","composite","extends","files","include","references","JSON","stringify","snapshotTreeDir","dir","isFile","read","toMatchSnapshot","children","forEach","subDir"],"mappings":"AAAA;;;CAGC,GAED,SACEA,iBAAiB,EACjBC,QAAQ,EAERC,UAAU,EACVC,SAAS,QACJ,aAAa;AACpB,SAASC,4BAA4B,QAAQ,qBAAqB;AAClE,SAASC,MAAM,QAAQ,SAAS;AAChC,SAASC,oBAAoB,QAAQ,cAAW;AAEhD;;;;;;;;;CASC,GACD,OAAO,MAAMC,iCAAiC;IAC5C,MAAMC,OAAOJ;IAEbI,KAAKC,KAAK,CAAC,uBAAuB,CAAC,yBAAyB,CAAC;IAE7DP,WAAWM,MAAM,gBAAgB,CAACE,OAAU,CAAA;YAAE,GAAGA,IAAI;YAAEC,MAAM;QAAS,CAAA;IAEtE,MAAMC,eAAeX,SAASO,MAAM;IACpCL,UAAUK,MAAM,sBAAsB;QACpC,GAAGI,YAAY;QACfC,iBAAiB;YAAE,GAAGD,aAAaC,eAAe;YAAEC,WAAW;QAAK;IACtE;IACAX,UAAUK,MAAM,iBAAiB;QAC/BO,SAAS;QACTC,OAAO,EAAE;QACTC,SAAS,EAAE;QACXC,YAAY,EAAE;IAChB;IAEA,4EAA4E;IAC5E,gDAAgD;IAChDV,KAAKC,KAAK,CAAC,cAAcU,KAAKC,SAAS,CAACd,sBAAsB,MAAM;IACpE,OAAOE;AACT,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMa,kBAAkB,CAACb,MAAYc;IAC1C,IAAId,KAAKe,MAAM,CAACD,MAAM;QACpBjB,OAAOG,KAAKgB,IAAI,CAACF,KAAK,UAAUG,eAAe,CAACH;IAClD,OAAO;QACLd,KACGkB,QAAQ,CAACJ,KACTK,OAAO,CAAC,CAACC,SACRP,gBAAgBb,MAAMR,kBAAkBsB,KAAKM;IAEnD;AACF,EAAE"}
|