Method: Modulator.init_stack

Defined in:
lib/modulator.rb

.init_stack(app_name:, bucket:, **stack_opts) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/modulator.rb', line 88

def init_stack(app_name:, bucket:, **stack_opts)
  stack = AwsStackBuilder.init({
      app_name: app_name.camelize,
      bucket: bucket,
    }.merge(stack_opts))

  # add lambdas to stack
  puts 'Generating endpoints'
  LAMBDAS.each do |name, config|
    puts "- adding #{config.dig(:module, :name)}.#{config.dig(:module, :method)} to #{config.dig(:gateway, :path)}"
    stack.add_lambda_endpoint(
      gateway: config[:gateway],
      mod: config[:module],
      wrapper: config[:wrapper] || {},
      env: config[:env] || {},
      settings: config[:settings] || {}
    )
  end

  # validate stack
  # puts 'Validating stack'
  # puts '- it is valid' if stack.valid?

  # return humidifier instance
  stack
end