refactor(core): make boot and middleware ordering deterministic
CI / Build & Test (push) Failing after 4m51s
CI / Build & Test (pull_request) Canceled after 23s

This commit is contained in:
Zakaria El Orche
2026-08-12 16:42:49 +00:00
parent d7f36a7aea
commit 891ef99b8e
51 changed files with 1395 additions and 504 deletions
@@ -1,9 +1,8 @@
package dev.relism.flash.ext.webbundler;
import dev.relism.flash.extension.ExtensionPhase;
import dev.relism.flash.extension.FlashContext;
import dev.relism.flash.extension.FlashExtension;
import dev.relism.flash.extension.FlashRegistrar;
import dev.relism.flash.extension.FlashExtension;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -24,11 +23,6 @@ public final class WebBundlerExtension implements FlashExtension {
private ScheduledExecutorService watchLoop;
private Thread shutdownHook;
@Override
public int priority() {
return ExtensionPhase.LATE.value;
}
public WebBundlerExtension() {
this(WebBundlerConfig.builder().build());
}
@@ -38,7 +32,7 @@ public final class WebBundlerExtension implements FlashExtension {
}
@Override
public void provide(FlashContext ctx) {
public void configure(FlashRegistrar<?> app, FlashContext ctx) {
RuntimeEnvironment environment = modeResolver.resolve(config);
PackageManagerAdapter pmAdapter = new PackageManagerAdapter(config);
FrontendStrategy strategy = frontendTypeResolver.resolve(config.frontendType());
@@ -74,10 +68,7 @@ public final class WebBundlerExtension implements FlashExtension {
shutdownResources(orchestrator);
throw ex;
}
}
@Override
public void routes(FlashRegistrar<?> app, FlashContext ctx) {
ctx.onReady(() -> {
WebBundlerRuntime runtime = ctx.require(WebBundlerRuntime.class);
boolean orchestrated = runtime.environment() == RuntimeEnvironment.DEV && config.frontendType().requiresOrchestration();
if (orchestrated || config.operationMode() == OperationMode.ORCHESTRATE_ONLY) {
@@ -101,6 +92,7 @@ public final class WebBundlerExtension implements FlashExtension {
res.body(new byte[0]);
return null;
});
});
}
private void bootstrapDev(