@aws/nx-plugin 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/LICENSE-THIRD-PARTY +53 -28
  2. package/generators.json +12 -0
  3. package/package.json +1 -1
  4. package/src/api-connection/generator.d.ts +1 -1
  5. package/src/api-connection/generator.js +31 -1
  6. package/src/api-connection/generator.js.map +1 -1
  7. package/src/license/__snapshots__/config.spec.ts.snap +13 -7
  8. package/src/license/config.js +4 -4
  9. package/src/license/config.js.map +1 -1
  10. package/src/open-api/ts-client/__snapshots__/generator.spec.ts.snap +6985 -0
  11. package/src/open-api/ts-client/files/client.gen.ts.template +368 -0
  12. package/src/open-api/ts-client/files/types.gen.ts.template +60 -0
  13. package/src/open-api/ts-client/generator.d.ts +16 -0
  14. package/src/open-api/ts-client/generator.js +32 -0
  15. package/src/open-api/ts-client/generator.js.map +1 -0
  16. package/src/open-api/ts-client/schema.d.ts +9 -0
  17. package/src/open-api/ts-client/schema.json +20 -0
  18. package/src/open-api/ts-hooks/generator.js +6 -2
  19. package/src/open-api/ts-hooks/generator.js.map +1 -1
  20. package/src/open-api/utils/codegen-data/languages.d.ts +1 -0
  21. package/src/open-api/utils/codegen-data/languages.js +6 -1
  22. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  23. package/src/open-api/utils/codegen-data/types.d.ts +5 -0
  24. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  25. package/src/open-api/utils/codegen-data.js +165 -33
  26. package/src/open-api/utils/codegen-data.js.map +1 -1
  27. package/src/open-api/utils/normalise.js +59 -10
  28. package/src/open-api/utils/normalise.js.map +1 -1
  29. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +59 -0
  30. package/src/py/fast-api/react/files/fast-api/scripts/generate_open_api.py.template +13 -0
  31. package/src/py/fast-api/react/files/website/hooks/use__apiNameClassName__.tsx.template +20 -0
  32. package/src/py/fast-api/react/generator.d.ts +8 -0
  33. package/src/py/fast-api/react/generator.js +124 -0
  34. package/src/py/fast-api/react/generator.js.map +1 -0
  35. package/src/py/fast-api/react/schema.d.ts +9 -0
  36. package/src/py/fast-api/react/schema.json +33 -0
  37. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -1
  38. package/src/trpc/react/files/src/components/TrpcClients/IsolatedTrpcProvider.tsx.template +1 -1
  39. package/src/trpc/react/generator.js +9 -6
  40. package/src/trpc/react/generator.js.map +1 -1
  41. package/src/utils/git.d.ts +4 -0
  42. package/src/utils/git.js +19 -1
  43. package/src/utils/git.js.map +1 -1
  44. package/src/utils/toml.d.ts +4 -0
  45. package/src/utils/toml.js +12 -5
  46. package/src/utils/toml.js.map +1 -1
  47. /package/src/{trpc/react/files/src/hooks → utils/files/website/hooks/sigv4}/useSigV4.tsx.template +0 -0
