summaryrefslogtreecommitdiff
path: root/node_modules/cosmiconfig/dist/ExplorerBase.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-10-30 16:45:38 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-10-30 16:45:38 +0800
commita0579f91bbdf0de62b59df381d97a008bb98df57 (patch)
tree69c21333750c7bc7358f9383560438048d9adebf /node_modules/cosmiconfig/dist/ExplorerBase.js
parent2d8aeba452672bcda2096e5d76bf37131c34075e (diff)
update/upgrade
Diffstat (limited to 'node_modules/cosmiconfig/dist/ExplorerBase.js')
-rw-r--r--node_modules/cosmiconfig/dist/ExplorerBase.js82
1 files changed, 82 insertions, 0 deletions
diff --git a/node_modules/cosmiconfig/dist/ExplorerBase.js b/node_modules/cosmiconfig/dist/ExplorerBase.js
new file mode 100644
index 00000000..e3f66f22
--- /dev/null
+++ b/node_modules/cosmiconfig/dist/ExplorerBase.js
@@ -0,0 +1,82 @@
+"use strict";
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getExtensionDescription = exports.ExplorerBase = void 0;
+const path_1 = __importDefault(require("path"));
+const util_js_1 = require("./util.js");
+/**
+ * @internal
+ */
+class ExplorerBase {
+ #loadingMetaConfig = false;
+ config;
+ loadCache;
+ searchCache;
+ constructor(options) {
+ this.config = options;
+ if (options.cache) {
+ this.loadCache = new Map();
+ this.searchCache = new Map();
+ }
+ this.#validateConfig();
+ }
+ set loadingMetaConfig(value) {
+ this.#loadingMetaConfig = value;
+ }
+ #validateConfig() {
+ const config = this.config;
+ for (const place of config.searchPlaces) {
+ const extension = path_1.default.extname(place);
+ const loader = this.config.loaders[extension || 'noExt'] ??
+ this.config.loaders['default'];
+ if (loader === undefined) {
+ throw new Error(`Missing loader for ${getExtensionDescription(place)}.`);
+ }
+ if (typeof loader !== 'function') {
+ throw new Error(`Loader for ${getExtensionDescription(place)} is not a function: Received ${typeof loader}.`);
+ }
+ }
+ }
+ clearLoadCache() {
+ if (this.loadCache) {
+ this.loadCache.clear();
+ }
+ }
+ clearSearchCache() {
+ if (this.searchCache) {
+ this.searchCache.clear();
+ }
+ }
+ clearCaches() {
+ this.clearLoadCache();
+ this.clearSearchCache();
+ }
+ toCosmiconfigResult(filepath, config) {
+ if (config === null) {
+ return null;
+ }
+ if (config === undefined) {
+ return { filepath, config: undefined, isEmpty: true };
+ }
+ if (this.config.applyPackagePropertyPathToConfiguration ||
+ this.#loadingMetaConfig) {
+ config = (0, util_js_1.getPropertyByPath)(config, this.config.packageProp);
+ }
+ if (config === undefined) {
+ return { filepath, config: undefined, isEmpty: true };
+ }
+ return { config, filepath };
+ }
+}
+exports.ExplorerBase = ExplorerBase;
+/**
+ * @internal
+ */
+function getExtensionDescription(extension) {
+ /* istanbul ignore next -- @preserve */
+ return extension ? `extension "${extension}"` : 'files without extensions';
+}
+exports.getExtensionDescription = getExtensionDescription;
+//# sourceMappingURL=ExplorerBase.js.map \ No newline at end of file