UNPKG

@aws-amplify/graphql-transformer-core

Version:

A framework to transform from GraphQL SDL to AWS CloudFormation.

38 lines 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StackManager = void 0; class StackManager { constructor(scope, nestedStackProvider, parameterProvider, resourceMapping) { this.scope = scope; this.nestedStackProvider = nestedStackProvider; this.parameterProvider = parameterProvider; this.stacks = new Map(); this.createStack = (stackName) => { const newStack = this.nestedStackProvider.provide(this.scope, stackName); this.stacks.set(stackName, newStack); return newStack; }; this.hasStack = (stackName) => this.stacks.has(stackName); this.getScopeFor = (resourceId, defaultStackName) => { const stackName = this.resourceToStackMap.has(resourceId) ? this.resourceToStackMap.get(resourceId) : defaultStackName; if (!stackName) { return this.scope; } if (this.hasStack(stackName)) { return this.getStack(stackName); } return this.createStack(stackName); }; this.getStackFor = (resourceId, defaultStackName) => this.getScopeFor(resourceId, defaultStackName); this.getParameter = (name) => this.parameterProvider && this.parameterProvider.provide(name); this.getStack = (stackName) => { if (this.stacks.has(stackName)) { return this.stacks.get(stackName); } throw new Error(`Stack ${stackName} is not created`); }; this.resourceToStackMap = new Map(Object.entries(resourceMapping)); } } exports.StackManager = StackManager; //# sourceMappingURL=stack-manager.js.map