@@ -0,0 +1,13 @@
1
+ from fastapi.openapi.utils import get_openapi
2
+ from <%= moduleName %>.main import app
3
+ import json, os, sys
4
+
5
+ os.makedirs(os.path.dirname(sys.argv[1]), exist_ok=True)
6
+ with open(sys.argv[1], 'w') as f:
7
+ json.dump(get_openapi(
8
+ title=app.title,
9
+ version=app.version,
10
+ openapi_version=app.openapi_version,
11
+ description=app.description,
12
+ routes=app.routes,
13
+ ), f)
@@ -0,0 +1,20 @@
1
+ import { <%- apiNameClassName %> } from '../<%- generatedClientDir %>/client.gen';
2
+ <%_ if(auth === 'IAM') { _%>
3
+ import { useSigV4 } from './useSigV4';
4
+ <%_ } _%>
5
+ import { useRuntimeConfig } from './useRuntimeConfig';
6
+ import { useMemo } from 'react';
7
+
8
+ export const use<%- apiNameClassName %> = (): <%- apiNameClassName %> => {
9
+ const runtimeConfig = useRuntimeConfig();
10
+ const apiUrl = runtimeConfig.httpApis.<%- apiNameClassName %>;
11
+ <%_ if(auth === 'IAM') { _%>
12
+ const sigv4Client = useSigV4();
13
+ <%_ } _%>
14
+ return useMemo(() => new <%- apiNameClassName %>({
15
+ url: apiUrl,
16
+ <%_ if(auth === 'IAM') { _%>
17
+ fetch: sigv4Client,
18
+ <%_ } _%>
19
+ }), [apiUrl<% if(auth === 'IAM') { %>, sigv4Client<% } %>])
20
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { Tree } from '@nx/devkit';
6
+ import { FastApiReactGeneratorSchema } from './schema';
7
+ export declare const fastApiReactGenerator: (tree: Tree, options: FastApiReactGeneratorSchema) => Promise<() => void>;
8
+ export default fastApiReactGenerator;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fastApiReactGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /**
6
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ * SPDX-License-Identifier: Apache-2.0
8
+ */
9
+ const devkit_1 = require("@nx/devkit");
10
+ const generator_1 = require("../../../cloudscape-website/runtime-config/generator");
11
+ const lodash_snakecase_1 = tslib_1.__importDefault(require("lodash.snakecase"));
12
+ const path = tslib_1.__importStar(require("path"));
13
+ const lodash_kebabcase_1 = tslib_1.__importDefault(require("lodash.kebabcase"));
14
+ const nx_1 = require("../../../utils/nx");
15
+ const names_1 = require("../../../utils/names");
16
+ const format_1 = require("../../../utils/format");
17
+ const versions_1 = require("../../../utils/versions");
18
+ const git_1 = require("../../../utils/git");
19
+ const fastApiReactGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
20
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
21
+ const frontendProjectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.frontendProjectName);
22
+ const fastApiProjectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.fastApiProjectName);
23
+ const moduleName = getFastApiModuleName(fastApiProjectConfig);
24
+ // Add OpenAPI spec generation script to FastAPI spec (if it does not exist already)
25
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files/fast-api'), fastApiProjectConfig.root, {
26
+ moduleName,
27
+ });
28
+ // Instrument the script as part of the fastapi project build
29
+ const fastApiOpenApiDist = (0, devkit_1.joinPathFragments)('dist', fastApiProjectConfig.root, 'openapi');
30
+ const specPath = (0, devkit_1.joinPathFragments)(fastApiOpenApiDist, 'openapi.json');
31
+ (0, devkit_1.updateProjectConfiguration)(tree, options.fastApiProjectName, Object.assign(Object.assign({}, fastApiProjectConfig), { targets: (0, nx_1.sortObjectKeys)(Object.assign(Object.assign({}, fastApiProjectConfig.targets), { build: Object.assign(Object.assign({}, (_a = fastApiProjectConfig.targets) === null || _a === void 0 ? void 0 : _a.build), { dependsOn: [
32
+ ...((_d = (_c = (_b = fastApiProjectConfig.targets) === null || _b === void 0 ? void 0 : _b.build) === null || _c === void 0 ? void 0 : _c.dependsOn) !== null && _d !== void 0 ? _d : []).filter((t) => t !== 'openapi'),
33
+ 'openapi',
34
+ ] }), openapi: {
35
+ cache: true,
36
+ executor: 'nx:run-commands',
37
+ outputs: [(0, devkit_1.joinPathFragments)('{workspaceRoot}', fastApiOpenApiDist)],
38
+ options: {
39
+ commands: [
40
+ `uv run python ${(0, devkit_1.joinPathFragments)(fastApiProjectConfig.root, 'scripts', 'generate_open_api.py')} "${specPath}"`,
41
+ ],
42
+ },
43
+ } })) }));
44
+ const apiName = (_e = fastApiProjectConfig.metadata) === null || _e === void 0 ? void 0 : _e.apiName;
45
+ const clientGenTarget = `generate:${(0, lodash_kebabcase_1.default)(apiName)}-client`;
46
+ const generatedClientDir = (0, devkit_1.joinPathFragments)('generated', (0, lodash_kebabcase_1.default)(apiName));
47
+ const generatedClientDirFromRoot = (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, generatedClientDir);
48
+ // Add TypeScript client generation to Frontend project.json
49
+ (0, devkit_1.updateProjectConfiguration)(tree, options.frontendProjectName, Object.assign(Object.assign({}, frontendProjectConfig), { targets: (0, nx_1.sortObjectKeys)(Object.assign(Object.assign({}, frontendProjectConfig.targets), {
50
+ // Generate should run before compile as the client is created as part of the website src
51
+ compile: Object.assign(Object.assign({}, (_f = frontendProjectConfig.targets) === null || _f === void 0 ? void 0 : _f.build), { dependsOn: [
52
+ ...((_j = (_h = (_g = frontendProjectConfig.targets) === null || _g === void 0 ? void 0 : _g.build) === null || _h === void 0 ? void 0 : _h.dependsOn) !== null && _j !== void 0 ? _j : []).filter((t) => t !== clientGenTarget),
53
+ clientGenTarget,
54
+ ] }), [clientGenTarget]: {
55
+ cache: true,
56
+ executor: 'nx:run-commands',
57
+ inputs: [
58
+ {
59
+ dependentTasksOutputFiles: '**/*.json',
60
+ },
61
+ ],
62
+ outputs: [
63
+ (0, devkit_1.joinPathFragments)('{workspaceRoot}', generatedClientDirFromRoot),
64
+ ],
65
+ options: {
66
+ commands: [
67
+ `nx g @aws/nx-plugin:open-api#ts-client --openApiSpecPath="${specPath}" --outputPath="${generatedClientDirFromRoot}" --no-interactive`,
68
+ ],
69
+ },
70
+ dependsOn: [`${options.fastApiProjectName}:openapi`],
71
+ } })) }));
72
+ const relativeSrcDir = frontendProjectConfig.sourceRoot.slice(frontendProjectConfig.root.length + 1);
73
+ // Ignore the generated client by default
74
+ // Users can safely remove the entry from the .gitignore if they prefer to check it in
75
+ (0, git_1.updateGitIgnore)(tree, frontendProjectConfig.root, (patterns) => [
76
+ ...patterns,
77
+ (0, devkit_1.joinPathFragments)(relativeSrcDir, generatedClientDir),
78
+ ]);
79
+ // Ensure that the frontend has runtime config as we'll use the url for creating the client
80
+ yield (0, generator_1.runtimeConfigGenerator)(tree, {
81
+ project: options.frontendProjectName,
82
+ });
83
+ // Add sigv4 fetch
84
+ if (options.auth === 'IAM') {
85
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../../utils/files/website/hooks/sigv4'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'hooks'), {});
86
+ }
87
+ // Add a hook to instantiate the client
88
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'website'), frontendProjectConfig.sourceRoot, {
89
+ auth: options.auth,
90
+ apiName,
91
+ apiNameClassName: (0, names_1.toClassName)(apiName),
92
+ generatedClientDir,
93
+ });
94
+ (0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)([
95
+ ...(options.auth === 'IAM'
96
+ ? [
97
+ 'oidc-client-ts',
98
+ 'react-oidc-context',
99
+ '@aws-sdk/client-cognito-identity',
100
+ '@aws-sdk/credential-provider-cognito-identity',
101
+ 'aws4fetch',
102
+ ]
103
+ : []),
104
+ ]), (0, versions_1.withVersions)(['@smithy/types']));
105
+ yield (0, format_1.formatFilesInSubtree)(tree);
106
+ return () => {
107
+ (0, devkit_1.installPackagesTask)(tree);
108
+ };
109
+ });
110
+ exports.fastApiReactGenerator = fastApiReactGenerator;
111
+ const getFastApiModuleName = (projectConfig) => {
112
+ var _a;
113
+ if (projectConfig.sourceRoot) {
114
+ const sourceRootParts = projectConfig.sourceRoot.split('/');
115
+ return sourceRootParts[sourceRootParts.length - 1];
116
+ }
117
+ const apiName = (_a = projectConfig.metadata) === null || _a === void 0 ? void 0 : _a.apiName;
118
+ if (apiName) {
119
+ return (0, lodash_snakecase_1.default)(apiName);
120
+ }
121
+ new Error(`Could not determine sourceRoot for project ${projectConfig.name}`);
122
+ };
123
+ exports.default = exports.fastApiReactGenerator;
124
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/fast-api/react/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCASoB;AAEpB,oFAA8F;AAC9F,gFAAyC;AACzC,mDAA6B;AAC7B,gFAAyC;AACzC,0CAAmD;AACnD,gDAAmD;AACnD,kDAA6D;AAC7D,sDAAuD;AACvD,4CAAqD;AAE9C,MAAM,qBAAqB,GAAG,CACnC,IAAU,EACV,OAAoC,EACpC,EAAE;;IACF,MAAM,qBAAqB,GAAG,IAAA,iCAAwB,EACpD,IAAI,EACJ,OAAO,CAAC,mBAAmB,CAC5B,CAAC;IACF,MAAM,oBAAoB,GAAG,IAAA,iCAAwB,EACnD,IAAI,EACJ,OAAO,CAAC,kBAAkB,CAC3B,CAAC;IACF,MAAM,UAAU,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAE9D,oFAAoF;IACpF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,EACtC,oBAAoB,CAAC,IAAI,EACzB;QACE,UAAU;KACX,CACF,CAAC;IAEF,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAC1C,MAAM,EACN,oBAAoB,CAAC,IAAI,EACzB,SAAS,CACV,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,0BAAiB,EAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IACvE,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,kCACtD,oBAAoB,KACvB,OAAO,EAAE,IAAA,mBAAc,kCAClB,oBAAoB,CAAC,OAAO,KAC/B,KAAK,kCACA,MAAA,oBAAoB,CAAC,OAAO,0CAAE,KAAK,KACtC,SAAS,EAAE;oBACT,GAAG,CAAC,MAAA,MAAA,MAAA,oBAAoB,CAAC,OAAO,0CAAE,KAAK,0CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,MAAM,CAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CACvB;oBACD,SAAS;iBACV,KAEH,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE,CAAC,IAAA,0BAAiB,EAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;gBACnE,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,iBAAiB,IAAA,0BAAiB,EAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,sBAAsB,CAAC,KAAK,QAAQ,GAAG;qBACjH;iBACF;aACF,IACD,IACF,CAAC;IAEH,MAAM,OAAO,GAAG,MAAC,oBAAoB,CAAC,QAAgB,0CAAE,OAAO,CAAC;IAChE,MAAM,eAAe,GAAG,YAAY,IAAA,0BAAS,EAAC,OAAO,CAAC,SAAS,CAAC;IAEhE,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,IAAA,0BAAS,EAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,MAAM,0BAA0B,GAAG,IAAA,0BAAiB,EAClD,qBAAqB,CAAC,UAAU,EAChC,kBAAkB,CACnB,CAAC;IAEF,4DAA4D;IAC5D,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,mBAAmB,kCACvD,qBAAqB,KACxB,OAAO,EAAE,IAAA,mBAAc,kCAClB,qBAAqB,CAAC,OAAO;YAChC,yFAAyF;YACzF,OAAO,kCACF,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,KACvC,SAAS,EAAE;oBACT,GAAG,CAAC,MAAA,MAAA,MAAA,qBAAqB,CAAC,OAAO,0CAAE,KAAK,0CAAE,SAAS,mCAAI,EAAE,CAAC,CAAC,MAAM,CAC/D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAC7B;oBACD,eAAe;iBAChB,KAEH,CAAC,eAAe,CAAC,EAAE;gBACjB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE;oBACN;wBACE,yBAAyB,EAAE,WAAW;qBACvC;iBACF;gBACD,OAAO,EAAE;oBACP,IAAA,0BAAiB,EAAC,iBAAiB,EAAE,0BAA0B,CAAC;iBACjE;gBACD,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,6DAA6D,QAAQ,mBAAmB,0BAA0B,oBAAoB;qBACvI;iBACF;gBACD,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,UAAU,CAAC;aACrD,IACD,IACF,CAAC;IAEH,MAAM,cAAc,GAAG,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAC3D,qBAAqB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CACtC,CAAC;IAEF,yCAAyC;IACzC,sFAAsF;IACtF,IAAA,qBAAe,EAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC9D,GAAG,QAAQ;QACX,IAAA,0BAAiB,EAAC,cAAc,EAAE,kBAAkB,CAAC;KACtD,CAAC,CAAC;IAEH,2FAA2F;IAC3F,MAAM,IAAA,kCAAsB,EAAC,IAAI,EAAE;QACjC,OAAO,EAAE,OAAO,CAAC,mBAAmB;KACrC,CAAC,CAAC;IAEH,kBAAkB;IAClB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,0CAA0C,CAAC,EACxE,IAAA,0BAAiB,EAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,EAC5D,EAAE,CACH,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAChD,qBAAqB,CAAC,UAAU,EAChC;QACE,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO;QACP,gBAAgB,EAAE,IAAA,mBAAW,EAAC,OAAO,CAAC;QACtC,kBAAkB;KACnB,CACF,CAAC;IAEF,IAAA,qCAA4B,EAC1B,IAAI,EACJ,IAAA,uBAAY,EAAC;QACX,GAAI,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK;YACzB,CAAC,CAAC;gBACE,gBAAgB;gBAChB,oBAAoB;gBACpB,kCAAkC;gBAClC,+CAA+C;gBAC/C,WAAW;aACZ;YACH,CAAC,CAAC,EAAE,CAAS;KAChB,CAAC,EACF,IAAA,uBAAY,EAAC,CAAC,eAAe,CAAC,CAAC,CAChC,CAAC;IAEF,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE;QACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC,CAAA,CAAC;AAjKW,QAAA,qBAAqB,yBAiKhC;AAEF,MAAM,oBAAoB,GAAG,CAAC,aAAmC,EAAU,EAAE;;IAC3E,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,eAAe,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,OAAO,GAAG,MAAC,aAAa,CAAC,QAAgB,0CAAE,OAAO,CAAC;IACzD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAA,0BAAS,EAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,CAAC,8CAA8C,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,kBAAe,6BAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export interface FastApiReactGeneratorSchema {
6
+ frontendProjectName: string;
7
+ fastApiProjectName: string;
8
+ auth: 'IAM' | 'None';
9
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "FastAPIReact",
4
+ "title": "Integrate a Python FastAPI with a react website",
5
+ "description": "Integrate a Python FastAPI with a react website",
6
+ "type": "object",
7
+ "properties": {
8
+ "frontendProjectName": {
9
+ "type": "string",
10
+ "description": "",
11
+ "$default": {
12
+ "$source": "argv",
13
+ "index": 0
14
+ },
15
+ "x-prompt": "React application's project name.",
16
+ "x-dropdown": "projects"
17
+ },
18
+ "fastApiProjectName": {
19
+ "type": "string",
20
+ "description": "",
21
+ "x-prompt": "Package containing your FastAPI backend",
22
+ "x-dropdown": "projects"
23
+ },
24
+ "auth": {
25
+ "type": "string",
26
+ "description": "",
27
+ "enum": ["IAM", "None"],
28
+ "x-prompt": "Select your API authentication strategy",
29
+ "default": "IAM"
30
+ }
31
+ },
32
+ "required": ["frontendProjectName", "fastApiProjectName"]
33
+ }
@@ -50,7 +50,7 @@ export const createIsolatedTrpcClientProvider = <
50
50
  }),
