seagull-js/seagull

View on GitHub
packages/deploy-aws/src/lib/logical_to_path_map.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { MetadataEntry, SynthesizedStack } from '@aws-cdk/cx-api'
import { Keymap as PathMap } from '../types'

export function createLogicalToPathMap(stack: SynthesizedStack) {
  const map: PathMap = {}
  const data = stack.metadata
  const dataKeys = Object.keys(data)
  dataKeys.forEach(key => data[key].forEach(entry => addEntry(map, entry, key)))
  return map
}

function addEntry(map: PathMap, entry: MetadataEntry, key: string): void {
  // tslint:disable-next-line:no-unused-expression
  entry.type === 'aws:cdk:logicalId' && entry.data && (map[entry.data] = key)
}