UNPKG

@aws-amplify/cli-internal

Version:
56 lines 2.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.detectLocalDrift = void 0; const amplify_cli_core_1 = require("@aws-amplify/amplify-cli-core"); const fs_extra_1 = __importDefault(require("fs-extra")); function assertValidResourceInfo(resource) { if (typeof resource !== 'object' || resource === null || typeof resource.category !== 'string' || typeof resource.resourceName !== 'string' || typeof resource.service !== 'string' || (resource.providerPlugin !== undefined && typeof resource.providerPlugin !== 'string') || (resource.dependsOn !== undefined && !Array.isArray(resource.dependsOn))) { throw new Error(`Invalid ResourceInfo: ${JSON.stringify(resource)}`); } } async function detectLocalDrift(context) { try { if (!amplify_cli_core_1.stateManager.metaFileExists()) { return { skipped: true, skipReason: 'Project not initialized', }; } const currentCloudBackendDir = amplify_cli_core_1.pathManager.getCurrentCloudBackendDirPath(); if (!currentCloudBackendDir || !fs_extra_1.default.existsSync(currentCloudBackendDir)) { return { skipped: true, skipReason: 'No cloud backend found - project may not be deployed yet', }; } const { getResourceStatus } = require('../../extensions/amplify-helpers/resource-status-data'); const statusResults = await getResourceStatus(); const { resourcesToBeCreated, resourcesToBeUpdated, resourcesToBeDeleted } = statusResults; for (const arr of [resourcesToBeCreated, resourcesToBeUpdated, resourcesToBeDeleted]) { arr.forEach(assertValidResourceInfo); } return { resourcesToBeCreated, resourcesToBeUpdated, resourcesToBeDeleted, skipped: false, }; } catch (error) { return { skipped: true, skipReason: error.message || 'Unable to detect local drift', }; } } exports.detectLocalDrift = detectLocalDrift; //# sourceMappingURL=detect-local-drift.js.map