51
51
  ],
52
52
  });
53
- }, [apiUrl, sigv4Client]);
53
+ }, [apiUrl]);
54
54
 
55
55
  return (
56
56
  // @ts-expect-error type errors due to unknown concrete AppRouter
@@ -55,7 +55,7 @@ export const createIsolatedTrpcClientProvider = <
55
55
  }),
56
56
  ],
57
57
  });
58
- }, [apiUrl, sigv4Client]);
58
+ }, [apiUrl<% if(auth === 'IAM') { %>, sigv4Client<% } %>]);
59
59
 
60
60
  return (
61
61
  // @ts-expect-error type errors due to unknown concrete AppRouter
@@ -27,8 +27,8 @@ function reactGenerator(tree, options) {
27
27
  (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), frontendProjectConfig.root, Object.assign(Object.assign({ apiName, apiNameClassName: (0, names_1.toClassName)(apiName) }, options), { backendProjectAlias: (0, npm_scope_1.toScopeAlias)(options.backendProjectName) }), {
28
28
  overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
29
29
  });
30
- if (options.auth !== 'IAM') {
31
- tree.delete(`${frontendProjectConfig.root}/src/hooks/useSigV4.tsx`);
30
+ if (options.auth === 'IAM') {
31
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../utils/files/website/hooks/sigv4'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'hooks'), {});
32
32
  }
33
33
  yield (0, generator_1.runtimeConfigGenerator)(tree, {
34
34
  project: options.frontendProjectName,
@@ -108,14 +108,17 @@ function reactGenerator(tree, options) {
108
108
  });
109
109
  }
110
110
  (0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)([
111
- '@aws-sdk/client-cognito-identity',
112
- '@aws-sdk/credential-provider-cognito-identity',
113
111
  '@trpc/client',
114
112
  '@trpc/react-query',
115
113
  '@tanstack/react-query',
116
- 'aws4fetch',
117
114
  ...(options.auth === 'IAM'
118
- ? ['oidc-client-ts', 'react-oidc-context']
115
+ ? [
116
+ 'oidc-client-ts',
117
+ 'aws4fetch',
118
+ '@aws-sdk/client-cognito-identity',
119
+ '@aws-sdk/credential-provider-cognito-identity',
120
+ 'react-oidc-context',
121
+ ]
119
122
  : []),
120
123
  ]), (0, versions_1.withVersions)(['@smithy/types']));
121
124
  yield (0, format_1.formatFilesInSubtree)(tree);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":";;AAyCA,wCAuQC;;AAhTD;;;GAGG;AACH,uCAQoB;AAEpB,2CAcoB;AACpB,uDAAyD;AACzD,iFAA2F;AAC3F,qDAAqD;AACrD,mDAAoD;AACpD,yCAKyB;AACzB,6CAAgD;AAChD,+CAA0D;AAC1D,SAAsB,cAAc,CAClC,IAAU,EACV,OAA6B;;;QAE7B,MAAM,qBAAqB,GAAG,IAAA,iCAAwB,EACpD,IAAI,EACJ,OAAO,CAAC,mBAAmB,CAC5B,CAAC;QACF,MAAM,oBAAoB,GAAG,IAAA,iCAAwB,EACnD,IAAI,EACJ,OAAO,CAAC,kBAAkB,CAC3B,CAAC;QACF,uDAAuD;QACvD,MAAM,OAAO,GAAG,MAAC,oBAAoB,CAAC,QAAgB,0CAAE,OAAO,CAAC;QAChE,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,mBAAmB,GAAG,IAAA,wBAAY,EAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAErE,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,EACrC,qBAAqB,CAAC,IAAI,gCAExB,OAAO,EACP,gBAAgB,EAAE,IAAA,mBAAW,EAAC,OAAO,CAAC,IACnC,OAAO,KACV,mBAAmB,EAAE,IAAA,wBAAY,EAAC,OAAO,CAAC,kBAAkB,CAAC,KAE/D;YACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;SAClD,CACF,CAAC;QACF,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAA,kCAAsB,EAAC,IAAI,EAAE;YACjC,OAAO,EAAE,OAAO,CAAC,mBAAmB;SACrC,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,WAAW,GAAG,IAAA,0BAAiB,EACnC,qBAAqB,CAAC,UAAU,EAChC,UAAU,CACX,CAAC;QACF,IAAA,kBAAY,EACV,IAAI,EACJ,WAAW,EACX,qBAAqB,EACrB,0BAA0B,CAC3B,CAAC;QACF,8CAA8C;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,aAAa,CAAC,CAAC;QACtC,MAAM,WAAW,GACf,iBAAO,CAAC,KAAK,CACX,UAAU,EACV,uDAAuD,CACxD,CAAC,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAA,aAAO,EACL,IAAI,EACJ,WAAW,EACX,sDAAsD,EACtD,CAAC,IAA2B,EAAE,EAAE,CAC9B,IAAA,oCAA8B,EAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAChE,CAAC;QACJ,CAAC;QACD,sBAAsB;QACtB,MAAM,YAAY,GAAG,IAAA,0BAAiB,EACpC,qBAAqB,CAAC,UAAU,EAChC,qCAAqC,CACtC,CAAC;QACF,kCAAkC;QAClC,IAAA,wBAAkB,EAChB,IAAI,EACJ,YAAY,EACZ,CAAC,kCAAkC,CAAC,EACpC,wBAAwB,CACzB,CAAC;QACF,IAAA,wBAAkB,EAChB,IAAI,EACJ,YAAY,EACZ;YACE,gBAAgB,gBAAgB,WAAW;YAC3C,cAAc,gBAAgB,SAAS;SACxC,EACD,mBAAmB,CACpB,CAAC;QACF,qDAAqD;QACrD,IAAA,aAAO,EACL,IAAI,EACJ,YAAY,EACZ,4CAA4C,EAC5C,CAAC,IAAI,EAAE,EAAE;YACP,MAAM,kBAAkB,GAAI,IAAgC,CAAC,UAAU,CAAC;YACxE,IACE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,OAAO,EAAE,MAAK,gBAAgB,CAAA,EAAA,CAAC,EACtE,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,WAAW,GAAG,oBAAO,CAAC,wBAAwB,CAClD,oBAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAC1C,oBAAO,CAAC,oBAAoB,CAC1B,oBAAO,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,EAC5D;gBACE,oBAAO,CAAC,uBAAuB,CAC7B,oBAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,WAAW,CAAC,CACzD;gBACD,oBAAO,CAAC,uBAAuB,CAC7B,oBAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,SAAS,CAAC,CACvD;aACF,EACD,EAAE,CACH,CACF,CAAC;YACF,OAAO,oBAAO,CAAC,6BAA6B,CAC1C,CAAC,GAAG,kBAAkB,EAAE,WAAW,CAAC,EACpC,IAAI,CACL,CAAC;QACJ,CAAC,CACF,CAAC;QACF,iCAAiC;QACjC,MAAM,uBAAuB,GAAG,IAAA,0BAAiB,EAC/C,qBAAqB,CAAC,UAAU,EAChC,gDAAgD,CACjD,CAAC;QACF,cAAc;QACd,IAAA,wBAAkB,EAChB,IAAI,EACJ,uBAAuB,EACvB,CAAC,kBAAkB,CAAC,EACpB,8BAA8B,CAC/B,CAAC;QACF,IAAA,kBAAY,EAAC,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACtE,+DAA+D;QAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtE,MAAM,YAAY,GAAG,IAAA,aAAG,EAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,gBAAgB,GACpB,iBAAO,CAAC,KAAK,CACX,YAAY,EACZ,mGAAmG,CACpG,CAAC,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAA,aAAO,EACL,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EACvB,CAAC,IAAW,EAAE,EAAE;gBACd,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChD,MAAM,iBAAiB,GAAG,oBAAO,CAAC,uBAAuB,CACvD,SAAS,EACT,oBAAO,CAAC,6BAA6B,CACnC;oBACE,oBAAO,CAAC,yBAAyB,CAC/B,eAAe,EACf,SAAS,EACT,SAAS,EACT,oBAAO,CAAC,oBAAoB,CAC1B,oBAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAC5C,SAAS,EACT,EAAE,CACH,CACF;iBACF,EACD,sBAAS,CAAC,KAAK,CAChB,CACF,CAAC;gBACF,oEAAoE;gBACpE,kBAAkB,CAAC,MAAM,CACvB,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAC7B,CAAC,EACD,iBAAiB,CAClB,CAAC;gBACF,OAAO,oBAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YACvD,CAAC,CACF,CAAC;QACJ,CAAC;QACD,uCAAuC;QACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzE,MAAM,eAAe,GAAG,IAAA,aAAG,EAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,eAAe,GACnB,iBAAO,CAAC,KAAK,CACX,eAAe,EACf,6HAA6H,gBAAgB,iCAAiC,CAC/K,CAAC,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,gEAAgE;YAChE,IAAA,aAAO,EACL,IAAI,EACJ,uBAAuB,EACvB,iBAAiB,EACjB,CAAC,IAAqB,EAAE,EAAE;;gBACxB,MAAM,kBAAkB,GAAG,IAAA,sCAAyB,EAAC,IAAI,CAAC,UAAU,CAAC;oBACnE,CAAC,CAAC,MAAA,IAAI,CAAC,UAAU,0CAAE,UAAU;oBAC7B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;gBACpB,OAAO,oBAAO,CAAC,qBAAqB,CAClC,oBAAO,CAAC,gBAAgB,CACtB,oBAAO,CAAC,uBAAuB,CAC7B,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,oBAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAC3C,EACD,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACb,EACzB,SAAS,EACT,oBAAO,CAAC,mBAAmB,CAAC;oBAC1B,oBAAO,CAAC,kBAAkB,CACxB,oBAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAClC,oBAAO,CAAC,mBAAmB,CACzB,SAAS,EACT,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,EACzC,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACrC,EACD,oBAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAC3C,CACF,CACF;iBACF,CAAC,CACH,EACD;oBACE,IAAA,uBAAU,EAAC,kBAAkB,CAAC;wBAC9B,IAAA,yBAAY,EAAC,kBAAkB,CAAC;wBAChC,IAAA,0BAAa,EAAC,kBAAkB,CAAC;wBACjC,IAAA,oCAAuB,EAAC,kBAAkB,CAAC;wBAC3C,IAAA,4BAAe,EAAC,kBAAkB,CAAC;wBACjC,CAAC,CAAC,kBAAkB;wBACpB,CAAC,CAAC,oBAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,CAAC;iBAC/D,EACD,oBAAO,CAAC,uBAAuB,CAC7B,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,8BAA8B,CACpC,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,EACpC,oBAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAC3C,EACD,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACb,CAC1B,CACF,CACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC;QACD,IAAA,qCAA4B,EAC1B,IAAI,EACJ,IAAA,uBAAY,EAAC;YACX,kCAAkC;YAClC,+CAA+C;YAC/C,cAAc;YACd,mBAAmB;YACnB,uBAAuB;YACvB,WAAW;YACX,GAAI,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK;gBACzB,CAAC,CAAC,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;gBAC1C,CAAC,CAAC,EAAE,CAAS;SAChB,CAAC,EACF,IAAA,uBAAY,EAAC,CAAC,eAAe,CAAC,CAAC,CAChC,CAAC;QACF,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;CAAA;AACD,kBAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":"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"}
@@ -7,3 +7,7 @@ import { Tree } from '@nx/devkit';
7
7
  * Returns all files from the tree root that are not gitignored (both tracked and untracked)
8
8
  */
9
9
  export declare const getGitIncludedFiles: (tree: Tree) => string[];
10
+ /**
11
+ * Update a .gitignore file. Will create a new .gitignore file if it does not exist
12
+ */
13
+ export declare const updateGitIgnore: (tree: Tree, dir: string, doUpdate: (patterns: string[]) => string[]) => void;
package/src/utils/git.js CHANGED
@@ -1,7 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGitIncludedFiles = void 0;
3
+ exports.updateGitIgnore = exports.getGitIncludedFiles = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /**
6
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ * SPDX-License-Identifier: Apache-2.0
8
+ */
9
+ const devkit_1 = require("@nx/devkit");
4
10
  const child_process_1 = require("child_process");
11
+ const lodash_uniqby_1 = tslib_1.__importDefault(require("lodash.uniqby"));
5
12
  /**
6
13
  * Returns all files from the tree root that are not gitignored (both tracked and untracked)
7
14
  */
@@ -24,4 +31,15 @@ const getGitIncludedFiles = (tree) => {
24
31
  ];
25
32
  };
