Spaces:
Sleeping
Sleeping
| ; | |
| var node_module = require('node:module'); | |
| var fs = require('node:fs'); | |
| var path = require('node:path'); | |
| var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null; | |
| const cjsRequire = typeof require === "function" ? require : node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))); | |
| const DEFAULT_EXTENSIONS = cjsRequire.extensions ? ( | |
| // eslint-disable-next-line sonarjs/deprecation | |
| Object.keys(cjsRequire.extensions) | |
| ) : ( | |
| // `require.extensions` could be `undefined` - #430 | |
| [".js", ".json", ".node"] | |
| ); | |
| const EXTENSIONS = [".ts", ".tsx", ...DEFAULT_EXTENSIONS]; | |
| const tryPkg = (pkg) => { | |
| try { | |
| return cjsRequire.resolve(pkg); | |
| } catch { | |
| } | |
| }; | |
| const isPkgAvailable = (pkg) => Boolean(tryPkg(pkg)); | |
| const ANY_FILE_TYPES = /* @__PURE__ */ new Set(["any", true]); | |
| const isAnyFileType = (type) => ANY_FILE_TYPES.has(type); | |
| const tryFileStats = (filename, type = "file", base = process.cwd()) => { | |
| if (!type) { | |
| type = "file"; | |
| } | |
| if (typeof filename === "string") { | |
| const filepath = path.resolve(base, filename); | |
| let stats; | |
| try { | |
| stats = fs.statSync(filepath, { throwIfNoEntry: false }); | |
| } catch { | |
| } | |
| return stats && (isAnyFileType(type) || (Array.isArray(type) ? type : [type]).some( | |
| (type2) => stats[`is${type2[0].toUpperCase()}${type2.slice(1)}`]() | |
| )) ? { filepath, stats } : void 0; | |
| } | |
| for (const file of filename ?? []) { | |
| const result = tryFileStats(file, type, base); | |
| if (result) { | |
| return result; | |
| } | |
| } | |
| }; | |
| const tryFile = (filename, type = "file", base) => tryFileStats(filename, type, base)?.filepath ?? ""; | |
| const tryExtensions = (filepath, extensions = EXTENSIONS) => { | |
| const ext = [...extensions, ""].find((ext2) => tryFile(filepath + ext2)); | |
| return ext == null ? "" : filepath + ext; | |
| }; | |
| const findUp = (entryOrOptions, options) => { | |
| if (typeof entryOrOptions === "string") { | |
| options = { | |
| entry: entryOrOptions, | |
| ...options | |
| }; | |
| } else if (entryOrOptions) { | |
| options = options ? { ...entryOrOptions, ...options } : entryOrOptions; | |
| } | |
| let { | |
| entry = process.cwd(), | |
| search = "package.json", | |
| type, | |
| stop | |
| } = options ?? {}; | |
| search = Array.isArray(search) ? search : [search]; | |
| do { | |
| const searched = tryFile(search, type, entry); | |
| if (searched) { | |
| return searched; | |
| } | |
| const lastEntry = entry; | |
| entry = path.dirname(entry); | |
| if (entry === lastEntry) { | |
| break; | |
| } | |
| } while (!stop || entry !== stop); | |
| return ""; | |
| }; | |
| exports.EXTENSIONS = EXTENSIONS; | |
| exports.cjsRequire = cjsRequire; | |
| exports.findUp = findUp; | |
| exports.isPkgAvailable = isPkgAvailable; | |
| exports.tryExtensions = tryExtensions; | |
| exports.tryFile = tryFile; | |
| exports.tryFileStats = tryFileStats; | |
| exports.tryPkg = tryPkg; | |