vxrn 1.21.5 → 1.21.7

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.
Files changed (47) hide show
  1. package/dist/config/getOptionsFilled.mjs +3 -5
  2. package/dist/config/getOptionsFilled.mjs.map +1 -1
  3. package/dist/config/getOptionsFilled.native.js +3 -5
  4. package/dist/config/getOptionsFilled.native.js.map +1 -1
  5. package/dist/exports/clean.mjs +84 -16
  6. package/dist/exports/clean.mjs.map +1 -1
  7. package/dist/exports/clean.native.js +89 -16
  8. package/dist/exports/clean.native.js.map +1 -1
  9. package/dist/exports/clean.test.mjs +81 -0
  10. package/dist/exports/clean.test.mjs.map +1 -0
  11. package/dist/exports/clean.test.native.js +88 -0
  12. package/dist/exports/clean.test.native.js.map +1 -0
  13. package/dist/exports/dev.mjs +8 -3
  14. package/dist/exports/dev.mjs.map +1 -1
  15. package/dist/exports/dev.native.js +8 -3
  16. package/dist/exports/dev.native.js.map +1 -1
  17. package/dist/serve/node.mjs +20 -24
  18. package/dist/serve/node.mjs.map +1 -1
  19. package/dist/serve/node.native.js +20 -22
  20. package/dist/serve/node.native.js.map +1 -1
  21. package/dist/serve/node.test.mjs +60 -0
  22. package/dist/serve/node.test.mjs.map +1 -0
  23. package/dist/serve/node.test.native.js +72 -0
  24. package/dist/serve/node.test.native.js.map +1 -0
  25. package/dist/utils/state.mjs +11 -1
  26. package/dist/utils/state.mjs.map +1 -1
  27. package/dist/utils/state.native.js +11 -1
  28. package/dist/utils/state.native.js.map +1 -1
  29. package/package.json +11 -11
  30. package/src/config/getOptionsFilled.ts +2 -4
  31. package/src/exports/clean.test.ts +82 -0
  32. package/src/exports/clean.ts +90 -26
  33. package/src/exports/dev.ts +8 -3
  34. package/src/serve/node.test.ts +63 -0
  35. package/src/serve/node.ts +22 -26
  36. package/src/utils/state.ts +9 -1
  37. package/types/config/getOptionsFilled.d.ts +2 -0
  38. package/types/config/getOptionsFilled.d.ts.map +1 -1
  39. package/types/exports/build.d.ts +1 -0
  40. package/types/exports/build.d.ts.map +1 -1
  41. package/types/exports/clean.d.ts +6 -9
  42. package/types/exports/clean.d.ts.map +1 -1
  43. package/types/exports/clean.test.d.ts.map +1 -0
  44. package/types/exports/dev.d.ts.map +1 -1
  45. package/types/serve/node.d.ts.map +1 -1
  46. package/types/serve/node.test.d.ts.map +1 -0
  47. package/types/utils/state.d.ts.map +1 -1
@@ -4,7 +4,7 @@ import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { readPackageJSON } from "pkg-types";
6
6
  import { getServerOptionsFilled } from "./getServerOptionsFilled.mjs";
7
- import { readState, writeState } from "../utils/state.mjs";
7
+ import { readState } from "../utils/state.mjs";
8
8
  import { getCacheDir } from "../utils/getCacheDir.mjs";
9
9
  const require2 = createRequire(import.meta.url);
10
10
  let optionsFilled = null;