26
33
  exports.getGitIncludedFiles = getGitIncludedFiles;
34
+ /**
35
+ * Update a .gitignore file. Will create a new .gitignore file if it does not exist
36
+ */
37
+ const updateGitIgnore = (tree, dir, doUpdate) => {
38
+ var _a, _b;
39
+ const gitIgnorePath = (0, devkit_1.joinPathFragments)(dir, '.gitignore');
40
+ const existingPatterns = (_b = (_a = tree.read(gitIgnorePath, 'utf-8')) === null || _a === void 0 ? void 0 : _a.split('\n')) !== null && _b !== void 0 ? _b : [];
41
+ const newPatterns = doUpdate(existingPatterns);
42
+ tree.write(gitIgnorePath, (0, lodash_uniqby_1.default)(newPatterns, (p) => p).join('\n'));
43
+ };
44
+ exports.updateGitIgnore = updateGitIgnore;
27
45
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/git.ts"],"names":[],"mappings":";;;AAKA,iDAAyC;AAEzC;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,IAAU,EAAY,EAAE;IAC1D,OAAO;QACL,oBAAoB;QACpB,GAAG,IAAA,wBAAQ,EAAC,iCAAiC,EAAE;YAC7C,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,IAAI,CAAC,IAAI;SACf,CAAC;aACC,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnB,sCAAsC;QACtC,GAAG,IAAA,wBAAQ,EAAC,0CAA0C,EAAE;YACtD,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,IAAI,CAAC,IAAI;SACf,CAAC;aACC,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,mBAAmB,uBAiB9B"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/git.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAAqD;AACrD,iDAAyC;AACzC,0EAAmC;AAEnC;;GAEG;AACI,MAAM,mBAAmB,GAAG,CAAC,IAAU,EAAY,EAAE;IAC1D,OAAO;QACL,oBAAoB;QACpB,GAAG,IAAA,wBAAQ,EAAC,iCAAiC,EAAE;YAC7C,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,IAAI,CAAC,IAAI;SACf,CAAC;aACC,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnB,sCAAsC;QACtC,GAAG,IAAA,wBAAQ,EAAC,0CAA0C,EAAE;YACtD,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,IAAI,CAAC,IAAI;SACf,CAAC;aACC,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,mBAAmB,uBAiB9B;AAEF;;GAEG;AACI,MAAM,eAAe,GAAG,CAC7B,IAAU,EACV,GAAW,EACX,QAA0C,EAC1C,EAAE;;IACF,MAAM,aAAa,GAAG,IAAA,0BAAiB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,0CAAE,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;IAC9E,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAA,uBAAM,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B"}
@@ -8,3 +8,7 @@ import TOML from '@iarna/toml';
8
8
  * Update a toml file
