UNPKG

@aws-amplify/amplify-category-api

Version:
36 lines (33 loc) 1.51 kB
import * as path from 'path'; import { $TSContext, JSONUtilities, pathManager } from '@aws-amplify/amplify-cli-core'; import * as fs from 'fs-extra'; import { parametersFileName } from './aws-constants'; import { addPolicyResourceNameToPaths, copyCfnTemplate } from './legacy-add-resource'; import { serviceMetadataFor } from './utils/dynamic-imports'; export const legacyUpdateResource = async (updateWalkthroughPromise: Promise<any>, context: $TSContext, category: string, service) => { let answers; let { cfnFilename } = await serviceMetadataFor(service); const result = await updateWalkthroughPromise; const options: any = {}; if (result) { if (result.answers) { ({ answers } = result); options.dependsOn = result.dependsOn; } else { answers = result; } if (!result.noCfnFile) { if (answers.customCfnFile) { cfnFilename = answers.customCfnFile; } addPolicyResourceNameToPaths(answers.paths); copyCfnTemplate(context, category, answers, cfnFilename); const parameters = { ...answers }; const resourceDirPath = pathManager.getResourceDirectoryPath(undefined, category, parameters.resourceName); fs.ensureDirSync(resourceDirPath); const parametersFilePath = path.join(resourceDirPath, parametersFileName); JSONUtilities.writeJson(parametersFilePath, parameters); context.amplify.updateamplifyMetaAfterResourceUpdate(category, answers.resourceName, 'dependsOn', answers.dependsOn); } } };