aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@vitest/utils/dist/resolver.js
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/@vitest/utils/dist/resolver.js
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/@vitest/utils/dist/resolver.js')
-rw-r--r--vanilla/node_modules/@vitest/utils/dist/resolver.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/vanilla/node_modules/@vitest/utils/dist/resolver.js b/vanilla/node_modules/@vitest/utils/dist/resolver.js
new file mode 100644
index 0000000..83bd3c1
--- /dev/null
+++ b/vanilla/node_modules/@vitest/utils/dist/resolver.js
@@ -0,0 +1,71 @@
+import fs from 'node:fs';
+import { j as join, d as dirname } from './chunk-pathe.M-eThtNZ.js';
+
+const packageCache = new Map();
+function findNearestPackageData(basedir) {
+ const originalBasedir = basedir;
+ while (basedir) {
+ var _tryStatSync;
+ const cached = getCachedData(packageCache, basedir, originalBasedir);
+ if (cached) {
+ return cached;
+ }
+ const pkgPath = join(basedir, "package.json");
+ if ((_tryStatSync = tryStatSync(pkgPath)) === null || _tryStatSync === void 0 ? void 0 : _tryStatSync.isFile()) {
+ const pkgData = JSON.parse(stripBomTag(fs.readFileSync(pkgPath, "utf8")));
+ if (packageCache) {
+ setCacheData(packageCache, pkgData, basedir, originalBasedir);
+ }
+ return pkgData;
+ }
+ const nextBasedir = dirname(basedir);
+ if (nextBasedir === basedir) {
+ break;
+ }
+ basedir = nextBasedir;
+ }
+ return {};
+}
+function stripBomTag(content) {
+ if (content.charCodeAt(0) === 65279) {
+ return content.slice(1);
+ }
+ return content;
+}
+function tryStatSync(file) {
+ try {
+ // The "throwIfNoEntry" is a performance optimization for cases where the file does not exist
+ return fs.statSync(file, { throwIfNoEntry: false });
+ } catch {}
+}
+function getCachedData(cache, basedir, originalBasedir) {
+ const pkgData = cache.get(getFnpdCacheKey(basedir));
+ if (pkgData) {
+ traverseBetweenDirs(originalBasedir, basedir, (dir) => {
+ cache.set(getFnpdCacheKey(dir), pkgData);
+ });
+ return pkgData;
+ }
+}
+function setCacheData(cache, data, basedir, originalBasedir) {
+ cache.set(getFnpdCacheKey(basedir), data);
+ traverseBetweenDirs(originalBasedir, basedir, (dir) => {
+ cache.set(getFnpdCacheKey(dir), data);
+ });
+}
+function getFnpdCacheKey(basedir) {
+ return `fnpd_${basedir}`;
+}
+/**
+* Traverse between `longerDir` (inclusive) and `shorterDir` (exclusive) and call `cb` for each dir.
+* @param longerDir Longer dir path, e.g. `/User/foo/bar/baz`
+* @param shorterDir Shorter dir path, e.g. `/User/foo`
+*/
+function traverseBetweenDirs(longerDir, shorterDir, cb) {
+ while (longerDir !== shorterDir) {
+ cb(longerDir);
+ longerDir = dirname(longerDir);
+ }
+}
+
+export { findNearestPackageData, getCachedData, setCacheData };