9
9
  */
10
10
  export declare const updateToml: (tree: Tree, filePath: string, updater: (prev: TOML.JsonMap) => TOML.JsonMap) => void;
11
+ /**
12
+ * Read a toml file
13
+ */
14
+ export declare const readToml: (tree: Tree, filePath: string) => TOML.JsonMap;
package/src/utils/toml.js CHANGED
@@ -1,17 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateToml = void 0;
3
+ exports.readToml = exports.updateToml = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const toml_1 = tslib_1.__importDefault(require("@iarna/toml"));
6
6
  /**
7
7
  * Update a toml file
8
8
  */
9
9
  const updateToml = (tree, filePath, updater) => {
10
- if (!tree.exists(filePath)) {
11
- throw new Error(`Cannot update toml file ${filePath} as it does not exist`);
12
- }
13
- const prev = toml_1.default.parse(tree.read(filePath, 'utf-8'));
10
+ const prev = (0, exports.readToml)(tree, filePath);
14
11
  tree.write(filePath, toml_1.default.stringify(updater(prev)));
15
12
  };
16
13
  exports.updateToml = updateToml;
14
+ /**
15
+ * Read a toml file
16
+ */
17
+ const readToml = (tree, filePath) => {
18
+ if (!tree.exists(filePath)) {
19
+ throw new Error(`${filePath} does not exist`);
20
+ }
21
+ return toml_1.default.parse(tree.read(filePath, 'utf-8'));
22
+ };
23
+ exports.readToml = readToml;
17
24
  //# sourceMappingURL=toml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toml.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/toml.ts"],"names":[],"mappings":";;;;AAKA,+DAA+B;AAE/B;;GAEG;AACI,MAAM,UAAU,GAAG,CACxB,IAAU,EACV,QAAgB,EAChB,OAA6C,EAC7C,EAAE;IACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,uBAAuB,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,IAAI,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB"}
1
+ {"version":3,"file":"toml.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/toml.ts"],"names":[],"mappings":";;;;AAKA,+DAA+B;AAE/B;;GAEG;AACI,MAAM,UAAU,GAAG,CACxB,IAAU,EACV,QAAgB,EAChB,OAA6C,EAC7C,EAAE;IACF,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB;AAEF;;GAEG;AACI,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,QAAgB,EAAgB,EAAE;IACrE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AALW,QAAA,QAAQ,YAKnB"}