From e064bb63ad90ae7b6852391646f46ab687c10988 Mon Sep 17 00:00:00 2001
From: Sergey Astapov <SergeAstapov@gmail.com>
Date: Thu, 28 Mar 2024 14:17:35 -0700
Subject: [PATCH 1/2] Update rollup.config.mjs to workaround not working
 re-export

---
 .../rollup.config.mjs                         | 24 ++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/ember-engines-router-service/rollup.config.mjs b/ember-engines-router-service/rollup.config.mjs
index ddcb660..389836e 100644
--- a/ember-engines-router-service/rollup.config.mjs
+++ b/ember-engines-router-service/rollup.config.mjs
@@ -23,7 +23,29 @@ export default {
     // These are the modules that should get reexported into the traditional
     // "app" tree. Things in here should also be in publicEntrypoints above, but
     // not everything in publicEntrypoints necessarily needs to go here.
-    addon.appReexports(['initializers/**/*.js', 'services/**/*.js']),
+    // addon.appReexports(['initializers/**/*.js', 'services/**/*.js']),
+
+    // For some reason, if v2 addon is dependency of an engine,
+    // it does not get bundled when host app is built.
+    //
+    // A small change to format of re-export file makes it work,
+    // however not clear exactly what is the root cause of such behavior, see
+    // https://github.com/villander/ember-engines-router-service/issues/67#issuecomment-1253285115
+    //
+    // Below snippet extracted from
+    // https://github.com/embroider-build/embroider/blob/main/packages/addon-dev/src/rollup-app-reexports.ts
+    {
+      name: 'custom-app-reexport',
+      async generateBundle() {
+        this.emitFile({
+          type: 'asset',
+          fileName: '_app_/initializers/ember-engines-router-service.js',
+          source:
+            'import initializer from "ember-engines-router-service/initializers/ember-engines-router-service";\n' +
+            'export default initializer;\n',
+        });
+      },
+    },
 
     // This babel config should *not* apply presets or compile away ES modules.
     // It exists only to provide development niceties for you, like automatic

From 2950a8f783f4052c458c51d9921fecfb0848bb8b Mon Sep 17 00:00:00 2001
From: Sergey Astapov <SergeAstapov@gmail.com>
Date: Thu, 28 Mar 2024 14:22:20 -0700
Subject: [PATCH 2/2] Update rollup.config.mjs to workaround service re-export

---
 ember-engines-router-service/rollup.config.mjs | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/ember-engines-router-service/rollup.config.mjs b/ember-engines-router-service/rollup.config.mjs
index 389836e..8dc9ca3 100644
--- a/ember-engines-router-service/rollup.config.mjs
+++ b/ember-engines-router-service/rollup.config.mjs
@@ -44,6 +44,13 @@ export default {
             'import initializer from "ember-engines-router-service/initializers/ember-engines-router-service";\n' +
             'export default initializer;\n',
         });
+        this.emitFile({
+          type: 'asset',
+          fileName: '_app_/services/engine-router-service.js',
+          source:
+            'import service from "ember-engines-router-service/services/engine-router-service";\n' +
+            'export default service;\n',
+        });
       },
     },