@absolutejs/absolute 0.19.0-beta.945 → 0.19.0-beta.946

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/dist/cli/index.js CHANGED
@@ -2905,6 +2905,53 @@ var dev = async (serverEntry, configPath2) => {
2905
2905
  };
2906
2906
  let serverProcess = spawnServer();
2907
2907
  const sessionStart = Date.now();
2908
+ let serverRestartPending = false;
2909
+ const scheduleServerRestart = (filePath) => {
2910
+ if (serverRestartPending)
2911
+ return;
2912
+ serverRestartPending = true;
2913
+ const relPath = filePath.startsWith(process.cwd()) ? filePath.slice(process.cwd().length + 1) : filePath;
2914
+ console.log(cliTag("\x1B[36m", `Server file changed: ${relPath} \u2014 restarting...`));
2915
+ setTimeout(() => {
2916
+ serverRestartPending = false;
2917
+ restartServer().catch((err) => {
2918
+ console.error(cliTag("\x1B[31m", `Restart failed: ${err}`));
2919
+ });
2920
+ }, 80);
2921
+ };
2922
+ try {
2923
+ const { watch, existsSync: existsSync6 } = await import("fs");
2924
+ const { dirname: dirname3, basename } = await import("path");
2925
+ const absServerEntry = resolve3(serverEntry);
2926
+ const serverEntryDir = dirname3(absServerEntry);
2927
+ const serverEntryBase = basename(absServerEntry);
2928
+ const fsWatcher = watch(serverEntryDir, { persistent: false }, (eventType, filename) => {
2929
+ if (eventType !== "change" && eventType !== "rename")
2930
+ return;
2931
+ if (filename !== serverEntryBase)
2932
+ return;
2933
+ scheduleServerRestart(absServerEntry);
2934
+ });
2935
+ fsWatcher.unref();
2936
+ const configCandidates = ["absolute.config.ts", "absolute.config.js"];
2937
+ const projectRoot = process.cwd();
2938
+ for (const candidate of configCandidates) {
2939
+ const absCandidate = resolve3(projectRoot, candidate);
2940
+ if (!existsSync6(absCandidate))
2941
+ continue;
2942
+ const candidateBase = basename(absCandidate);
2943
+ const configWatcher = watch(dirname3(absCandidate), { persistent: false }, (eventType, filename) => {
2944
+ if (eventType !== "change" && eventType !== "rename")
2945
+ return;
2946
+ if (filename !== candidateBase)
2947
+ return;
2948
+ scheduleServerRestart(absCandidate);
2949
+ });
2950
+ configWatcher.unref();
2951
+ }
2952
+ } catch (err) {
2953
+ console.error(cliTag("\x1B[33m", `Failed to set up server entry watcher: ${err}`));
2954
+ }
2908
2955
  let frameworks = [];
2909
2956
  try {
2910
2957
  const cfg = await loadConfig(configPath2);
package/dist/index.js CHANGED
@@ -19144,6 +19144,7 @@ var resolveBuildPaths = (config) => {
19144
19144
  emberDir: optional(config.emberDirectory),
19145
19145
  htmlDir: optional(config.htmlDirectory),
19146
19146
  htmxDir: optional(config.htmxDirectory),
19147
+ publicDir: optional(config.publicDirectory),
19147
19148
  reactDir: optional(config.reactDirectory),
19148
19149
  stylesDir: optional(typeof config.stylesConfig === "string" ? config.stylesConfig : config.stylesConfig?.path),
19149
19150
  svelteDir: optional(config.svelteDirectory),
@@ -21589,6 +21590,29 @@ var moduleServerPromise, getModuleServer = () => moduleServerPromise, runSequent
21589
21590
  if (!hasFileChanged(filePath, currentHash, state.fileHashes)) {
21590
21591
  return;
21591
21592
  }
21593
+ const publicDir = state.resolvedPaths.publicDir;
21594
+ if (publicDir && resolve39(filePath).replace(/\\/g, "/").startsWith(publicDir + "/")) {
21595
+ try {
21596
+ const absSource = resolve39(filePath);
21597
+ const relFromPublic = absSource.replace(/\\/g, "/").slice(publicDir.length + 1);
21598
+ const buildDir = state.resolvedPaths.buildDir;
21599
+ const destPath = resolve39(buildDir, relFromPublic);
21600
+ const { mkdir: mkdir7, copyFile, readFile: readFile6 } = await import("fs/promises");
21601
+ const { dirname: dirname23 } = await import("path");
21602
+ await mkdir7(dirname23(destPath), { recursive: true });
21603
+ await copyFile(absSource, destPath);
21604
+ const bytes = await readFile6(destPath);
21605
+ state.assetStore.set(`/${relFromPublic}`, new Uint8Array(bytes));
21606
+ state.fileHashes.set(absSource, currentHash);
21607
+ logHmrUpdate(relative16(process.cwd(), filePath));
21608
+ broadcastToClients(state, {
21609
+ data: { framework: "public", manifest: state.manifest },
21610
+ message: "Public asset updated",
21611
+ type: "style-update"
21612
+ });
21613
+ } catch {}
21614
+ return;
21615
+ }
21592
21616
  if (framework === "unknown") {
21593
21617
  invalidate(resolve39(filePath));
21594
21618
  const relPath = relative16(process.cwd(), filePath);
@@ -32549,5 +32573,5 @@ export {
32549
32573
  ANGULAR_INIT_TIMEOUT_MS
32550
32574
  };
32551
32575
 
32552
- //# debugId=0AB756D9EEFF95BC64756E2164756E21
32576
+ //# debugId=955376BF8D8A029164756E2164756E21
32553
32577
  //# sourceMappingURL=index.js.map