@pkgr/core 0.3.1 → 0.3.3
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/lib/helpers.d.ts +0 -2
- package/lib/helpers.js +9 -35
- package/lib/helpers.js.map +1 -1
- package/lib/index.cjs +8 -36
- package/package.json +1 -1
package/lib/helpers.d.ts
CHANGED
|
@@ -15,7 +15,5 @@ export interface FindUpOptions {
|
|
|
15
15
|
search?: string[] | string;
|
|
16
16
|
type?: FileTypes;
|
|
17
17
|
stop?: string;
|
|
18
|
-
throwOnStopNotFound?: boolean;
|
|
19
|
-
throwOnInvalidStop?: boolean;
|
|
20
18
|
}
|
|
21
19
|
export declare const findUp: (entryOrOptions?: FindUpOptions | string, options?: FindUpOptions) => string;
|
package/lib/helpers.js
CHANGED
|
@@ -16,7 +16,11 @@ export const tryFileStats = (filename, type = 'file', base = CWD) => {
|
|
|
16
16
|
}
|
|
17
17
|
if (typeof filename === 'string') {
|
|
18
18
|
const filepath = path.resolve(base, filename);
|
|
19
|
-
|
|
19
|
+
let stats;
|
|
20
|
+
try {
|
|
21
|
+
stats = fs.statSync(filepath, { throwIfNoEntry: false });
|
|
22
|
+
}
|
|
23
|
+
catch { }
|
|
20
24
|
return stats &&
|
|
21
25
|
(isAnyFileType(type) ||
|
|
22
26
|
(Array.isArray(type) ? type : [type]).some(type => stats[`is${type[0].toUpperCase()}${type.slice(1)}`]()))
|
|
@@ -42,41 +46,11 @@ export const findUp = (entryOrOptions, options) => {
|
|
|
42
46
|
...options,
|
|
43
47
|
};
|
|
44
48
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (stop) {
|
|
48
|
-
const stopStats = tryFileStats(stop, ['file', 'directory']);
|
|
49
|
-
if (!stopStats) {
|
|
50
|
-
const message = `Cannot find stop path: ${stop}`;
|
|
51
|
-
if (throwOnStopNotFound) {
|
|
52
|
-
throw new Error(message);
|
|
53
|
-
}
|
|
54
|
-
else if (throwOnStopNotFound !== false) {
|
|
55
|
-
console.warn(message);
|
|
56
|
-
}
|
|
57
|
-
return '';
|
|
58
|
-
}
|
|
59
|
-
stop = stopStats.stats.isDirectory()
|
|
60
|
-
? stopStats.filepath
|
|
61
|
-
: path.dirname(stopStats.filepath);
|
|
62
|
-
if (entry !== stop && !entry.startsWith(stop + path.sep)) {
|
|
63
|
-
const message = `Invalid stop path: ${stop} is not a parent of ${entry}`;
|
|
64
|
-
if (throwOnInvalidStop) {
|
|
65
|
-
throw new Error(message);
|
|
66
|
-
}
|
|
67
|
-
else if (throwOnInvalidStop !== false) {
|
|
68
|
-
console.warn(message);
|
|
69
|
-
}
|
|
70
|
-
return '';
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const entryStats = tryFileStats(entry, ['file', 'directory']);
|
|
74
|
-
if (!entryStats) {
|
|
75
|
-
return '';
|
|
49
|
+
else if (entryOrOptions) {
|
|
50
|
+
options = options ? { ...entryOrOptions, ...options } : entryOrOptions;
|
|
76
51
|
}
|
|
77
|
-
entry =
|
|
78
|
-
|
|
79
|
-
: path.dirname(entryStats.filepath);
|
|
52
|
+
let { entry = CWD, search = 'package.json', type, stop } = options ?? {};
|
|
53
|
+
search = Array.isArray(search) ? search : [search];
|
|
80
54
|
do {
|
|
81
55
|
const searched = tryFile(search, type, entry);
|
|
82
56
|
if (searched) {
|
package/lib/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAc,MAAM,SAAS,CAAA;AACxC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAenE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;AAE7C,MAAM,aAAa,GAAG,CAAC,IAAe,EAAwB,EAAE,CAC9D,cAAc,CAAC,GAAG,CAAC,IAAwB,CAAC,CAAA;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,QAA4B,EAC5B,OAAkB,MAAM,EACxB,IAAI,GAAG,GAAG,EACsC,EAAE;IAClD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,MAAM,CAAA;IACf,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7C,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAc,MAAM,SAAS,CAAA;AACxC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE5D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAenE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;AAE7C,MAAM,aAAa,GAAG,CAAC,IAAe,EAAwB,EAAE,CAC9D,cAAc,CAAC,GAAG,CAAC,IAAwB,CAAC,CAAA;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,QAA4B,EAC5B,OAAkB,MAAM,EACxB,IAAI,GAAG,GAAG,EACsC,EAAE;IAClD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,MAAM,CAAA;IACf,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7C,IAAI,KAAwB,CAAA;QAC5B,IAAI,CAAC;YACH,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO,KAAK;YACV,CAAC,aAAa,CAAC,IAAI,CAAC;gBAClB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChD,KAAK,CACH,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAqC,CAChF,EAAE,CACJ,CAAC;YACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrB,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,QAA4B,EAC5B,OAAkB,MAAM,EACxB,IAAa,EACL,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAA;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,UAAU,GAAG,UAAU,EAAE,EAAE;IACzE,MAAM,GAAG,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAA;IACpE,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAA;AAC1C,CAAC,CAAA;AASD,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,cAAuC,EACvC,OAAuB,EACvB,EAAE;IACF,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,GAAG;YACR,KAAK,EAAE,cAAc;YACrB,GAAG,OAAO;SACX,CAAA;IACH,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAA;IACxE,CAAC;IAED,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IAExE,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAElD,GAAG,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAA;QACvB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAK;QACP,CAAC;IACH,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,EAAC;IAEjC,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
|
package/lib/index.cjs
CHANGED
|
@@ -26,7 +26,11 @@ const tryFileStats = (filename, type = "file", base = CWD) => {
|
|
|
26
26
|
}
|
|
27
27
|
if (typeof filename === "string") {
|
|
28
28
|
const filepath = path.resolve(base, filename);
|
|
29
|
-
|
|
29
|
+
let stats;
|
|
30
|
+
try {
|
|
31
|
+
stats = fs.statSync(filepath, { throwIfNoEntry: false });
|
|
32
|
+
} catch {
|
|
33
|
+
}
|
|
30
34
|
return stats && (isAnyFileType(type) || (Array.isArray(type) ? type : [type]).some(
|
|
31
35
|
(type2) => stats[`is${type2[0].toUpperCase()}${type2.slice(1)}`]()
|
|
32
36
|
)) ? { filepath, stats } : void 0;
|
|
@@ -49,43 +53,11 @@ const findUp = (entryOrOptions, options) => {
|
|
|
49
53
|
entry: entryOrOptions,
|
|
50
54
|
...options
|
|
51
55
|
};
|
|
56
|
+
} else if (entryOrOptions) {
|
|
57
|
+
options = options ? { ...entryOrOptions, ...options } : entryOrOptions;
|
|
52
58
|
}
|
|
53
|
-
let {
|
|
54
|
-
entry = CWD,
|
|
55
|
-
search = "package.json",
|
|
56
|
-
type,
|
|
57
|
-
stop,
|
|
58
|
-
throwOnStopNotFound,
|
|
59
|
-
throwOnInvalidStop
|
|
60
|
-
} = options ?? {};
|
|
59
|
+
let { entry = CWD, search = "package.json", type, stop } = options ?? {};
|
|
61
60
|
search = Array.isArray(search) ? search : [search];
|
|
62
|
-
if (stop) {
|
|
63
|
-
const stopStats = tryFileStats(stop, ["file", "directory"]);
|
|
64
|
-
if (!stopStats) {
|
|
65
|
-
const message = `Cannot find stop path: ${stop}`;
|
|
66
|
-
if (throwOnStopNotFound) {
|
|
67
|
-
throw new Error(message);
|
|
68
|
-
} else if (throwOnStopNotFound !== false) {
|
|
69
|
-
console.warn(message);
|
|
70
|
-
}
|
|
71
|
-
return "";
|
|
72
|
-
}
|
|
73
|
-
stop = stopStats.stats.isDirectory() ? stopStats.filepath : path.dirname(stopStats.filepath);
|
|
74
|
-
if (entry !== stop && !entry.startsWith(stop + path.sep)) {
|
|
75
|
-
const message = `Invalid stop path: ${stop} is not a parent of ${entry}`;
|
|
76
|
-
if (throwOnInvalidStop) {
|
|
77
|
-
throw new Error(message);
|
|
78
|
-
} else if (throwOnInvalidStop !== false) {
|
|
79
|
-
console.warn(message);
|
|
80
|
-
}
|
|
81
|
-
return "";
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
const entryStats = tryFileStats(entry, ["file", "directory"]);
|
|
85
|
-
if (!entryStats) {
|
|
86
|
-
return "";
|
|
87
|
-
}
|
|
88
|
-
entry = entryStats.stats.isDirectory() ? entryStats.filepath : path.dirname(entryStats.filepath);
|
|
89
61
|
do {
|
|
90
62
|
const searched = tryFile(search, type, entry);
|
|
91
63
|
if (searched) {
|