Skip to content

Commit a2c137c

Browse files
ashwinkumar6Ashwin Kumar
and
Ashwin Kumar
authored
fix(js): recommend parseAmplifyConfig instead of calling configure twice (#8235)
* fix(js): recommend parseAmplifyConfig instead of calling configure twice * fix: accessibility issue with reference page --------- Co-authored-by: Ashwin Kumar <[email protected]>
1 parent 96c7f2e commit a2c137c

File tree

12 files changed

+62
-52
lines changed

12 files changed

+62
-52
lines changed

src/pages/[platform]/build-a-backend/add-aws-services/analytics/existing-resources/index.mdx

+6-2
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,15 @@ Alternatively, you can configure the client library directly using `Amplify.conf
5353

5454
```ts title="src/main.ts"
5555
import { Amplify } from 'aws-amplify';
56+
import { parseAmplifyConfig } from "aws-amplify/utils";
57+
import outputs from '../amplify_outputs.json';
58+
59+
const amplifyConfig = parseAmplifyConfig(outputs);
5660

5761
Amplify.configure({
58-
...Amplify.getConfig(),
62+
...amplifyConfig,
5963
Analytics: {
60-
...Amplify.getConfig().Analytics,
64+
...amplifyConfig.Analytics,
6165
Pinpoint: {
6266
// REQUIRED - Amazon Pinpoint App Client ID
6367
appId: 'XXXXXXXXXXabcdefghij1234567890ab',

src/pages/[platform]/build-a-backend/add-aws-services/analytics/personalize-recommendations/index.mdx

+5-1
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,12 @@ Configure Amazon Personalize:
5757

5858
```javascript title="src/index.js"
5959
import { Amplify } from 'aws-amplify';
60+
import outputs from '../amplify_outputs.json';
61+
62+
const amplifyConfig = parseAmplifyConfig(outputs);
63+
6064
Amplify.configure({
61-
...Amplify.getConfig(),
65+
...amplifyConfig,
6266
Analytics: {
6367
Personalize: {
6468
// REQUIRED - The trackingId to track the events

src/pages/[platform]/build-a-backend/add-aws-services/analytics/set-up-analytics/index.mdx

+2-10
Original file line numberDiff line numberDiff line change
@@ -183,26 +183,18 @@ Import and load the configuration file in your app. It's recommended you add the
183183
<InlineFilter filters={["javascript", "angular", "react", "vue", "react-native"]}>
184184
```js title="src/index.js"
185185
import { Amplify } from 'aws-amplify';
186-
import { record } from 'aws-amplify/analytics';
187186
import outputs from '../amplify_outputs.json';
188187

189-
Amplify.configure({
190-
...Amplify.getConfig(),
191-
Analytics: amplifyconfig.Analytics,
192-
});
188+
Amplify.configure(outputs);
193189
```
194190
</InlineFilter>
195191

196192
<InlineFilter filters={['nextjs']}>
197193
```js title="pages/_app.tsx"
198194
import { Amplify } from 'aws-amplify';
199-
import { record } from 'aws-amplify/analytics';
200195
import outputs from '@/amplify_outputs.json';
201196

202-
Amplify.configure({
203-
...Amplify.getConfig(),
204-
Analytics: amplifyconfig.Analytics,
205-
});
197+
Amplify.configure(outputs);
206198
```
207199
</InlineFilter>
208200

src/pages/[platform]/build-a-backend/add-aws-services/analytics/storing-data/index.mdx

+4-1
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,12 @@ Configure Firehose:
128128

129129
```javascript title="src/index.js"
130130
import { Amplify } from 'aws-amplify';
131+
import outputs from '../amplify_outputs.json';
132+
133+
const amplifyConfig = parseAmplifyConfig(outputs);
131134

132135
Amplify.configure({
133-
...Amplify.getConfig(),
136+
...amplifyConfig,
134137
Analytics: {
135138
KinesisFirehose: {
136139
// REQUIRED - Amazon Kinesis Firehose service region

src/pages/[platform]/build-a-backend/add-aws-services/analytics/streaming-data/index.mdx

+4-1
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,12 @@ Configure Kinesis:
9393
```javascript title="src/index.js"
9494
// Configure the plugin after adding it to the Analytics module
9595
import { Amplify } from 'aws-amplify';
96+
import outputs from '../amplify_outputs.json';
97+
98+
const amplifyConfig = parseAmplifyConfig(outputs);
9699

97100
Amplify.configure({
98-
...Amplify.getConfig(),
101+
...amplifyConfig,
99102
Analytics: {
100103
Kinesis: {
101104
// REQUIRED - Amazon Kinesis service region

src/pages/[platform]/build-a-backend/add-aws-services/geo/existing-resources/index.mdx

+5-3
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,17 @@ There are two roles created by Cognito: an "authenticated role" that grants sign
101101
<InlineFilter filters={['javascript', 'angular', 'react', 'vue', 'react-native', 'nextjs']}>
102102
## Configure client library directly
103103

104-
You can first import and configure the generated `amplify_outputs.json`. You can then manually configure Amplify Geo like this:
104+
You can first import and parse the generated `amplify_outputs.json`. You can then manually configure Amplify Geo like this:
105105

106106
```js
107107
import { Amplify } from 'aws-amplify';
108+
import { parseAmplifyConfig } from "aws-amplify/utils";
108109
import outputs from '../amplify_outputs.json';
109110

110-
Amplify.configure(outputs);
111+
const amplifyConfig = parseAmplifyConfig(outputs);
112+
111113
Amplify.configure({
112-
...Amplify.getConfig(),
114+
...amplifyConfig,
113115
Geo: {
114116
LocationService: {
115117
maps: {

src/pages/[platform]/build-a-backend/add-aws-services/interactions/set-up-interactions/index.mdx

+4-2
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,13 @@ Import and load the configuration file in your app. It's recommended you add the
101101

102102
```javascript title="src/index.js"
103103
import { Amplify } from 'aws-amplify';
104+
import { parseAmplifyConfig } from "aws-amplify/utils";
104105
import outputs from '../amplify_outputs.json';
105106

106-
Amplify.configure(outputs);
107+
const amplifyConfig = parseAmplifyConfig(outputs);
108+
107109
Amplify.configure({
108-
...Amplify.getConfig(),
110+
...amplifyConfig,
109111
Interactions: {
110112
LexV2: {
111113
'<your-bot-name>': {

src/pages/[platform]/build-a-backend/add-aws-services/predictions/set-up-predictions/index.mdx

+1-6
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,7 @@ Import and load the configuration file in your app. It is recommended you add th
154154

155155
```ts title="src/main.ts"
156156
import { Amplify } from "aws-amplify";
157-
import outputs from "./amplify_outputs.json";
157+
import outputs from '../amplify_outputs.json';
158158

159159
Amplify.configure(outputs);
160-
161-
Amplify.configure({
162-
...Amplify.getConfig(),
163-
Predictions: outputs.custom.Predictions,
164-
});
165160
```

src/pages/[platform]/build-a-backend/add-aws-services/rest-api/existing-resources/index.mdx

+6-6
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@ export function getStaticProps(context) {
2626
};
2727
}
2828

29-
Existing Amazon API Gateway resources can be used with the Amplify Libraries by calling `Amplify.configure()` with the API Gateway API name and options. Note, you will need to supply the full resource configuration and library options objects when calling `Amplify.configure()`. The following example shows how to configure additional API Gateway resources to an existing Amplify application:
29+
Existing Amazon API Gateway resources can be used with the Amplify Libraries by calling `Amplify.configure()` with the API Gateway API name and options. Note, you will need to parse the Amplify configuration using `parseAmplifyConfig` before calling `Amplify.configure()`. The following example shows how to configure additional API Gateway resources to an existing Amplify application:
3030

3131
```ts
3232
import { Amplify } from 'aws-amplify';
33+
import { parseAmplifyConfig } from "aws-amplify/utils";
3334
import outputs from '../amplify_outputs.json';
34-
Amplify.configure(outputs):
3535

36-
const existingConfig = Amplify.getConfig();
36+
const amplifyConfig = parseAmplifyConfig(outputs);
3737

3838
// Add existing resource to the existing configuration.
3939
Amplify.configure({
40-
...existingConfig,
40+
...amplifyConfig,
4141
API: {
42-
...existingConfig.API,
42+
...amplifyConfig.API,
4343
REST: {
44-
...existingConfig.API?.REST,
44+
...amplifyConfig.API?.REST,
4545
YourAPIName: {
4646
endpoint:
4747
'https://abcdefghij1234567890.execute-api.us-east-1.amazonaws.com/stageName',

src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-http-api/index.mdx

+10-8
Original file line numberDiff line numberDiff line change
@@ -228,14 +228,15 @@ Import and load the configuration file in your app. It's recommended you add the
228228
<InlineFilter filters={['javascript', "angular", "react", "vue", "react-native"]}>
229229
```ts title="src/main.ts"
230230
import { Amplify } from 'aws-amplify';
231+
import { parseAmplifyConfig } from "aws-amplify/utils";
231232
import outputs from '../amplify_outputs.json';
232233

233-
Amplify.configure(outputs);
234-
const existingConfig = Amplify.getConfig();
234+
const amplifyConfig = parseAmplifyConfig(outputs);
235+
235236
Amplify.configure({
236-
...existingConfig,
237+
...amplifyConfig,
237238
API: {
238-
...existingConfig.API,
239+
...amplifyConfig.API,
239240
REST: outputs.custom.API,
240241
},
241242
});
@@ -245,14 +246,15 @@ Amplify.configure({
245246
<InlineFilter filters={["nextjs"]}>
246247
```tsx title="pages/_app.tsx"
247248
import { Amplify } from 'aws-amplify';
249+
import { parseAmplifyConfig } from "aws-amplify/utils";
248250
import outputs from '@/amplify_outputs.json';
249251

250-
Amplify.configure(outputs);
251-
const existingConfig = Amplify.getConfig();
252+
const amplifyConfig = parseAmplifyConfig(outputs);
253+
252254
Amplify.configure({
253-
...existingConfig,
255+
...amplifyConfig,
254256
API: {
255-
...existingConfig.API,
257+
...amplifyConfig.API,
256258
REST: outputs.custom.API,
257259
},
258260
});

src/pages/[platform]/build-a-backend/add-aws-services/rest-api/set-up-rest-api/index.mdx

+10-8
Original file line numberDiff line numberDiff line change
@@ -211,14 +211,15 @@ Import and load the configuration file in your app. It's recommended you add the
211211
<InlineFilter filters={['javascript', "angular", "react", "vue", "react-native"]}>
212212
```javascript title="src/main.ts"
213213
import { Amplify } from 'aws-amplify';
214+
import { parseAmplifyConfig } from "aws-amplify/utils";
214215
import outputs from '../amplify_outputs.json';
215216

216-
Amplify.configure(outputs);
217-
const existingConfig = Amplify.getConfig();
217+
const amplifyConfig = parseAmplifyConfig(outputs);
218+
218219
Amplify.configure({
219-
...existingConfig,
220+
...amplifyConfig,
220221
API: {
221-
...existingConfig.API,
222+
...amplifyConfig.API,
222223
REST: outputs.custom.API,
223224
},
224225
});
@@ -228,14 +229,15 @@ Amplify.configure({
228229
<InlineFilter filters={["nextjs"]}>
229230
```tsx title="pages/_app.tsx"
230231
import { Amplify } from 'aws-amplify';
232+
import { parseAmplifyConfig } from "aws-amplify/utils";
231233
import outputs from '@/amplify_outputs.json';
232234

233-
Amplify.configure(outputs);
234-
const existingConfig = Amplify.getConfig();
235+
const amplifyConfig = parseAmplifyConfig(outputs);
236+
235237
Amplify.configure({
236-
...existingConfig,
238+
...amplifyConfig,
237239
API: {
238-
...existingConfig.API,
240+
...amplifyConfig.API,
239241
REST: outputs.custom.API,
240242
},
241243
});

src/pages/[platform]/reference/amplify_outputs/index.mdx

+5-4
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,13 @@ In your frontend application, you can access these custom configurations as foll
104104

105105
```ts title="src/index.ts"
106106
import { Amplify } from "aws-amplify";
107+
import { parseAmplifyConfig } from "aws-amplify/utils";
107108
import outputs from "@/amplify_outputs.json";
108109

109-
Amplify.configure(outputs);
110-
const currentConfig = Amplify.getConfig();
110+
const amplifyConfig = parseAmplifyConfig(outputs);
111+
111112
Amplify.configure({
112-
...currentConfig,
113+
...amplifyConfig,
113114
API: {
114115
REST: {
115116
[outputs.custom.api_name]: {
@@ -126,6 +127,6 @@ Amplify.configure({
126127

127128
The Amplify outputs file is defined using a JSON schema. You can find this schema in the [`aws-amplify/amplify-backend` repository](https://github.com/aws-amplify/amplify-backend/blob/main/packages/client-config/src/client-config-schema/schema_v1.json).
128129

129-
<pre><code style={{ maxWidth: "100%", overflowX: "scroll" }}>
130+
<pre><code tabIndex="0" style={{ maxWidth: "100%", overflowX: "scroll" }}>
130131
{JSON.stringify(schema, null, 2)}
131132
</code></pre>

0 commit comments

Comments
 (0)