Skip to content

Commit

Permalink
fix(amplify-category-api): use standard json read (#2581)
Browse files Browse the repository at this point in the history
use standard amplify cli provided json read to avoid json parse bug
  • Loading branch information
UnleashedMind authored and yuth committed Oct 14, 2019
1 parent 296d45b commit 3adc395
Show file tree
Hide file tree
Showing 13 changed files with 19 additions and 35 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
const fs = require('fs');

const subcommand = 'add';
const category = 'analytics';
const servicesMetadata = JSON.parse(fs.readFileSync(`${__dirname}/../../provider-utils/supported-services.json`));

let options;

module.exports = {
name: subcommand,
run: async context => {
const { amplify } = context;

const servicesMetadata = amplify.readJsonFile(`${__dirname}/../../provider-utils/supported-services.json`);
return amplify
.serviceSelectionPrompt(context, category, servicesMetadata)
.then(result => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ const subcommand = 'add-graphql-datasource';
const categories = 'categories';
const category = 'api';
const providerName = 'awscloudformation';
const servicesMetadata = JSON.parse(fs.readFileSync(`${__dirname}/../../provider-utils/supported-datasources.json`));

const rdsRegion = 'rdsRegion';
const rdsIdentifier = 'rdsClusterIdentifier';
Expand All @@ -23,6 +22,7 @@ module.exports = {
name: subcommand,
run: async context => {
const { amplify } = context;
const servicesMetadata = amplify.readJsonFile(`${__dirname}/../../provider-utils/supported-datasources.json`);
let resourceName;
let datasource;
let databaseName;
Expand Down
4 changes: 1 addition & 3 deletions packages/amplify-category-api/commands/api/add.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
const fs = require('fs');

const subcommand = 'add';
const category = 'api';
const servicesMetadata = JSON.parse(fs.readFileSync(`${__dirname}/../../provider-utils/supported-services.json`));

let options;

module.exports = {
name: subcommand,
run: async context => {
const { amplify } = context;
const servicesMetadata = amplify.readJsonFile(`${__dirname}/../../provider-utils/supported-services.json`);
return amplify
.serviceSelectionPrompt(context, category, servicesMetadata)
.then(result => {
Expand Down
4 changes: 1 addition & 3 deletions packages/amplify-category-api/commands/api/console.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
const fs = require('fs');

const subcommand = 'console';
const category = 'api';
const servicesMetadata = JSON.parse(fs.readFileSync(`${__dirname}/../../provider-utils/supported-services.json`));

module.exports = {
name: subcommand,
run: async context => {
const { amplify } = context;
const servicesMetadata = amplify.readJsonFile(`${__dirname}/../../provider-utils/supported-services.json`);
return amplify
.serviceSelectionPrompt(context, category, servicesMetadata)
.then(result => {
Expand Down
4 changes: 1 addition & 3 deletions packages/amplify-category-api/commands/api/update.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
const fs = require('fs');

const subcommand = 'update';
const category = 'api';
const servicesMetadata = JSON.parse(fs.readFileSync(`${__dirname}/../../provider-utils/supported-services.json`));

module.exports = {
name: subcommand,
alias: ['configure'],
run: async context => {
const { amplify } = context;
const servicesMetadata = amplify.readJsonFile(`${__dirname}/../../provider-utils/supported-services.json`);

return amplify
.serviceSelectionPrompt(context, category, servicesMetadata)
Expand Down
5 changes: 1 addition & 4 deletions packages/amplify-category-function/commands/function/add.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
const fs = require('fs');

const subcommand = 'add';
const category = 'function';
const servicesMetadata = JSON.parse(fs.readFileSync(`${__dirname}/../../provider-utils/supported-services.json`));

let options;

module.exports = {
name: subcommand,
run: async context => {
const { amplify } = context;

const servicesMetadata = amplify.readJsonFile(`${__dirname}/../../provider-utils/supported-services.json`);
return amplify
.serviceSelectionPrompt(context, category, servicesMetadata)
.then(result => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ async function updateWalkthrough(context, lambdaToUpdate) {
const parametersFilePath = path.join(resourceDirPath, functionParametersFileName);
let currentParameters;
try {
currentParameters = JSON.parse(fs.readFileSync(parametersFilePath));
currentParameters = context.amplify.readJsonFile(parametersFilePath);
} catch (e) {
currentParameters = {};
}
Expand All @@ -148,7 +148,7 @@ async function updateWalkthrough(context, lambdaToUpdate) {

const cfnFileName = `${resourceAnswer.resourceName}-cloudformation-template.json`;
const cfnFilePath = path.join(resourceDirPath, cfnFileName);
const cfnContent = JSON.parse(fs.readFileSync(cfnFilePath));
const cfnContent = context.amplify.readJsonFile(cfnFilePath);
const dependsOnParams = { env: { Type: 'String' } };

Object.keys(answers.resourcePropertiesJSON).forEach(resourceProperty => {
Expand Down Expand Up @@ -319,7 +319,7 @@ function getNewCFNParameters(oldCFNParameters, currentDefaults, newCFNResourcePa

async function askExecRolePermissionsQuestions(context, allDefaultValues, parameters, currentDefaults) {
const amplifyMetaFilePath = context.amplify.pathManager.getAmplifyMetaFilePath();
const amplifyMeta = JSON.parse(fs.readFileSync(amplifyMetaFilePath));
const amplifyMeta = context.amplify.readJsonFile(amplifyMetaFilePath);

let categories = Object.keys(amplifyMeta);
categories = categories.filter(category => category !== 'providers');
Expand Down
5 changes: 1 addition & 4 deletions packages/amplify-category-storage/commands/storage/add.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
const fs = require('fs');

const subcommand = 'add';
const category = 'storage';
const servicesMetadata = JSON.parse(fs.readFileSync(`${__dirname}/../../provider-utils/supported-services.json`));

let options;

module.exports = {
name: subcommand,
run: async context => {
const { amplify } = context;

const servicesMetadata = amplify.readJsonFile(`${__dirname}/../../provider-utils/supported-services.json`);
return amplify
.serviceSelectionPrompt(context, category, servicesMetadata)
.then(result => {
Expand Down
4 changes: 1 addition & 3 deletions packages/amplify-category-storage/commands/storage/update.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
const fs = require('fs');

const subcommand = 'update';
const category = 'storage';
const servicesMetadata = JSON.parse(fs.readFileSync(`${__dirname}/../../provider-utils/supported-services.json`));

module.exports = {
name: subcommand,
alias: ['configure'],
run: async context => {
const { amplify } = context;
const servicesMetadata = amplify.readJsonFile(`${__dirname}/../../provider-utils/supported-services.json`);

return amplify
.serviceSelectionPrompt(context, category, servicesMetadata)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const { removeResourceParameters } = require('./envResourceParams');

async function forceRemoveResource(context, category, name, dir) {
const amplifyMetaFilePath = pathManager.getAmplifyMetaFilePath();
const amplifyMeta = JSON.parse(fs.readFileSync(amplifyMetaFilePath));
const amplifyMeta = context.amplify.readJsonFile(amplifyMetaFilePath);
if (!amplifyMeta[category] || Object.keys(amplifyMeta[category]).length === 0) {
context.print.error('No resources added for this category');
process.exit(1);
Expand All @@ -30,7 +30,7 @@ async function forceRemoveResource(context, category, name, dir) {

function removeResource(context, category) {
const amplifyMetaFilePath = pathManager.getAmplifyMetaFilePath();
const amplifyMeta = JSON.parse(fs.readFileSync(amplifyMetaFilePath));
const amplifyMeta = context.amplify.readJsonFile(amplifyMetaFilePath);
if (!amplifyMeta[category] || Object.keys(amplifyMeta[category]).length === 0) {
context.print.error('No resources added for this category');
process.exit(1);
Expand Down Expand Up @@ -71,7 +71,7 @@ function removeResource(context, category) {

const deleteResourceFiles = async (context, category, resourceName, resourceDir, force) => {
const amplifyMetaFilePath = pathManager.getAmplifyMetaFilePath();
const amplifyMeta = JSON.parse(fs.readFileSync(amplifyMetaFilePath));
const amplifyMeta = context.amplify.readJsonFile(amplifyMetaFilePath);
if (!force) {
const { allResources } = await context.amplify.getResourceStatus();
allResources.forEach(resourceItem => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const fsExtra = require('fs-extra');
const { flattenDeep } = require('lodash');
const { join } = require('path');
const { uniq } = require('lodash');
const { readJsonFile } = require('./read-json-file');

/** ADD A TRIGGER
* @function addTrigger
Expand Down Expand Up @@ -361,7 +362,7 @@ const choicesFromMetadata = (path, selection, isDir) => {
};

// get metadata from a particular file
const getTriggerMetadata = (path, selection) => JSON.parse(fs.readFileSync(`${path}/${selection}.map.json`));
const getTriggerMetadata = (path, selection) => readJsonFile(`${path}/${selection}.map.json`);

// open customer's text editor
async function openEditor(context, path, name) {
Expand Down
2 changes: 1 addition & 1 deletion packages/amplify-codegen/src/utils/updateAmplifyMeta.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module.exports = async (context, apiDetails) => {
fs.write(amplifyMetaFilePath, JSON.stringify(amplifyMeta, null, 4));

const currentAmplifyMetaFilePath = context.amplify.pathManager.getCurentAmplifyMetaFilePath();
const currentAmplifyMeta = JSON.parse(fs.read(currentAmplifyMetaFilePath));
const currentAmplifyMeta = context.amplify.readJsonFile(currentAmplifyMetaFilePath);
if (!currentAmplifyMeta.api) {
currentAmplifyMeta.api = {};
}
Expand Down
4 changes: 2 additions & 2 deletions packages/amplify-util-mock/src/utils/lambda/load.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ export function getAllLambdaFunctions(context, backendPath: string): LambdaFunct
const cfnPath = path.join(lambdaDir, `${resourceName}-cloudformation-template.json`);
const cfnParams = path.join(lambdaDir, 'function-parameters.json');
try {
const lambdaCfn = JSON.parse(fs.readFileSync(cfnPath, 'utf-8'));
const lambdaCfnParams = fs.existsSync(cfnParams) ? JSON.parse(fs.readFileSync(cfnParams, 'utf-8')) : {};
const lambdaCfn = context.amplify.readJsonFile(cfnPath);
const lambdaCfnParams = fs.existsSync(cfnParams) ? context.amplify.readJsonFile(cfnParams) : {};
const lambdaConfig = processResources(lambdaCfn.Resources, {}, { ...lambdaCfnParams, env: 'NONE' });
lambdaConfig.basePath = path.join(lambdaDir, 'src');
lambdas.push(lambdaConfig);
Expand Down

0 comments on commit 3adc395

Please sign in to comment.