@noego/app 0.0.21 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noego/app",
3
- "version": "0.0.21",
3
+ "version": "0.0.22",
4
4
  "description": "Production build tool for Dinner/Forge apps.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -64,10 +64,26 @@ async function reorganizeServerOutputs(context) {
64
64
  await fs.mkdir(serverOutDir, { recursive: true });
65
65
  await fs.cp(tsOutDir, serverOutDir, { recursive: true });
66
66
 
67
- const nestedServerDir = path.join(serverOutDir, 'server');
67
+ // Flatten the server directory from the tsc output structure.
68
+ // When source is under src/server/, tsc produces src/server/ in the output.
69
+ // Compute the actual relative path to the server root directory and flatten it.
70
+ const serverRootRel = path.relative(config.rootDir, config.server.rootDir);
71
+ const nestedServerDir = serverRootRel
72
+ ? path.join(serverOutDir, serverRootRel)
73
+ : path.join(serverOutDir, 'server');
68
74
  if (await pathExists(nestedServerDir)) {
69
75
  await fs.cp(nestedServerDir, serverOutDir, { recursive: true, force: true });
76
+ // Remove only the nested server directory, preserving sibling dirs (middleware, ui, etc.)
70
77
  await fs.rm(nestedServerDir, { recursive: true, force: true });
78
+ // If the prefix dir (e.g. 'src') is now empty, clean it up
79
+ if (serverRootRel && serverRootRel.includes(path.sep)) {
80
+ const topLevelDir = serverRootRel.split(path.sep)[0];
81
+ const topLevelPath = path.join(serverOutDir, topLevelDir);
82
+ const remaining = await fs.readdir(topLevelPath).catch(() => []);
83
+ if (remaining.length === 0) {
84
+ await fs.rm(topLevelPath, { recursive: true, force: true });
85
+ }
86
+ }
71
87
  }
72
88
 
73
89
  const compiledEntryRel = replaceExtension(
@@ -109,9 +125,10 @@ async function copyServerAssets(context) {
109
125
  dot: true
110
126
  });
111
127
  for (const absoluteSrc of matches) {
128
+ const serverRel = path.relative(config.rootDir, config.server.rootDir);
112
129
  await copyRelativeTo(absoluteSrc, config.layout.serverOutDir, config, logger, {
113
130
  seen: copiedSql,
114
- stripSegments: ['server']
131
+ stripSegments: serverRel.split(path.sep)
115
132
  });
116
133
  }
117
134
  }