override fun optimize()

in engine/src/main/kotlin/io/kotless/opt/LambdaMergeOptimizer.kt [55:70]


    override fun optimize(schema: Schema, optimization: Optimization, context: OptimizationContext): Schema {
        val mergedMap = merge(schema.lambdas, optimization.mergeLambda, context)
        val scheduled = if (optimization.autoWarm.enable) {
            (schema.application.events.scheduled.filter { it.type != ScheduledEventType.Autowarm } +
                mergedMap.entries.distinctBy { it.value }.map { (key, lambda) ->
                    Application.Events.Scheduled(lambda.name, everyNMinutes(optimization.autoWarm.minutes), ScheduledEventType.Autowarm, key)
                }).toSet()
        } else schema.application.events.scheduled

        return schema.copy(
            lambdas = TypedStorage(HashMap(mergedMap)),
            application = schema.application.copy(
                events = schema.application.events.copy(scheduled = scheduled)
            )
        )
    }