@@ -26,9 +26,6 @@ async function fillOptions(options, {
26
26
  } : void 0;
27
27
  const versionHash = hashString(JSON.stringify(packageJSON));
28
28
  const clean = options.clean ?? (state.versionHash && state.versionHash !== versionHash) ? "vite" : false;
29
- void writeState(cacheDir, {
30
- versionHash
31
- });
32
29
  if (typeof options.build?.server !== "boolean" && !options.build?.server) {
33
30
  options.build ||= {};
34
31
  options.build.server = false;
@@ -54,7 +51,8 @@ async function fillOptions(options, {
54
51
  packageVersions,
55
52
  state,
56
53
  packageRootDir,
57
- cacheDir
54
+ cacheDir,
55
+ versionHash
58
56
  };
59
57
  optionsFilled = final;
60
58
  return final;
@@ -1 +1 @@
1
- {"version":3,"names":["createHash","createRequire","tmpdir","join","readPackageJSON","getServerOptionsFilled","readState","writeState","getCacheDir","require","import","meta","url","optionsFilled","fillOptions","options","mode","root","process","cwd","entries","devMode","packageRootDir","resolve","cacheDir","state","packageJSON","Promise","all","deps","dependencies","packageVersions","react","replace","reactNative","versionHash","hashString","JSON","stringify","clean","build","server","debugBundlePath","debugBundle","Math","round","random","final","debugBundlePaths","ios","android","native","getOptionsFilled","str","hash","update","digest"],"sources":["../../src/config/getOptionsFilled.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createHash","createRequire","tmpdir","join","readPackageJSON","getServerOptionsFilled","readState","getCacheDir","require","import","meta","url","optionsFilled","fillOptions","options","mode","root","process","cwd","entries","devMode","packageRootDir","resolve","cacheDir","state","packageJSON","Promise","all","deps","dependencies","packageVersions","react","replace","reactNative","versionHash","hashString","JSON","stringify","clean","build","server","debugBundlePath","debugBundle","Math","round","random","final","debugBundlePaths","ios","android","native","getOptionsFilled","str","hash","update","digest"],"sources":["../../src/config/getOptionsFilled.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import { tmpdir } from "os";
4
4
  import { join } from "path";
5
5
  import { readPackageJSON } from "pkg-types";
6
6
  import { getServerOptionsFilled } from "./getServerOptionsFilled.native.js";
7
- import { readState, writeState } from "../utils/state.native.js";
7
+ import { readState } from "../utils/state.native.js";
8
8
  import { getCacheDir } from "../utils/getCacheDir.native.js";
9
9
  var require2 = createRequire(import.meta.url);
10
10
  var optionsFilled = null;
@@ -29,9 +29,6 @@ async function fillOptions(options) {
29
29
  } : void 0;
30
30
  var versionHash = hashString(JSON.stringify(packageJSON));
31
31
  var clean = ((_options_clean = options.clean) !== null && _options_clean !== void 0 ? _options_clean : state.versionHash && state.versionHash !== versionHash) ? "vite" : false;
32
- void writeState(cacheDir, {
33
- versionHash
34
- });
35
32
  if (typeof ((_options_build = options.build) === null || _options_build === void 0 ? void 0 : _options_build.server) !== "boolean" && !((_options_build1 = options.build) === null || _options_build1 === void 0 ? void 0 : _options_build1.server)) {
36
33
  var _options;
37
34
  (_options = options).build || (_options.build = {});
@@ -58,7 +55,8 @@ async function fillOptions(options) {
58
55
  packageVersions,
59
56
  state,
60
57
  packageRootDir,
61
- cacheDir
58
+ cacheDir,
59
+ versionHash
62
60
  };
63
61
  optionsFilled = final;
64
62
  return final;
@@ -1 +1 @@
1
- {"version":3,"names":["createHash","createRequire","tmpdir","join","readPackageJSON","getServerOptionsFilled","readState","writeState","getCacheDir","require2","import","meta","url","optionsFilled","fillOptions","options","mode","arguments","length","_options_clean","_options_build","_options_build1","root","process","cwd","entries","devMode","packageRootDir","resolve","cacheDir","state","packageJSON","Promise","all","deps","dependencies","packageVersions","react","replace","reactNative","versionHash","hashString","JSON","stringify","clean","build","server","_options","debugBundlePath","debugBundle","Math","round","random","final","debugBundlePaths","ios","android","native"],"sources":["../../src/config/getOptionsFilled.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createHash","createRequire","tmpdir","join","readPackageJSON","getServerOptionsFilled","readState","getCacheDir","require2","import","meta","url","optionsFilled","fillOptions","options","mode","arguments","length","_options_clean","_options_build","_options_build1","root","process","cwd","entries","devMode","packageRootDir","resolve","cacheDir","state","packageJSON","Promise","all","deps","dependencies","packageVersions","react","replace","reactNative","versionHash","hashString","JSON","stringify","clean","build","server","_options","debugBundlePath","debugBundle","Math","round","random","final","debugBundlePaths","ios","android","native","getOptionsFilled"],"sources":["../../src/config/getOptionsFilled.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,QAAkB;AAC3B,SAASC,aAAA,QAAqB;AAC9B,SAASC,MAAA,QAAc;AACvB,SAASC,IAAA,QAAY;AACrB,SAASC,eAAA,QAAuB;AAEhC,SAASC,sBAAA,QAA8B;AACvC,SAASC,SAAA,QAAiB;AAC1B,SAASC,WAAA,QAAmB;AAE5B,IAAAC,QAAM,GAAAP,aAAU,CAAAQ,MAAc,CAAAC,IAAA,CAAAC,GAAY;AAgC1C,IAAIC,aAAA,GAA0C;AAE9C,eAAsBC,YACpBC,OAAA,EACA;EAEA;IAAMC,IAAE;EAAO,IAAQC,SAAO,CAAAC,MAAQ,GAAI,KAAAD,SAAA,iBAAAA,SAAA;EAE1C,IAAAE,cAAgB;EAEhB,IAAAC,cAAM,EAAAC,eAAsB;EAC5B;IAAMC,IAAA,GAAAC,OAAW,CAAAC,GAAA;IAAAC;EAAgB,IAAAV,OAAA;EAEjC,IAAAW,OAAO,GAAOX,OAAA,CAAAC,IAAW,KAAI,YAAc,QAAK,GAAAA,IAAU,UAAQ;EAElE,IAAAW,cAAa,GAAAvB,IAAY,CAAAK,QAAA,CAAAmB,OAAiB;EAE1C,IAAAC,QAAM,GAAArB,WACJ,CAAAc,IAAK;EACD,IACE,CAAAQ,KAAO,EAAAC,WAAW,UAAQC,OAAW,CAAAC,GAAA,EACrC1B,SAAA,CAAAsB,QAAkB,GACpBxB,eACA,GAEN;EACA,IAAA6B,IAAM,GAAAH,WACK,CAAAI,YAAU,IAAM;EAI3B,IAAIC,eAAe,GAAAF,IAAO,CAAAG,KAAA,IAAAH,IAAW,eAAc,IAAQ;IAEzDG,KAAA,EAAAH,IAAQ,CAAAG,KAAA,CAAUC,OAAC;IACnBC,WAAQ,EAAAL,IAAM,eAAS,EAAAI,OAAA;EACzB;EAEA,IAAAE,WAAM,GAAAC,UACJ,CAAAC,IAAQ,CAAAC,SAAA,CAAAZ,WAAsB;EAIhC,IAAAa,KAAM,KAAQzB,cAAA,GAAAJ,OAAA,CAAA6B,KAAA,cAAAzB,cAAA,cAAAA,cAAA,GAAAW,KAAA,CAAAU,WAAA,IAAAV,KAAA,CAAAU,WAAA,KAAAA,WAAA;EAAA,IACZ,QAAG,CAAApB,cAAA,GAAAL,OAAA,CAAA8B,KAAA,cAAAzB,cAAA,uBAAAA,cAAA,CAAA0B,MAAA,sBAAAzB,eAAA,GAAAN,OAAA,CAAA8B,KAAA,cAAAxB,eAAA,uBAAAA,eAAA,CAAAyB,MAAA;IAAA,IAAAC,QAAA;IAEH,CAAAA,QAAA,GAAAhC,OAAkB,EAAA8B,KAAA,KAAAE,QAAA,CAAAF,KAAA;IAAA9B,OACX,CAAA8B,KAAA,CAAAC,MAAA;EAAA;EACI,IACXE,eAAA,GAAAjC,OAAA,CAAAkC,WAAA,WAAAlC,OAAA,CAAAkC,WAAA,gBAAAlC,OAAA,CAAAkC,WAAA,GAAA7C,IAAA,CAAAD,MAAA,cAAA+C,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAE,MAAA;EAAA,IACAC,KAAM;IACN,GAAAtC,OAAA;IACA;IACAuC,gBAAc;MACdC,GAAA,EAAAP,eAAS;MACPQ,OAAA,EAAQR;IAAA;IACAhC,IACR,EAAGU,OAAA;IACLkB,KAAA;IACAtB,IAAA;IACAwB,MAAA,QAAAxC,sBAAA,CAAAS,OAAA,CAAA+B,MAAA,EAAA9B,IAAA;IACAS,OAAA;MACAgC,MAAA;MACAX,MAAA;MACA,GAAArB;IACF;IAEAM,WAAA;IAEAK,eAAO;IACTN,KAAA;IAEOH,cAAS;IACdE,QAAO;IACTW;EAEA;EACE3B,aAAa,GAAAwC,KAAA;EACb,OAAKA,KAAO;AACZ;AACF,SAAAK,iBAAA","ignoreList":[]}
@@ -1,31 +1,99 @@
1
- import { rm } from "node:fs/promises";
2
- import { join } from "node:path";
1
+ import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
2
+ import { dirname, join } from "node:path";
3
3
  import { fillOptions } from "../config/getOptionsFilled.mjs";
4
4
  import { getSSRExternalsCachePath } from "../plugins/autoDepOptimizePlugin.mjs";
5
5
  import { getCacheDir } from "../utils/getCacheDir.mjs";
6
- const clean = async (rest, only) => {
7
- const options = await fillOptions(rest);
8
- const {
9
- root
10
- } = options;
11
- console.info(`[vxrn] cleaning`);
12
- await Promise.all([rm(getSSRExternalsCachePath(root)).catch(throwIfNotMissingError), rm(join(root, "node_modules", ".vite"), {
6
+ import { readState, writeState } from "../utils/state.mjs";
7
+ const CLEAN_LOCK_WAIT_MS = 25;
8
+ const CLEAN_LOCK_TIMEOUT_MS = 6e4;
9
+ function getErrorCode(err) {
10
+ if (err instanceof Error && "code" in err && typeof err.code === "string") {
11
+ return err.code;
12
+ }
13
+ }
14
+ async function withCacheCleanLock(cacheDir, action) {
15
+ const lockPath = join(dirname(cacheDir), ".vxrn-clean.lock");
16
+ const startedAt = Date.now();
17
+ await mkdir(dirname(lockPath), {
18
+ recursive: true
19
+ });
20
+ while (true) {
21
+ try {
22
+ await writeFile(lockPath, `${process.pid}
23
+ `, {
24
+ flag: "wx"
25
+ });
26
+ break;
27
+ } catch (err) {
28
+ if (getErrorCode(err) !== "EEXIST") {
29
+ throw err;
30
+ }
31
+ if (Date.now() - startedAt >= CLEAN_LOCK_TIMEOUT_MS) {
32
+ let owner = "unknown process";
33
+ try {
34
+ owner = `process ${(await readFile(lockPath, "utf8")).trim()}`;
35
+ } catch (readErr) {
36
+ if (getErrorCode(readErr) === "ENOENT") {
37
+ continue;
38
+ }
39
+ throw readErr;
40
+ }
41
+ throw new Error(`Timed out waiting for VXRN cache cleanup lock held by ${owner}`);
42
+ }
43
+ await new Promise(resolve => setTimeout(resolve, CLEAN_LOCK_WAIT_MS));
44
+ }
45
+ }
46
+ try {
47
+ return await action();
48
+ } finally {
49
+ await rm(lockPath, {
50
+ force: true
51
+ });
52
+ }
53
+ }
54
+ async function removeCachePaths(root, only) {
55
+ const removeVxrnCache = process.env.VXRN_DONT_CLEAN_SELF ? rm(getSSRExternalsCachePath(root)).catch(throwIfNotMissingError) : rm(getCacheDir(root), {
13
56
  recursive: true,
14
57
  force: true
15
- }).catch(throwIfNotMissingError), process.env.VXRN_DONT_CLEAN_SELF ? null : rm(getCacheDir(root), {
58
+ }).catch(throwIfNotMissingError);
59
+ console.info(`[vxrn] cleaning`);
60
+ await Promise.all([rm(join(root, "node_modules", ".vite"), {
16
61
  recursive: true,
17
62
  force: true
18
- }).catch(throwIfNotMissingError), only === "vite" ? null : rm(join(root, "dist"), {
63
+ }).catch(throwIfNotMissingError), removeVxrnCache, only === "vite" ? null : rm(join(root, "dist"), {
19
64
  recursive: true,
20
65
  force: true
21
66
  }).catch(throwIfNotMissingError)]);
67
+ }
68
+ async function prepareCacheForVersion({
69
+ root,
70
+ cacheDir,
71
+ versionHash,
72
+ forceClean = false
73
+ }) {
74
+ return withCacheCleanLock(cacheDir, async () => {
75
+ const state = await readState(cacheDir);
76
+ const versionChanged = !!state.versionHash && state.versionHash !== versionHash;
77
+ const shouldClean = forceClean || versionChanged;
78
+ if (shouldClean) {
79
+ await removeCachePaths(root, "vite");
80
+ }
81
+ if (shouldClean || state.versionHash !== versionHash) {
82
+ await writeState(cacheDir, {
83
+ versionHash
84
+ });
85
+ }
86
+ return shouldClean;
87
+ });
88
+ }
89
+ const clean = async (rest, only) => {
90
+ const options = await fillOptions(rest);
91
+ await withCacheCleanLock(options.cacheDir, () => removeCachePaths(options.root, only));
22
92
  };
23
93
  function throwIfNotMissingError(err) {
24
- if (err instanceof Error) {
25
- if (err.code !== "ENOENT") {
26
- throw Error;
27
- }
94
+ if (getErrorCode(err) !== "ENOENT") {
95
+ throw err;
28
96
  }
29
97
  }
30
- export { clean };
98
+ export { clean, prepareCacheForVersion };
31
99
  //# sourceMappingURL=clean.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["rm","join","fillOptions","getSSRExternalsCachePath","getCacheDir","clean","rest","only","options","root","console","info","Promise","all","catch","throwIfNotMissingError","recursive","force","process","env","VXRN_DONT_CLEAN_SELF","err","Error","code"],"sources":["../../src/exports/clean.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,EAAA,QAAU;AACnB,SAASC,IAAA,QAAY;AAErB,SAASC,WAAA,QAAmB;AAC5B,SAASC,wBAAA,QAAgC;AACzC,SAASC,WAAA,QAAmB;AAYrB,MAAMC,KAAA,GAAQ,MAAAA,CAAOC,IAAA,EAAmBC,IAAA,KAAkB;EAC/D,MAAMC,OAAA,GAAU,MAAMN,WAAA,CAAYI,IAAI;EACtC,MAAM;IAAEG;EAAK,IAAID,OAAA;EAEjBE,OAAA,CAAQC,IAAA,CAAK,iBAAiB;EAE9B,MAAMC,OAAA,CAAQC,GAAA,CAAI,CAChBb,EAAA,CAAGG,wBAAA,CAAyBM,IAAI,CAAC,EAAEK,KAAA,CAAMC,sBAAsB,GAC/Df,EAAA,CAAGC,IAAA,CAAKQ,IAAA,EAAM,gBAAgB,OAAO,GAAG;IACtCO,SAAA,EAAW;IACXC,KAAA,EAAO;EACT,CAAC,EAAEH,KAAA,CAAMC,sBAAsB,GAC/BG,OAAA,CAAQC,GAAA,CAAIC,oBAAA,GACR,OACApB,EAAA,CAAGI,WAAA,CAAYK,IAAI,GAAG;IACpBO,SAAA,EAAW;IACXC,KAAA,EAAO;EACT,CAAC,EAAEH,KAAA,CAAMC,sBAAsB,GACnCR,IAAA,KAAS,SACL,OACAP,EAAA,CAAGC,IAAA,CAAKQ,IAAA,EAAM,MAAM,GAAG;IACrBO,SAAA,EAAW;IACXC,KAAA,EAAO;EACT,CAAC,EAAEH,KAAA,CAAMC,sBAAsB,EACpC;AACH;AAEA,SAASA,uBAAuBM,GAAA,EAAc;EAC5C,IAAIA,GAAA,YAAeC,KAAA,EAAO;IACxB,IAAKD,GAAA,CAA8BE,IAAA,KAAS,UAAU;MACpD,MAAMD,KAAA;IACR;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["mkdir","readFile","rm","writeFile","dirname","join","fillOptions","getSSRExternalsCachePath","getCacheDir","readState","writeState","CLEAN_LOCK_WAIT_MS","CLEAN_LOCK_TIMEOUT_MS","getErrorCode","err","Error","code","withCacheCleanLock","cacheDir","action","lockPath","startedAt","Date","now","recursive","process","pid","flag","owner","trim","readErr","Promise","resolve","setTimeout","force","removeCachePaths","root","only","removeVxrnCache","env","VXRN_DONT_CLEAN_SELF","catch","throwIfNotMissingError","console","info","all","prepareCacheForVersion","versionHash","forceClean","state","versionChanged","shouldClean","clean","rest","options"],"sources":["../../src/exports/clean.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAA,EAAOC,QAAA,EAAUC,EAAA,EAAIC,SAAA,QAAiB;AAC/C,SAASC,OAAA,EAASC,IAAA,QAAY;AAE9B,SAASC,WAAA,QAAmB;AAC5B,SAASC,wBAAA,QAAgC;AACzC,SAASC,WAAA,QAAmB;AAC5B,SAASC,SAAA,EAAWC,UAAA,QAAkB;AAYtC,MAAMC,kBAAA,GAAqB;AAC3B,MAAMC,qBAAA,GAAwB;AAE9B,SAASC,aAAaC,GAAA,EAAc;EAClC,IAAIA,GAAA,YAAeC,KAAA,IAAS,UAAUD,GAAA,IAAO,OAAOA,GAAA,CAAIE,IAAA,KAAS,UAAU;IACzE,OAAOF,GAAA,CAAIE,IAAA;EACb;AACF;AAEA,eAAeC,mBAAsBC,QAAA,EAAkBC,MAAA,EAA0B;EAC/E,MAAMC,QAAA,GAAWf,IAAA,CAAKD,OAAA,CAAQc,QAAQ,GAAG,kBAAkB;EAC3D,MAAMG,SAAA,GAAYC,IAAA,CAAKC,GAAA,CAAI;EAC3B,MAAMvB,KAAA,CAAMI,OAAA,CAAQgB,QAAQ,GAAG;IAAEI,SAAA,EAAW;EAAK,CAAC;EAElD,OAAO,MAAM;IACX,IAAI;MACF,MAAMrB,SAAA,CAAUiB,QAAA,EAAU,GAAGK,OAAA,CAAQC,GAAG;AAAA,GAAM;QAAEC,IAAA,EAAM;MAAK,CAAC;MAC5D;IACF,SAASb,GAAA,EAAK;MACZ,IAAID,YAAA,CAAaC,GAAG,MAAM,UAAU;QAClC,MAAMA,GAAA;MACR;MAEA,IAAIQ,IAAA,CAAKC,GAAA,CAAI,IAAIF,SAAA,IAAaT,qBAAA,EAAuB;QACnD,IAAIgB,KAAA,GAAQ;QACZ,IAAI;UACFA,KAAA,GAAQ,YAAY,MAAM3B,QAAA,CAASmB,QAAA,EAAU,MAAM,GAAGS,IAAA,CAAK,CAAC;QAC9D,SAASC,OAAA,EAAS;UAChB,IAAIjB,YAAA,CAAaiB,OAAO,MAAM,UAAU;YACtC;UACF;UACA,MAAMA,OAAA;QACR;QACA,MAAM,IAAIf,KAAA,CAAM,yDAAyDa,KAAK,EAAE;MAClF;MACA,MAAM,IAAIG,OAAA,CAAeC,OAAA,IAAYC,UAAA,CAAWD,OAAA,EAASrB,kBAAkB,CAAC;IAC9E;EACF;EAEA,IAAI;IACF,OAAO,MAAMQ,MAAA,CAAO;EACtB,UAAE;IACA,MAAMjB,EAAA,CAAGkB,QAAA,EAAU;MAAEc,KAAA,EAAO;IAAK,CAAC;EACpC;AACF;AAEA,eAAeC,iBAAiBC,IAAA,EAAcC,IAAA,EAAe;EAC3D,MAAMC,eAAA,GAAkBb,OAAA,CAAQc,GAAA,CAAIC,oBAAA,GAChCtC,EAAA,CAAGK,wBAAA,CAAyB6B,IAAI,CAAC,EAAEK,KAAA,CAAMC,sBAAsB,IAC/DxC,EAAA,CAAGM,WAAA,CAAY4B,IAAI,GAAG;IACpBZ,SAAA,EAAW;IACXU,KAAA,EAAO;EACT,CAAC,EAAEO,KAAA,CAAMC,sBAAsB;EAEnCC,OAAA,CAAQC,IAAA,CAAK,iBAAiB;EAE9B,MAAMb,OAAA,CAAQc,GAAA,CAAI,CAChB3C,EAAA,CAAGG,IAAA,CAAK+B,IAAA,EAAM,gBAAgB,OAAO,GAAG;IACtCZ,SAAA,EAAW;IACXU,KAAA,EAAO;EACT,CAAC,EAAEO,KAAA,CAAMC,sBAAsB,GAC/BJ,eAAA,EACAD,IAAA,KAAS,SACL,OACAnC,EAAA,CAAGG,IAAA,CAAK+B,IAAA,EAAM,MAAM,GAAG;IACrBZ,SAAA,EAAW;IACXU,KAAA,EAAO;EACT,CAAC,EAAEO,KAAA,CAAMC,sBAAsB,EACpC;AACH;AAEA,eAAsBI,uBAAuB;EAC3CV,IAAA;EACAlB,QAAA;EACA6B,WAAA;EACAC,UAAA,GAAa;AACf,GAKG;EACD,OAAO/B,kBAAA,CAAmBC,QAAA,EAAU,YAAY;IAC9C,MAAM+B,KAAA,GAAQ,MAAMxC,SAAA,CAAUS,QAAQ;IACtC,MAAMgC,cAAA,GAAiB,CAAC,CAACD,KAAA,CAAMF,WAAA,IAAeE,KAAA,CAAMF,WAAA,KAAgBA,WAAA;IACpE,MAAMI,WAAA,GAAcH,UAAA,IAAcE,cAAA;IAElC,IAAIC,WAAA,EAAa;MACf,MAAMhB,gBAAA,CAAiBC,IAAA,EAAM,MAAM;IACrC;IACA,IAAIe,WAAA,IAAeF,KAAA,CAAMF,WAAA,KAAgBA,WAAA,EAAa;MACpD,MAAMrC,UAAA,CAAWQ,QAAA,EAAU;QAAE6B;MAAY,CAAC;IAC5C;IAEA,OAAOI,WAAA;EACT,CAAC;AACH;AAEO,MAAMC,KAAA,GAAQ,MAAAA,CAAOC,IAAA,EAAmBhB,IAAA,KAAkB;EAC/D,MAAMiB,OAAA,GAAU,MAAMhD,WAAA,CAAY+C,IAAI;EACtC,MAAMpC,kBAAA,CAAmBqC,OAAA,CAAQpC,QAAA,EAAU,MAAMiB,gBAAA,CAAiBmB,OAAA,CAAQlB,IAAA,EAAMC,IAAI,CAAC;AACvF;AAEA,SAASK,uBAAuB5B,GAAA,EAAc;EAC5C,IAAID,YAAA,CAAaC,GAAG,MAAM,UAAU;IAClC,MAAMA,GAAA;EACR;AACF","ignoreList":[]}
@@ -1,8 +1,9 @@
1
- import { rm } from "fs/promises";
2
- import { join } from "path";
1
+ import { mkdir, readFile, rm, writeFile } from "fs/promises";
2
+ import { dirname, join } from "path";
3
3
  import { fillOptions } from "../config/getOptionsFilled.native.js";
4
4
  import { getSSRExternalsCachePath } from "../plugins/autoDepOptimizePlugin.native.js";
5
5
  import { getCacheDir } from "../utils/getCacheDir.native.js";
6
+ import { readState, writeState } from "../utils/state.native.js";
6
7
  function _instanceof(left, right) {
7
8
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
8
9
  return !!right[Symbol.hasInstance](left);
@@ -10,29 +11,101 @@ function _instanceof(left, right) {
10
11
  return left instanceof right;
11
12
  }
12
13
  }
13
- var clean = async function (rest, only) {
14
- var options = await fillOptions(rest);
15
- var {
16
- root
17
- } = options;
18
- console.info(`[vxrn] cleaning`);
19
- await Promise.all([rm(getSSRExternalsCachePath(root)).catch(throwIfNotMissingError), rm(join(root, "node_modules", ".vite"), {
14
+ var CLEAN_LOCK_WAIT_MS = 25;
15
+ var CLEAN_LOCK_TIMEOUT_MS = 6e4;
16
+ function getErrorCode(err) {
17
+ if (_instanceof(err, Error) && "code" in err && typeof err.code === "string") {
18
+ return err.code;
19
+ }
20
+ }
21
+ async function withCacheCleanLock(cacheDir, action) {
22
+ var lockPath = join(dirname(cacheDir), ".vxrn-clean.lock");
23
+ var startedAt = Date.now();
24
+ await mkdir(dirname(lockPath), {
25
+ recursive: true
26
+ });
27
+ while (true) {
28
+ try {
29
+ await writeFile(lockPath, `${process.pid}
30
+ `, {
31
+ flag: "wx"
32
+ });
33
+ break;
34
+ } catch (err) {
35
+ if (getErrorCode(err) !== "EEXIST") {
36
+ throw err;
37
+ }
38
+ if (Date.now() - startedAt >= CLEAN_LOCK_TIMEOUT_MS) {
39
+ var owner = "unknown process";
40
+ try {
41
+ owner = `process ${(await readFile(lockPath, "utf8")).trim()}`;
42
+ } catch (readErr) {
43
+ if (getErrorCode(readErr) === "ENOENT") {
44
+ continue;
45
+ }
46
+ throw readErr;
47
+ }
48
+ throw new Error(`Timed out waiting for VXRN cache cleanup lock held by ${owner}`);
49
+ }
50
+ await new Promise(function (resolve) {
51
+ return setTimeout(resolve, CLEAN_LOCK_WAIT_MS);
52
+ });
53
+ }
54
+ }
55
+ try {
56
+ return await action();
57
+ } finally {
58
+ await rm(lockPath, {
59
+ force: true
60
+ });
61
+ }
62
+ }
63
+ async function removeCachePaths(root, only) {
64
+ var removeVxrnCache = process.env.VXRN_DONT_CLEAN_SELF ? rm(getSSRExternalsCachePath(root)).catch(throwIfNotMissingError) : rm(getCacheDir(root), {
20
65
  recursive: true,
21
66
  force: true
22
- }).catch(throwIfNotMissingError), process.env.VXRN_DONT_CLEAN_SELF ? null : rm(getCacheDir(root), {
67
+ }).catch(throwIfNotMissingError);
68
+ console.info(`[vxrn] cleaning`);
69
+ await Promise.all([rm(join(root, "node_modules", ".vite"), {
23
70
  recursive: true,
24
71
  force: true
25
- }).catch(throwIfNotMissingError), only === "vite" ? null : rm(join(root, "dist"), {
72
+ }).catch(throwIfNotMissingError), removeVxrnCache, only === "vite" ? null : rm(join(root, "dist"), {
26
73
  recursive: true,
27
74
  force: true
28
75
  }).catch(throwIfNotMissingError)]);
76
+ }
77
+ async function prepareCacheForVersion(param) {
78
+ var {
79
+ root,
80
+ cacheDir,
81
+ versionHash,
82
+ forceClean = false
83
+ } = param;
84
+ return withCacheCleanLock(cacheDir, async function () {
85
+ var state = await readState(cacheDir);
86
+ var versionChanged = !!state.versionHash && state.versionHash !== versionHash;
87
+ var shouldClean = forceClean || versionChanged;
88
+ if (shouldClean) {
89
+ await removeCachePaths(root, "vite");
90
+ }
91
+ if (shouldClean || state.versionHash !== versionHash) {
92
+ await writeState(cacheDir, {
93
+ versionHash
94
+ });
95
+ }
96
+ return shouldClean;
97
+ });
98
+ }
99
+ var clean = async function (rest, only) {
100
+ var options = await fillOptions(rest);
101
+ await withCacheCleanLock(options.cacheDir, function () {
102
+ return removeCachePaths(options.root, only);
103
+ });
29
104
  };
30
105
  function throwIfNotMissingError(err) {
31
- if (_instanceof(err, Error)) {
32
- if (err.code !== "ENOENT") {
33
- throw Error;
34
- }
106
+ if (getErrorCode(err) !== "ENOENT") {
107
+ throw err;
35
108
  }
36
109
  }
37
- export { clean };
110
+ export { clean, prepareCacheForVersion };
38
111
  //# sourceMappingURL=clean.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["rm","join","fillOptions","getSSRExternalsCachePath","getCacheDir","_instanceof","left","right","Symbol","hasInstance","clean","rest","only","options","root","console","info","Promise","all","catch","throwIfNotMissingError","recursive","force","process","env","VXRN_DONT_CLEAN_SELF"],"sources":["../../src/exports/clean.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,EAAA,QAAU;AACnB,SAASC,IAAA,QAAY;AAErB,SAASC,WAAA,QAAmB;AAC5B,SAASC,wBAAA,QAAgC;AACzC,SAASC,WAAA,QAAmB;AAYrB,SAAMC,WAAQA,CAAOC,IAAA,EAAmBC,KAAA;EAC7C,IAAAA,KAAM,QAAU,WAAMC,MAAY,KAAI,eAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IACtC,OAAQ,EAAAF,KAAK,CAAIC,MAAA,CAAAC,WAAA,EAAAH,IAAA;EAEjB;IAEA,OAAMA,IAAA,YAAYC,KAAA;EAAA;AAC+C;AACvB,IAAAG,KACtC,kBAAAA,CAAWC,IAAA,EAAAC,IAAA;EAAA,IACXC,OAAO,SAAAX,WAAA,CAAAS,IAAA;EAAA,IACR;IAAEG;EAAM,IAAAD,OAAA;EAAsBE,OAC/B,CAAAC,IAAQ,kBAAI;EAEc,MACpBC,OAAA,CAAAC,GAAW,EAAAlB,EACX,CAAAG,wBAAO,CAAAW,IAAA,GAAAK,KAAA,CAAAC,sBAAA,GACTpB,EAAC,CAAEC,IAAA,CAAAa,IAAM,yBAAsB;IACnCO,SAAS;IAGHC,KAAA;EAAW,EACX,CAAAH,KAAA,CAAOC,sBAAA,GACTG,OAAG,CAAAC,GAAM,CAAAC,oBAAsB,UAAAzB,EAAA,CAAAI,WAAA,CAAAU,IAAA;IACpCO,SAAA;IACHC,KAAA;EAEA,GAAAH,KAAS,CAAAC,sBAAuB,GAC9BR,IAAI,cAAe,OAAOZ,EAAA,CAAAC,IAAA,CAAAa,IAAA;IACxBO,SAAmC,MAAS;IAC1CC,KAAA,EAAM;EACR,GAAAH,KAAA,CAAAC,sBAAA,EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["mkdir","readFile","rm","writeFile","dirname","join","fillOptions","getSSRExternalsCachePath","getCacheDir","readState","writeState","_instanceof","left","right","Symbol","hasInstance","CLEAN_LOCK_WAIT_MS","CLEAN_LOCK_TIMEOUT_MS","getErrorCode","err","Error","code","withCacheCleanLock","cacheDir","action","lockPath","startedAt","Date","now","recursive","process","pid","flag","owner","trim","readErr","Promise","resolve","setTimeout","force","removeCachePaths","root","only","removeVxrnCache","env","VXRN_DONT_CLEAN_SELF","catch","throwIfNotMissingError","console","info","all","prepareCacheForVersion","param","versionHash","forceClean","state","versionChanged","shouldClean"],"sources":["../../src/exports/clean.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ import { execFile } from "node:child_process";
2
+ import { mkdtemp, mkdir, readFile, rm, writeFile } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import { dirname, join } from "node:path";
5
+ import { pathToFileURL } from "node:url";
6
+ import { promisify } from "node:util";
7
+ import { afterEach, describe, expect, it } from "vitest";
8
+ const execFileAsync = promisify(execFile);
9
+ describe("prepareCacheForVersion", () => {
10
+ let root;
11
+ afterEach(async () => {
12
+ if (root) {
13
+ await rm(root, {
14
+ recursive: true,
15
+ force: true
16
+ });
17
+ }
18
+ });
19
+ it("lets one process clean a stale same-root cache", async () => {
20
+ root = await mkdtemp(join(tmpdir(), "vxrn-concurrent-clean-"));
21
+ const cacheDir = join(root, "node_modules", ".vxrn");
22
+ const viteDir = join(root, "node_modules", ".vite");
23
+ const participantsDir = join(root, "participants");
24
+ const participantCount = 4;
25
+ await Promise.all([mkdir(cacheDir, {
26
+ recursive: true
27
+ }), mkdir(viteDir, {
28
+ recursive: true
29
+ }), mkdir(participantsDir, {
30
+ recursive: true
31
+ })]);
32
+ await Promise.all([writeFile(join(cacheDir, "state.json"), JSON.stringify({
33
+ versionHash: "old"
34
+ })), writeFile(join(cacheDir, "stale"), "stale"), writeFile(join(viteDir, "stale"), "stale")]);
35
+ const moduleUrl = pathToFileURL(join(dirname(import.meta.filename), "clean.ts")).href;
36
+ const workerScript = participant => `
37
+ import { readdir, writeFile } from 'node:fs/promises'
38
+ import { join } from 'node:path'
39
+ import { prepareCacheForVersion } from ${JSON.stringify(moduleUrl)}
40
+
41
+ const root = ${JSON.stringify(root)}
42
+ const participantsDir = ${JSON.stringify(participantsDir)}
43
+ await writeFile(join(participantsDir, ${JSON.stringify(String(participant))}), '')
44
+ while ((await readdir(participantsDir)).length < ${participantCount}) {
45
+ await Bun.sleep(5)
46
+ }
47
+ const cleaned = await prepareCacheForVersion({
48
+ root,
49
+ cacheDir: join(root, 'node_modules', '.vxrn'),
50
+ versionHash: 'new',
51
+ })
52
+ console.info(cleaned ? 'cleaned-by-worker' : 'cache-already-current')
53
+ `;
54
+ const results = await Promise.all(Array.from({
55
+ length: participantCount
56
+ }, (_, participant) => execFileAsync("bun", ["-e", workerScript(participant)], {
57
+ env: {
58
+ ...process.env,
59
+ VXRN_DONT_CLEAN_SELF: ""
60
+ }
61
+ })));
62
+ const output = results.map(({
63
+ stdout
64
+ }) => stdout).join("\n");
65
+ expect(output.match(/\[vxrn\] cleaning/g)).toHaveLength(1);
66
+ expect(output.match(/cleaned-by-worker/g)).toHaveLength(1);
67
+ expect(JSON.parse(await readFile(join(cacheDir, "state.json"), "utf8"))).toEqual({
68
+ versionHash: "new"
69
+ });
70
+ await expect(readFile(join(cacheDir, "stale"))).rejects.toMatchObject({
71
+ code: "ENOENT"
72
+ });
73
+ await expect(readFile(join(viteDir, "stale"))).rejects.toMatchObject({
74
+ code: "ENOENT"
75
+ });
76
+ await expect(readFile(join(root, "node_modules", ".vxrn-clean.lock"))).rejects.toMatchObject({
77
+ code: "ENOENT"
78
+ });
79
+ }, 2e4);
80
+ });
81
+ //# sourceMappingURL=clean.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["execFile","mkdtemp","mkdir","readFile","rm","writeFile","tmpdir","dirname","join","pathToFileURL","promisify","afterEach","describe","expect","it","execFileAsync","root","recursive","force","cacheDir","viteDir","participantsDir","participantCount","Promise","all","JSON","stringify","versionHash","moduleUrl","import","meta","filename","href","workerScript","participant","String","results","Array","from","length","_","env","process","VXRN_DONT_CLEAN_SELF","output","map","stdout","match","toHaveLength","parse","toEqual","rejects","toMatchObject","code"],"sources":["../../src/exports/clean.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ import { execFile } from "child_process";
2
+ import { mkdtemp, mkdir, readFile, rm, writeFile } from "fs/promises";
3
+ import { tmpdir } from "os";
4
+ import { dirname, join } from "path";
5
+ import { pathToFileURL } from "url";
6
+ import { promisify } from "util";
7
+ import { afterEach, describe, expect, it } from "vitest";
8
+ var execFileAsync = promisify(execFile);
9
+ describe("prepareCacheForVersion", function () {
10
+ var root;
11
+ afterEach(async function () {
12
+ if (root) {
13
+ await rm(root, {
14
+ recursive: true,
15
+ force: true
16
+ });
17
+ }
18
+ });
19
+ it("lets one process clean a stale same-root cache", async function () {
20
+ root = await mkdtemp(join(tmpdir(), "vxrn-concurrent-clean-"));
21
+ var cacheDir = join(root, "node_modules", ".vxrn");
22
+ var viteDir = join(root, "node_modules", ".vite");
23
+ var participantsDir = join(root, "participants");
24
+ var participantCount = 4;
25
+ await Promise.all([mkdir(cacheDir, {
26
+ recursive: true
27
+ }), mkdir(viteDir, {
28
+ recursive: true
29
+ }), mkdir(participantsDir, {
30
+ recursive: true
31
+ })]);
32
+ await Promise.all([writeFile(join(cacheDir, "state.json"), JSON.stringify({
33
+ versionHash: "old"
34
+ })), writeFile(join(cacheDir, "stale"), "stale"), writeFile(join(viteDir, "stale"), "stale")]);
35
+ var moduleUrl = pathToFileURL(join(dirname(import.meta.filename), "clean.ts")).href;
36
+ var workerScript = function (participant) {
37
+ return `
38
+ import { readdir, writeFile } from 'node:fs/promises'
39
+ import { join } from 'node:path'
40
+ import { prepareCacheForVersion } from ${JSON.stringify(moduleUrl)}
41
+
42
+ const root = ${JSON.stringify(root)}
43
+ const participantsDir = ${JSON.stringify(participantsDir)}
44
+ await writeFile(join(participantsDir, ${JSON.stringify(String(participant))}), '')
45
+ while ((await readdir(participantsDir)).length < ${participantCount}) {
46
+ await Bun.sleep(5)
47
+ }
48
+ const cleaned = await prepareCacheForVersion({
49
+ root,
50
+ cacheDir: join(root, 'node_modules', '.vxrn'),
51
+ versionHash: 'new',
52
+ })
53
+ console.info(cleaned ? 'cleaned-by-worker' : 'cache-already-current')
54
+ `;
55
+ };
56
+ var results = await Promise.all(Array.from({
57
+ length: participantCount
58
+ }, function (_, participant) {
59
+ return execFileAsync("bun", ["-e", workerScript(participant)], {
60
+ env: {
61
+ ...process.env,
62
+ VXRN_DONT_CLEAN_SELF: ""
63
+ }
64
+ });
65
+ }));
66
+ var output = results.map(function (param) {
67
+ var {
68
+ stdout
69
+ } = param;
70
+ return stdout;
71
+ }).join("\n");
72
+ expect(output.match(/\[vxrn\] cleaning/g)).toHaveLength(1);
73
+ expect(output.match(/cleaned-by-worker/g)).toHaveLength(1);
74
+ expect(JSON.parse(await readFile(join(cacheDir, "state.json"), "utf8"))).toEqual({
75
+ versionHash: "new"
76
+ });
77
+ await expect(readFile(join(cacheDir, "stale"))).rejects.toMatchObject({
78
+ code: "ENOENT"
79
+ });
80
+ await expect(readFile(join(viteDir, "stale"))).rejects.toMatchObject({
81
+ code: "ENOENT"
82
+ });
83
+ await expect(readFile(join(root, "node_modules", ".vxrn-clean.lock"))).rejects.toMatchObject({
84
+ code: "ENOENT"
85
+ });
86
+ }, 2e4);
87
+ });
88
+ //# sourceMappingURL=clean.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["execFile","mkdtemp","mkdir","readFile","rm","writeFile","tmpdir","dirname","join","pathToFileURL","promisify","afterEach","describe","expect","it","execFileAsync","root","recursive","force","cacheDir","viteDir","participantsDir","participantCount","Promise","all","JSON","stringify","versionHash","moduleUrl","import","meta","filename","href","workerScript","participant","String","results","Array","from","length","_","env","process","VXRN_DONT_CLEAN_SELF"],"sources":["../../src/exports/clean.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,OAAA,EAASC,KAAA,EAAOC,QAAA,EAAUC,EAAA,EAAIC,SAAA,QAAiB;AACxD,SAASC,MAAA,QAAc;AACvB,SAASC,OAAA,EAASC,IAAA,QAAY;AAC9B,SAASC,aAAA,QAAqB;AAC9B,SAASC,SAAA,QAAiB;AAC1B,SAASC,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AAGhD,IAAAC,aAAM,GAAAL,SAAgB,CAAAV,QAAU;AAEhCY,QAAA,CAAS,0BAA0B,YAAM;EACvC,IAAII,IAAA;EAEJL,SAAA,CAAU,kBAAY;IACpB,IAAIK,IAAA,EAAM;MACR,MAAMZ,EAAA,CAAGY,IAAA,EAAM;QACjBC,SAAA;QACDC,KAAA;MAEE;IACD;EACA;EACAJ,EAAA,iDAA2C,EAAO;IAClDE,IAAA,GAAM,MAAAf,OAAA,CAAAO,IAAkB,CAAAF,MAAK,IAAM,wBAAc;IACjD,IAAAa,QAAM,GAAAX,IAAA,CAAAQ,IAAA,EAAmB;IAEzB,IAAAI,OAAM,GAAQZ,IAAI,CAAAQ,IAAA;IAAA,IAChBK,eAAgB,GAAEb,IAAA,CAAAQ,IAAW,gBAAM;IAAA,IACnCM,gBAAiB;IAAiB,MAClCC,OAAM,CAAAC,GAAA,EACPtB,KAAA,CAAAiB,QAAA;MACDF,SAAM,EAAQ;IACZ,IACAf,KAAA,CAAAkB,OAAU,EAAK;MACfH,SAAU;IACX,IAEDf,KAAM,CAAAmB,eAAY;MAClBJ,SAAM;IAAwC;IAAA,MAAAM,OAAA,CAAAC,GAAA,EAGsBnB,SAAA,CAAAG,IAAA,CAAAW,QAAA,iBAAAM,IAAA,CAAAC,SAAA;MAAAC,WAAA,EAEnD;IAAoB,KACsBtB,SAAA,CAAAG,IAAA,CAAAW,QAAA,mBACjB,GAAmCd,SAAA,CAAAG,IAAA,CAAAY,OAAA,qBACR;IAAA,IAAAQ,SAAA,GAAAnB,aAAA,CAAAD,IAAA,CAAAD,OAAA,CAAAsB,MAAA,CAAAC,IAAA,CAAAC,QAAA,gBAAAC,IAAA;IAAA,IAAAC,YAAA,YAAAA,CAAAC,WAAA;MAAA;AAAA;AAAA;AAAA,+CAAAT,IAAA,CAAAC,SAAA,CAAAE,SAAA;AAAA;AAAA,qBAAAH,IAAA,CAAAC,SAAA,CAAAV,IAAA;AAWrE,gCAAsBS,IAAQ,CAAAC,SAAA,CAAAL,eAAA;AAAA,8CACtBI,IAAA,CAAAC,SAAA,CAAAS,MAAA,CAAAD,WAAA;AAAA,yDAAgCZ,gBAAA;AAAA;AACoB;AACN;AACjD;AACH;AAEF;AAEA;AACA;AACA;IAAiF;IAEjF,IAACc,OAAA,SAAAb,OAAA,CAAAC,GAAA,CAAAa,KAAA,CAAAC,IAAA;MACDC,MAAM,EAAAjB;IAAgE,GACpE,UAAMkB,CAAA,EAAAN,WAAA;MACP,OAAAnB,aAAA,SACD,IAAM,EACJkB,YAAM,CAAAC,WAAA,EACP;QACDO,GAAM;UACJ,GAAAC,OAAc,CAAAD,GAAA;UACdE,oBAAwB;QACnB;MACV","ignoreList":[]}
@@ -38,7 +38,7 @@ const dev = async optionsIn => {
38
38
  printServerUrls
39
39
  } = await import("../utils/printServerUrls.mjs");
40
40
  const {
41
- clean
41
+ prepareCacheForVersion
42
42
  } = await import("./clean.mjs");
43
43
  const {
44
44
  filterViteServerResolvedUrls
@@ -103,8 +103,13 @@ export default defineConfig({
103
103
  cacheDir
104
104
  } = options;
105
105
  bindKeypressInput();
106
- if (options.clean) {
107
- await clean(optionsIn, options.clean);
106
+ const cacheWasCleaned = await prepareCacheForVersion({
107
+ root: options.root,
108
+ cacheDir,
109
+ versionHash: options.versionHash,
110
+ forceClean: optionsIn.clean === true
111
+ });
112
+ if (options.clean || cacheWasCleaned) {
108
113
  process.env.METRO_RESET_CACHE = "1";
109
114
  }
110
115
  await ensureDir(cacheDir);
@@ -1 +1 @@
1
- {"version":3,"names":["FSExtra","colors","debounce","normalizePath","ensureDir","setupOrphanDetection","process","platform","initialPpid","ppid","interval","setInterval","exit","unref","dev","optionsIn","devStartTime","Date","now","env","IS_VXRN_CLI","debug","DEBUG","startUserInterface","bindKeypressInput","fillOptions","getViteServerConfig","printServerUrls","clean","filterViteServerResolvedUrls","removeUndefined","createServer","loadConfigFromFile","config","mode","command","console","error","extraConfig","resolve","extraConfigPath","extraResult","mergeConfig","info","cyan","warn","yellow","oneServerConfig","plugins","find","x","Array","isArray","server","options","cacheDir","METRO_RESET_CACHE","serverConfig","viteServer","isClosing","start","connectedNativeClients","pendingTransforms","Map","watcher","addListener","path","normalizedPath","includes","normalizedCwd","cwd","id","replace","endsWith","has","set","transformRequest","err","get","httpServer","on","listen","totalStartupTime","bold","viteServerResolvedUrls","resolvedUrls","logger","closePromise","Promise","res","stop","removeAllListeners","close"],"sources":["../../src/exports/dev.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FSExtra","colors","debounce","normalizePath","ensureDir","setupOrphanDetection","process","platform","initialPpid","ppid","interval","setInterval","exit","unref","dev","optionsIn","devStartTime","Date","now","env","IS_VXRN_CLI","debug","DEBUG","startUserInterface","bindKeypressInput","fillOptions","getViteServerConfig","printServerUrls","prepareCacheForVersion","filterViteServerResolvedUrls","removeUndefined","createServer","loadConfigFromFile","config","mode","command","console","error","extraConfig","resolve","extraConfigPath","extraResult","mergeConfig","info","cyan","warn","yellow","oneServerConfig","plugins","find","x","Array","isArray","server","options","cacheDir","cacheWasCleaned","root","versionHash","forceClean","clean","METRO_RESET_CACHE","serverConfig","viteServer","isClosing","start","connectedNativeClients","pendingTransforms","Map","watcher","addListener","path","normalizedPath","includes","normalizedCwd","cwd","id","replace","endsWith","has","set","transformRequest","err","get","httpServer","on","listen","totalStartupTime","bold","viteServerResolvedUrls","resolvedUrls","logger","closePromise","Promise","res","stop","removeAllListeners","close"],"sources":["../../src/exports/dev.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}